اختبار الصندوق الأسود

نشر لي كوبلاند "دليل ممارس لتصميم اختبار البرمجيات" في عام 2003.
منذ ذلك الحين ، ترسخت بحزم في قائمة الكتب التي يجب على أي اختبار قراءتها. الأمر يستحق القراءة في الأصل. يقرأ بشكل جيد للغاية: اللغة ليست معقدة ، والأسلوب سهل. في سياق الكتاب ، يسخر المؤلف قليلاً من نفسه ، وطلابه وقرائه ، وبشكل عام ، في مجال نشاطنا.


ما يلي ليس ترجمة ، بل هو ملخص مفصل لقسم "تقنيات اختبار الصندوق الأسود" ، الذي يصف تطبيق تقنيات تصميم الاختبار.


وقع الكتاب في يدي بناءً على نصيحة زميل سابق ، شكر خاص له.


لتكون أكثر فعالية وكفاءة اختبار حالة يجب أن تصمم ، وليس مجرد صفعة معا.

اختبار معادلة الدرجة
اختبار قيمة الحدود
اختبار جدول القرار
اختبار زوجي
اختبار انتقال الدولة
استخدام اختبار الحالة


اختبار معادلة الدرجة


معدات


  1. تحديد فئات التكافؤ.
  2. إنشاء حالات اختبار لكل فئة التكافؤ.

فئة التكافؤ هي مجموعة بيانات تدير نفس الوحدات ويجب أن تنتج نفس النتائج.


أي بيانات داخل الفصل تعادل ، مما يعني أنه إذا اكتشفت حالة اختبار واحدة في مربع التكافؤ / لم تعثر على عيب ، فإن جميع حالات الاختبار الأخرى داخل فئة التكافؤ هذه ستكتشف / لا تعثر على نفس العيب.


نهج بديل هو استخدام فئات التكافؤ ليس للمدخلات ، ولكن بالنسبة للنواتج. قسّم متغيرات الإخراج إلى فئات معادلة ، وحدد قيم الإدخال التي يمكن أن تؤدي إلى هذه المخرجات. الميزة هي أن كل خيار خروج ممكن محدد. العيب هو أنه ضمن فئة معادلة الإخراج ، يمكن إخفاء عدة فئات معادلة الإدخال.


إذا كان هناك العديد من المتغيرات:


  1. يتم دمج فئات صالحة من عدة متغيرات في حالة اختبار واحدة ؛
  2. يتم اختبار فئات غير صالحة بشكل منفصل.
    دع المصممين والمبرمجين يعرفون متى ساعدوك. سوف يقدرون الفكر وقد يقومون به مرة أخرى.


اختبار قيمة الحدود


معدات


  1. تحديد فئات التكافؤ
  2. تحديد حدود كل فئة التكافؤ
  3. أنشئ حالات اختبار لكل قيمة حدية ، واختر نقطة واحدة مباشرة على الحدود ، أعلى وأسفل الحدود.

يجب أن نتذكر أن نقطة أعلى أو أسفل الحدود يمكن أن تكون مثيلًا لفئة معادلة أخرى ، وفي هذه الحالة لا تحتاج إلى تكرار الاختبار.


يتم تحديد القيم حسب النوع. إذا كانت الحدود 5 ، فسيتم اختبار النقطتين 4 و 6 للحقل الذي يتم إدخال الأعداد الصحيحة ، ويتم اختبار النقطتين 4.99 و 5.01 للحقل الذي يتم فيه إدخال الكميات بالروبل وكوبككس.


إذا كان هناك العديد من المتغيرات:


  1. يتم دمج القيم الدنيا للحدود الصحيحة في حالة اختبار واحدة ؛
  2. يتم الجمع بين القيم القصوى للحدود الصحيحة في حالة اختبار أخرى ؛
  3. يتم اختبار الحدود غير الصالحة بشكل منفصل ، كما هو الحال مع الفئات غير الصالحة.
    يركز اختبار قيمة الحدود على الحدود لأن هذا هو المكان الذي تخفي فيه الكثير من العيوب.


اختبار جدول القرار


معدات


  1. تحديد جميع الظروف
  2. جعل كل مجموعات ممكنة من الشروط
  3. إزالة المجموعات غير الضرورية. يتم حذف العناصر التي لا يكون لتغيير القيم فيها أي تأثير على النتيجة (لا تهتم - DC)
  4. تحديد الإجراءات
  5. إنشاء حالات اختبار لكل مجموعة

جدول القرار - يمثل العلاقة بين الشروط المركبة والإجراءات الناتجة.


إذا كان الشرط عبارة عن مجموعة من القيم ، فسيتم إنشاء اختبارات إضافية للتحقق من القيم الموجودة أعلى وتحت الحدود.


2 3 = 8 مجموعات
القاعدة 1
المادة 2
المادة 3
المادة 4
المادة 5
المادة 6
المادة 7
المادة 8
الشروط
رمز الأسهم صحيح
N
N
N
N
Y
Y
Y
Y
المبلغ المسموح به
N
N
Y
Y
N
N
Y
Y
ما يكفي من المال
N
Y
N
Y
N
Y
N
Y
تطبيقات
للشراء
N
N
N
N
N
N
N
Y

من خلال النظر بعناية إلى الجدول ، يمكنك أن ترى أنه في القواعد 1 و 2 و 3 و 4 ، إذا كان رمز الأسهم غير صالح ، فإن التحقق من الشروط المتبقية غير منطقي. يمكن دمج القاعدتين 5 و 6 ، لأن شرط التحقق من الأموال لا يؤثر على النتيجة. يتم تمييز الحالات التي لا تؤثر على النتيجة على أنها "DC". يتم تحويل الجدول:


4 مجموعات
القاعدة 1
المادة 2
المادة 3
المادة 4
الشروط
رمز الأسهم صحيح
N
Y
Y
Y
المبلغ المسموح به
DC
N
Y
Y
ما يكفي من المال
DC
DC
N
Y
تطبيقات
للشراء
N
N
N
Y

لأن هناك دائمًا احتمال عدم تحويل الجدول بشكل صحيح أو كتابة التعليمات البرمجية بطريقة غير صحيحة بحيث لا يزال الجدول الأصلي في متناول اليد.


يقدم مشهور Software Tester Mick Jagger نصيحة ممتازة فيما يتعلق بهذا "لا يمكنك دائمًا الحصول على ما تريد ، ولكن إذا حاولت في بعض الأحيان ، فربما تجده ، وستحصل على ما تحتاجه."


اختبار الزوج


معدات


  1. تحديد المعلمات
  2. تحديد عدد القيم لكل معلمة (اختيارات المتغير)
  3. قم ببناء صفيف يحتوي على أعمدة لكل معلمة وقيم في الأعمدة التي تحتوي على جميع مجموعات قيم هذه المعلمات مع بعضها البعض.
  4. تطابق مجموعة المتعامد الناتجة لأغراض الاختبار.
  5. بناء حالات الاختبار.

تم تحديد التجربة بشكل تجريبي أن معظم العيوب إما عيوب أحادية الوضع أو عيوب ثنائية الوضع ، أي يتجلى عندما يتم دمج معلمة واحدة مع معلمة أخرى واحدة فقط ، في حين أن قيمة المعلمات المتبقية لا تهم.


إذا كان عدد مجموعات القيم المتغيرة كبيرًا ، يجب ألا تحاول اختبار كل المجموعات الممكنة ، فمن الأفضل التركيز على اختبار جميع أزواج القيم المتغيرة.
نهجين اختبار pairwise: طريقة صفائف متعامد وخوارزمية allpair.


الصفيف المتعامد عبارة عن صفيف ثنائي الأبعاد له خاصية خاصة: إذا قمت بتحديد أي عمودين في الصفيف ، فستكون كل المجموعات الممكنة من قيم المعلمات موجودة فيها ، وستكون جميع أزواج الأعمدة لها نفس الخاصية.


جميع الأزواج - لإنشاء صفيف ، يتم استخدام خوارزمية تقوم بإنشاء الأزواج مباشرة ، دون استخدام توازن إضافي. إذا كان هناك عدد كبير من المعلمات التي تأخذ عددًا صغيرًا من القيم ، فإن هذه الطريقة أفضل للاقتران.


ليس من الضروري عمل توليفات ثنائية الاتجاه يدويًا ، لذلك هناك الكثير من الأدوات .


يجب ألا يغيب عن البال أن القيود قد تنشأ بسبب حقيقة أن بعض مجموعات المعلمات لن تحدث أبدًا.


لا توجد "فيزياء عيوب البرمجيات" الأساسية التي تضمن أن الاختبار الزوجي سيكون ذا فائدة. هناك طريقة واحدة فقط لمعرفة ذلك - جربه.


مخطط انتقال الحالة


معدات


الحالة - حالة يتوقع النظام فيها حدثًا واحدًا أو أكثر ، وتتذكر الحالة ما تم استلامه عند الإدخال وتحدد الاستجابة التي يجب أن تحدث. يمكن جلب هذا الحدث إلى حالة جديدة و / أو بدء إجراء جديد. الحالة عادة ما تعكس قيمة بعض المتغيرات في النظام. يصور في شكل دائرة.


الانتقال - يمثل الانتقال من الحالة الحالية إلى حالة جديدة ، نتيجة لبعض الإجراءات. كما هو موضح سهم.


الحدث - الحدث الذي تسبب في تغيير الحالة. عادة ما يدخل حدث النظام من العالم الخارجي من خلال بعض الواجهة. في بعض الأحيان يتم تشغيل هذا الحدث داخل النظام نفسه ، على سبيل المثال ، مؤقت ، انخفاض أقل من مستوى معين. ويعتقد أن هذا الحدث يحدث على الفور. يمكن أن يكون الحدث إما مستقلًا أو ذا صلة. عند حدوث حدث ، يمكن للنظام تغيير الحالة أو البقاء في نفس الحالة و / أو بدء إجراء ما. قد تتضمن الأحداث معلمات مرتبطة (رقم البطاقة ، المبلغ في الحساب). كما هو موضح في شرح لسهم الانتقال.


الإجراء - عملية بدأت نتيجة لتغيير الحالة. هذا هو في كثير من الأحيان بعض استجابة النظام. تذكر أن أي إجراء يحدث أثناء الانتقال بين الحالات. الدول نفسها ثابتة. يشار إليه بشرطة مائلة في توقيع سهم الانتقال بعد الحدث.


مخطط انتقال الحالة هو كيان محدد (على سبيل المثال ، عملية نسخ احتياطي). الخطأ الشائع هو محاولة لمزج كيانات مختلفة في رسم تخطيطي واحد (على سبيل المثال ، الحجز والركاب مع الأحداث والإجراءات المرتبطة بكل منها).


يمكن استخدامه عندما يحتاج النظام إلى معرفة الخلفية أو الترتيب الصحيح للعمليات.


بناءً على مخطط الانتقال الحكومي ، يتم تصنيف جدول انتقال الحالة. يحتوي الجدول على 4 أعمدة: الحالة الحالية ، الحدث ، الإجراء ، الحالة التالية.


تكمن ميزة جدول الانتقال الحكومي في أنه عبارة عن قائمة بجميع مجموعات التحولات الممكنة من ولاية إلى أخرى ، بما في ذلك تلك غير الصالحة. عند تحليل مثل هذا الجدول ، قد تلاحظ الثغرات في المتطلبات. يمكن أن يساعدك استخدام جدول انتقال الحالة على تعقب انتقالات الحالة غير الصالحة.


يمكنك اختيار واحد من 4 خيارات لإنشاء حالات اختبار:


  1. إنشاء مجموعات حالة اختبار بحيث يتم الانتهاء من جميع الحالات مرة واحدة على الأقل. في حالة اختبار واحدة ، يمكن وصف الانتقال من خلال عدة حالات. هذا هو مستوى ضعيف نوعا ما من تغطية الاختبار.
  2. إنشاء مجموعات حالة اختبار بحيث يتم تشغيل جميع الأحداث مرة واحدة على الأقل. حالات الاختبار التي تغطي جميع الأحداث في نفس الوقت تغطي جميع الظروف. مرة أخرى تغطية الاختبار ضعيفة.
  3. قم بإنشاء مجموعات من حالات الاختبار بحيث يتم إكمال جميع المسارات مرة واحدة على الأقل. هذه الطريقة جيدة من وجهة نظر تغطية الاختبار ، لكنها غير ممكنة عملياً. إذا كان المخطط يحتوي على دورات ، فيمكن أن يكون عدد المسارات المحتملة غير محدود.
  4. إنشاء مجموعات حالة اختبار بحيث يتم الانتهاء من جميع التحولات مرة واحدة على الأقل. توفر هذه الطريقة مستوى جيدًا من تغطية الاختبار ، لذلك يوصى باستخدامه.
    صورة
    تتمثل الإستراتيجية الموصى بها لإنشاء حالات الاختبار في اختبار جميع انتقالات الحالة مرة واحدة على الأقل. في الأنظمة عالية الخطورة التي تتطلب تغطية اختبار أكثر موثوقية ، يمكن إنشاء حالات اختبار لكل مسار (سلسلة انتقال) بين الولايات.
    والآن لشيء مختلف تماما. مونتي بيثون


استخدام اختبار الحالة


معدات


استخدم الحالة - هذه هي السيناريوهات التي تصف كيف يستخدم الممثل (عادةً ما يكون شخصًا ، ولكن ربما نظامًا آخر) النظام لتحقيق هدف محدد. يتم وصف حالات الاستخدام من منظور المستخدم ، وليس من النظام. العمل الداخلي للحفاظ على صحة النظام ليس جزءًا من حالة الاستخدام.


يجب أن تتحقق حالة اختبار واحدة على الأقل من السيناريو الرئيسي ، ويجب أن تكون حالة واحدة على الأقل في سيناريوهات بديلة.


استخدم توصيات حالة اختبار الحالة


  1. ابدأ بالبيانات الصالحة والسيناريوهات الأكثر شيوعًا.
  2. تحقق من قيم الحدود والقيم غير الصالحة (باستخدام التقنيات التي تمت مناقشتها سابقًا).
  3. نادرا ما تستخدم سيناريوهات حاسمة للنظام (ما يسمى إيقاف تشغيل المفاعل النووي)
  4. اختبارات لكل فرع من فروع كل خطوة
  5. حاول إجراء العملية بطريقة غير عادية
  6. الشرط المسبق إذا كان حقا يمكن أن يحدث
  7. إذا كانت الصفقة تحتوي على حلقات ، فقم بتشغيلها في حلقة ، وليس مرة واحدة أو مرتين - كن أكثر صرامة
  8. ابحث عن مسار طويل ومتعرج واتبعه
  9. إذا كان من المتوقع تنفيذ المعاملة بترتيب منطقي ، فحاول تنفيذها بالترتيب العكسي (على سبيل المثال ، املأ الحقول ليس من أعلى إلى أسفل ، ولكن من أسفل إلى أعلى)
  10. إنشاء اختبارات إثبات كذبة

استخدام قالب وصف الحالة


استخدام مكون القضية
وصف
استخدام رقم القضية أو معرف
(الرقم أو الهوية)
معرف فريد
استخدام اسم القضية
(اسم)
في شكل جملة تحتوي على فعل في شكل نشط (ماذا تفعل؟).
على سبيل المثال ، تسجيل الدخول ، إنشاء طلب
الهدف في السياق
(الغرض والسياق)
وصف أكثر تفصيلا لهذا الغرض ، إذا لزم الأمر.
على سبيل المثال ، قم بإنشاء طلب نيابة عن المنظمة.
النطاق (الحدود)
شركة (عام) | النظام | النظام الفرعي
مستوى (مستوى)
عام | خاص |
الممثل الرئيسي
دور المستخدم الأساسي أو الوصف
شروط مسبقة (شروط مسبقة)
الحالة التي يجب أن يكون عليها النظام قبل بدء حالة الاستخدام
شروط نهاية النجاح
الحالة التي يجب أن يدخلها النظام في حالة اكتمال حالة الاستخدام بنجاح
فشل شروط النهاية
الحالة التي يجب أن يدخلها النظام في حالة فشل حالة الاستخدام
الزناد (شرط الزناد)
العمل لتحريك حالة الاستخدام هذه
سيناريو النجاح الرئيسي
(السيناريو الرئيسي)
الخطوات والإجراءات
ملحقات (شروط إضافية)

الشروط التي قد تنشأ فيها خيارات بديلة في الخطوات الرئيسية للسيناريو.
الاختلافات الفرعية
البدائل
الخطوات والإجراءات. الخيارات التي لا تتعلق الخيط الرئيسي ، ولكن قد تنشأ. وصف للخطوة.
الأولوية (الأولوية)
حرج
وقت الاستجابة
الوقت اللازم لإكمال هذه الحالة
تردد
تواتر الاستخدام
قنوات لممثل أساسي
التفاعلية | ملف | قاعدة البيانات التفاعلية / ملف / قاعدة
البيانات المستحقة
جدول المواعيد
مستوى الاكتمال
درجة الاكتمال
القضايا المفتوحة
العيوب المبلغ عنها

إذا كنت لا تحاول أشياء غريبة. أنت تعرف أن المستخدمين سوف.

Source: https://habr.com/ru/post/ar462837/


All Articles