اليوم ، يعد اختبار البرمجيات أحد العمليات الرئيسية لإنشاء منتج. لا يهم المنهجية أو المنهجية أو العملية أو البرنامج الذي تستخدمه بأي طريقة كانت موجودة دائمًا في عمليتك. في السنوات الأخيرة (وربما حتى عقد من الزمان) ، تطور اختبار البرمجيات إلى منطقة منفصلة لتكنولوجيا المعلومات ، والتي تتطور باستمرار في المجتمع العالمي.
ونعم ، اليوم سنتحدث عن المختبرين اليدويين العاديين (الوظيفيين) ، دون تحيز في الأتمتة وعبء العمل وأنواع الاختبارات الفنية الأخرى!أصبحت مهنة الاختبار اليدوي الآن واحدة من أكثر عمليات تكنولوجيا المعلومات شيوعًا وأحد أسهل الطرق للوصول إلى تكنولوجيا المعلومات.
لماذا؟
لأن المختبرين لا يفعلون شيئًا ، فهم لا يحتاجون إلى المعرفة. يمكن للجميع اختبار!لأن مهنة الاختبار اليدوي في المرحلة الأولية لا تتطلب معرفة ومهارات محددة. "المعرفة" الرئيسية للاختبار هي القدرة على "تدمير" والتفكير التحليلي. والأهم من ذلك - أن يكون لديك عقلية غير قياسية ، لإيجاد حلول غير تافهة للمهام. وحش معين الذي يعرف كيفية سحق وكسر :)
يمكن دائمًا تعليم المهارات الصعبة ، لكن لسوء الحظ يصعب تعليم المهارات اللينة ، لأن هذه هي شخصية الشخص وموقفه من شيء ما ، إلخ. عادةً ما أتطلع إلى المديرين الذين يقومون بتوظيف متخصصين في الاختبار اليدوي للمهارات الصعبة. لماذا تفعل هذا ؟؟ (يمكنك ترك الإجابات في التعليقات) حسنًا ، حسنًا ، دعنا نواصل :)
إذا أخذنا في الاعتبار الميزات التقنية للاختبار التي يجب أن يعرفها المختبر اليدوي ، فيمكن تقسيمها إلى جزأين رئيسيين ،
وربما يختلف الكثيرون معي ، سيصرخون على هذا النحو ، أنت مخطئ ، الاختبار صعب للغاية - إنه التحضير للاختبار والاختبار.
سننظر في الجزء الأكثر إثارة للاهتمام ورائعة من الاختبار - التحضير للاختبار. يعتمد هذا الجزء من عملية الاختبار على مدى جودة أداء الاختبار بنفسك بشكل صحيح ، والعثور على العيوب اللازمة وضمان
الوجه الراضٍ للعميل (أو منتج الشريك) ، وجودة المهمة بعد التنفيذ.
الكثير منكم ممن شاركوا في الاختبار ، بطريقة أو بأخرى ، كانوا يستعدون للاختبار. الفرق هو عادة فقط في مقدار إضفاء الطابع الرسمي على هذه المرحلة من عملية الاختبار. إذا كنت تجري اختبارات بحثية ، لا تكتب نصوص اختبار ، فهي
تعطيك نظامًا وتندفع فورًا إلى المعركة ، على أي حال ، أنت تستعد للاختبار. غالبًا ، في المشاريع البسيطة ، قد لا يلاحظ المختبر هذا ، لأن مرحلة التحليلات والتحضير للاختبار تتم على مستوى اللاوعي. لكن رغم ذلك ، لا يزال هناك.
وفي هذه السلسلة من المقالات سنتحدث عن هذا.
في مكان عملي ، غالبًا ما أوفر التدريب للمختبرين اليدويين ، وأواجه مواقف يبدو أن الجميع قد سمعوا عنها حول تقنيات تصميم الاختبار ، لكن لا أحد يستخدمها في العمل.
يبدو مثل هذا:
- لماذا نحتاج إلى تقنيات تصميم الاختبار؟
- لتحديد صحيح التحقق من الصحة للاختبار.
- هل تستخدمها في عملك؟
- بصراحة لا ، نحن أنفسنا نحدد ما يجب التحقق منه.
لماذا يحدث هذا؟ بعد كل شيء ، تقنيات تصميم الاختبار هي الأساس لكتابة البرامج النصية للاختبار. هذا هو نفس القدرة على قيادة السيارة ، ولكن لا تعرف قواعد المرور. لماذا لا يستخدمهم المختبرون في عملهم؟
الجواب بسيط.
أولاً ، عندما يتم تدريس الفاحصين في دورات الاختبار (أو الدراسة الذاتية على الكتب والمقالات) ، يتم إخبارهم بكيفية تطبيق تقنيات تصميم الاختبار على أمثلة أولية. والمشكلة الرئيسية لهذا التدريب هي أنه لا يمكن للمختبرين نقل المعرفة المكتسبة إلى مهامهم الحقيقية. وهذا هو ، استخدام تقنيات تصميم الاختبار في العمل اليومي.
ثانياً ، عند تدريس تقنيات تصميم الاختبار ، تكون هذه العملية ذات طابع رسمي للغاية ، والتي تبدو وكأنها اختبار يحتاج إلى إضفاء الطابع الرسمي على كل شيء في عمله. وعادة لا يحتاج أحد إلى هذا لأي شخص.
وبكلمات بسيطة ، تقنيات تصميم الاختبار هي مجموعة من القواعد التي تسمح لك بتحديد قائمة الشيكات للاختبار بشكل صحيح. والأهم من ذلك هو
استخدام هذه القواعد دائمًا وفي كل مكان :) لتتمكن من تطبيق هذه القواعد على مستوى حدسي. إنها القدرة على "إجراء تحليلات في الرأس" التي تميز اختبار جيد!
في مؤسستي ، بالإضافة إلى المعايير والممارسات المقبولة عمومًا ، تتمثل مهام تصميم الاختبار في:
- متطلبات الاختبار وتحليل المخاطر
- تحديد الشيكات للاختبار
- إضفاء الطابع الرسمي على الشيكات في شكل برامج اختبار
- تحديد أولويات الشيكات
- تحديد طرق الاختبار
في هذه السلسلة من المقالات ، سأحاول إخبارك ليس فقط بتقنيات تصميم الاختبار ، ولكن أيضًا حول كيفية استخدام كل منها (أي جميعًا معًا وليس واحدًا أو اثنين) في الممارسة العملية ، بما في ذلك مثال عن وظيفة مصرفنا. كيفية إنشاء اختبارات للاختبار باستخدام تقنيات تصميم الاختبار للأنظمة والعمليات الكبيرة. والأهم من ذلك ، سوف تحصل على إجابة متى وأين الاختبارات لتطبيق تقنيات تصميم الاختبار.
لذلك دعونا نبدأ.
وسوف نبدأ بأبسط الأساليب ، ألا وهما تقنيتان التصميم الرئيسيتان للاختبار التي سمعها الجميع ، وأنا متأكد من تطبيقها ، ولكن على الأرجح على مستوى سهل الاستخدام في عملهم.
هذه هي فئات التكافؤ والقيم الحدودية.
ما هي فئات التكافؤ؟
فئة التكافؤ هي مجموعة من بيانات برامج الإدخال (أو الإخراج) التي تتم معالجتها بواسطة برنامج وفقًا لخوارزمية واحدة أو تؤدي إلى نتيجة واحدة.
وهذا هو ، مجموعة معينة من القيم التي يمكنك استبدالها في البرنامج والحصول على نفس النتيجة. يمكن أن تكون النتيجة ليس فقط القيم المحددة ، وإجراءات البرنامج ، ولكن أيضًا النطاق فقط. لذلك ، فإن أبسط فئات التكافؤ التي تنقسم إليها الاختبارات هي فئتان رئيسيتان: السيناريوهات الإيجابية والسلبية.
هم دائما هناك. يقسم كل اختبار الشيكات إلى هذه الفئات ، ولكن لا يعرف كل اختبار سبب قيامه بذلك. الجواب هو فئات التكافؤ.
علاوة على ذلك ، يمكن تقسيم كل فئة تكافؤ إلى فئات إضافية ، إلخ. حتى لا تؤدي الفحوصات إلى نتائج اختبار محددة.
النظر في مثال:يحسب نظام التسجيل معدل الفائدة على قرض للعميل بناءً على عمره ، ويتم إدخاله في النموذج:
- من 18 إلى 25 سنة - 18 ٪
- من 25 إلى 45 سنة - 16 ٪
- أكثر من 45 سنة - 20 ٪
نحدد فئتين رئيسيتين - هذه سيناريوهات
إيجابية وسلبية .
ستكون السيناريوهات الإيجابية هي كل القيم التي تؤدي إلى النتيجة ، أما السيناريوهات السلبية فهي القيم التي لا يتم وصف نتائجها بالنتيجة المتوقعة.
بعد ذلك ، نقسم فئة السيناريوهات الإيجابية إلى 3 فئات من قيم المدخلات 18-24 و 25-44 و 45 +
في فئة السيناريوهات السلبية ، نقوم بتكوين قيم بناءً على الحاجة إلى التحقق من فشل البرنامج ، لذلك لدينا 0 ، 1-17 ، قيم سالبة ، إدخال حرف ، إلخ.
ستكون نتيجة هذا القسم قيمة أو مجموعة من القيم التي نحتاج فيها إلى إجراء فحص واحد فقط مع أي قيمة من نطاق البيانات. قد تحدث مواقف مثل قيمة واحدة في نطاق. هذا هو أيضا فئة التكافؤ منفصلة ويتطلب أيضا التحقق.
المجموع لدينا.
- الاختبارات الإيجابية: إدخال القيم: 19 ، 30 ، 48 (يمكن أن تكون القيم في نطاق معين من الفصل)
- الاختبارات السلبية: 0 ، 3 ، -1 ، A ، إلخ.
من المهم جدًا ألا يتم تطبيق تقنيات تصميم الاختبار بشكل مستقل عن الآخرين! الآن ننظر إليهما بشكل منفصل ، لكن في النهاية سأعلمك كيفية استخدامها معًا.
ميزة أخرى من فئات التكافؤ هو تطبيقها. أميز 3 مستويات من تطبيق تقنيات تصميم الاختبار للتحضير للاختبار.
- المستوى الأول هو فحص عناصر النظام (على سبيل المثال ، الحقول ، مربعات الاختيار ، الأزرار ، إلخ.)
- المستوى الثاني - التحقق من منطق النظام عند الجمع بين البيانات في عناصر النظام
- المستوى الثالث هو التحقق من العملية التجارية للنظام ومنطق البرنامج.
بصريا ، يبدو مثل هذا:
فئات التكافؤ هي أكثر صلة بالمستوى الأول وتستخدم لاختبار عناصر البرنامج. لكن عقائديًا ، يمكن تطبيق هذا النهج على مستويات أخرى.
جزء لا يتجزأ من التحقق من أي عنصر هو أسلوب آخر -
حدود القيم .
تُكمل قيم الحدود الفئات المكافئة ، وبالتالي تغطي اختبارات عنصر البرنامج بالكامل.
قيم الحدود هي تقنية تصميم اختبار تكمل فئات التكافؤ بفحوصات إضافية عند حدود الظروف.
يبدو أن كل شيء بسيط!
دعونا نعود إلى مثالنا في وقت سابق.
يحسب نظام التسجيل معدل الفائدة على قرض للعميل بناءً على عمره ، ويتم إدخاله في النموذج:
- من 18 إلى 25 سنة - 18 ٪
- من 25 إلى 45 سنة - 16 ٪
- أكثر من 45 سنة - 20 ٪
ماذا ستكون الحدود هنا؟
إذا فكرت في طول الحقل على صفحة Habra ، أو حول عطلة في البلدان الدافئة ، أريد أن أزعجك ، هذا ليس كذلك :)
ما لتحديد القيم الحدود تحتاج إلى شيء آخر. وهي تحديد القيم التي هي البداية والنهاية لفصلنا. والشيء الأكثر أهمية !!! لقد أظهرت سنوات من البحث في مجال الاختبار أن غالبية العيوب يتم العثور عليها بواسطة تقاطع القيم التي تغير ظروف العمل في البرنامج.
لذلك ، بالإضافة إلى قيمة الحدود ، نستخدم قيمتين إضافيتين للاختبار ، والقيمة قبل الحد والقيمة بعد الحد.
نتيجة لذلك ، لدينا:
حدود فصولنا: 17 و 18 و 19 و 24 و 25 و 26 و 44 و 45 و 46 والحد الأقصى.
أيضا ، لدينا فئة سلبية ، فمن 0 إلى 18. لذلك ، هنا يجب علينا أيضا استخدام القيم الحدودية للاختبار: -1 ، 0 ، 1 ، 17،18
بعد ذلك ، نستبعد القيم المكررة ، ونحصل على قيم للتحقق من عنصر إدخال البيانات.
-1 ، 0 ، 1 ، 17 ، 18 ، 19 ، 24 ، 25 ، 26 ، 44 ، 45 ، 46 ، كحد أقصى.
عادة ما يتم تحديد القيمة القصوى من قبل العميل أو المحلل. إذا لم تتمكن من تقديمها ، فيجب عليك أن تسقطها ولا تحققها ، وتحتاج إلى اختيار القيمة التي تتوافق مع المنطق السليم (لا يكاد أي شخص سيأتي للحصول على قروض في سن 100).
والخطوة التالية هي فرض القيم الحدية على قيم فئات التكافؤ ، واستبعاد الاختبارات غير الضرورية باستخدام القاعدة "قيمة واحدة كافية للتحقق من فئة واحدة" ووضع اللمسات الأخيرة على القائمة.
إذا كان لدينا في وقت سابق 3 قيم لـ 3 فئات ، 19 و 30 و 48 ، ثم بعد تحديد قيم الحدود ، يمكننا استبعاد القيمين 30 و 48 من القائمة واستبدالها بقيم ما قبل الحدود ، مثل 26 (بدلاً من 30) و 46 ( بدلا من 48).
يتم تحديد القيم الحدودية ليس فقط للقيم الرقمية ، ولكن أيضًا للقيم الأبجدية (على سبيل المثال ، حدود الأبجدية والتشفير) والتاريخ والوقت والقيم الدلالية. تعتمد حدود القيم العددية على تنسيق الإدخال ، إذا كان لديك أعداد صحيحة ، على سبيل المثال 2 ، فإن قيم الحدود ستكون 1 و 3. إذا كانت القيم الكسرية ، فإن حدود الرقم 2 ستكون بالفعل 1.9 (1.99) أو 2.1 ( 2.01) ، الخ
تقنيات تصميم المستوى الأول للاختبار بسيطة ومباشرة. أعتقد أنك ستقول ذلك أمرًا سهلاً ، ولكن لماذا تحقق جيدًا من كل عنصر. وسوف تكون على حق! ..
غالبًا ما يتم استخدامها في تطوير برامج جديدة ، لأنه بعد التحقق من عناصر النظام أثناء التطوير ، لا يخضعون في كثير من الأحيان للتغيير على مستوى العنصر. لا تحتاج إلى التحقق باستمرار من قيمة كل عنصر في كل شاشة من برامجك ، ولكن تذكر أنه إذا تغير منطق معالجة عناصر البرنامج ، فأنت بحاجة إلى إعادة التحقق من معالجة قيم العناصر بشكل صحيح.
حسنا ، من السهل جدا ؟؟ الآن سنبدأ في تحليل التقنيات الأكثر تعقيدًا ، والاستعداد.يتحمل فنيو تصميم المستوى الثاني الاختبار مسؤولية تباين البيانات وتكاملها عند اختبار البرنامج.
التقنية الرئيسية لتصميم الاختبار هي
الاختبار الموازي (اختبار الزوجية) . يتمثل جوهر هذه التقنية في تقليل تباين مجموعات عمليات الفحص الكافية لضمان وجود برامج عالية الجودة.
وبكلمات بسيطة ، يتم تطبيق قاعدة Pareto في هذه التقنية ، ويمكن تحقيق 80 ٪ من الجودة في 20 ٪ فقط من عمليات فحص تركيبة البيانات.
تم تطوير هذه التقنية من خلال أكثر من 15 عامًا من أبحاث IEEE في مجال تحليل أسباب العيوب في النظام. أظهرت نتائج الدراسة أن 98٪ من جميع العيوب تحدث عند تعارض زوج بيانات الإدخال أو معلمة إدخال واحدة.
لماذا تم اختيار الزوجين؟
الغوص في غابة الإحصاءات الرياضية ونظرية الاحتمالات للعثور على الجواب .
بالطبع ، لن نذهب إلى هناك اليوم ، نظرية الاحتمالات معقدة للغاية بالنسبة لمتخصصي تكنولوجيا المعلومات البسيطة ، كل شيء بسيط ، يأخذ لعبة نرد منتظمة مع 6 وجوه.
دع خسارة القيمة 2 عبارة عن عيب ، ثم احتمال حدوث عيب عند رمي مكعب هو 1/6 = 0.167.
إذا دحرجنا زهرتين ، يصبح احتمال السقوط 2 التعادل (عيبان) أقل ويساوي 0.167 * 0.167 = 0.028 ، لمدة 3 بالفعل 0.005 ، إلخ.
اتضح أن احتمال حدوث خلل مع مجموعة من 3 معلمات أو أكثر صغير جدًا بحيث يمكن التخلص منه.
عندما نختبر البرنامج ، هناك دائمًا عدد من العناصر التي تؤثر على النتيجة ، على سبيل المثال ، نموذج ملء البيانات في طلب القرض. هناك عدد من الحقول التي تعطي نتيجة معا. إنه تجميع البيانات عند ملء الحقول التي نتحقق منها باستخدام اختبار الزوج.
دعونا نلقي نظرة على مثال على وظيفة تصميم البطاقة عن بعد في أحد البنوك.
إذا نظرنا بعناية ، فسنراكم خمسة حقول للبيانات:
- الاسم الكامل
- تاريخ الميلاد
- الهاتف المحمول
- سلسلة رقم جواز السفر
- البريد الإلكتروني،
- وكذلك 2 خانات الاختيار.
تتمثل مهمتنا ، باستخدام تقنيات المستوى الأول ، في تحديد قائمة فئات التكافؤ التي يمكن للبرنامج أخذها.
من المهم أنه عند استخدام تقنية الاختبار المزدوج ، فإننا لا نتحدث عن نتيجة الاختبار. من المهم بالنسبة لنا أن نتحقق من تباين البيانات عند ملء الطلب.
وهكذا،
يمكن أن يأخذ
حقل الاسم الكامل قيمًا (فئات):
- الاسم باللغة الروسية
- قيمة غير صالحة
- قيمة فارغة
في كثير من الأحيان لا يفهم المختبرون القيم التي يجب اختيارها لتقنية معينة ، إذا لم تكن مقيدة بالقدرة على الدخول. على سبيل المثال ، إذا أتيحت لنا الفرصة لاختيار جنس شخص M أو F ، فكل شيء بسيط ، فهناك معنيان. ولكن عندما يكون لدينا خط لإدخال البيانات ، ثم في الاختبار الزوجي لا نتحقق من صحة ملء حقل معين ، لأن يجب إجراء هذه الفحوصات في المستوى الأول من تصميم الاختبار (أو دمجها مع الاختبار المزدوج). نحن نستخدم فئة التكافؤ لهذا الحقل ، لأننا لا نهتم بنوع القيمة التي ستكون عليها.
نذهب إلى أبعد من ذلك ،
تاريخ الميلاد ، وكذلك
الهاتف المحمول ، وسلسلة ورقم جواز السفر يمكن أن يكون أيضا 3 حالات:
- قيمة صالحة
- قيمة غير صالحة
- قيمة فارغة
لأن
البريد الإلكتروني اختياري ، لهذا الحقل قيمتان:
تحتوي خانات الاختيار عادةً على حالتين فقط - Y أو N.
للتحقق من جميع المجموعات من هذا النموذج ، سنحتاج إلى إجراء أكثر من 1000 اختبار ، ولكن باستخدام اختبار الزوج ، نحتاج إلى 9 اختبارات فقط!
السحر ، لا أعتقد :)
والخطوة التالية هي إنشاء مجموعة متعامدة مع مجموعات البيانات. تتمثل أسهل طريقة لتجميع صفيف في تعبئة البيانات في أزواج ، بدءًا من العناصر التي تحتوي على أكبر عدد من القيم ثم التنازلي. لأنه في المثال الخاص بنا يوجد 4 عناصر لها نفس عدد القيم ، يمكننا اختيار أي زوج.
نأخذ الاسم الكامل وسلسلة رقم جواز السفر. مهمتنا هي فرز جميع قيم زوج معين فيما بينهم:
بعد التكرار على زوج ، نقوم بإنشاء زوج آخر ونبدأ في التكرار على القيم (على سبيل المثال ، رقم الهاتف المحمول)
نقوم بتوصيل العنصر التالي وما إلى ذلك حتى يتم ملء الجدول بالكامل بالكامل ، والذي سيبدو كما يلي:
وبالتالي ، نحصل على 9 اختبارات مع فئات معادلة محددة يمكننا تقديمها لاختبار عمل تباين البيانات للنموذج. يمكننا ملء الفصول بقيم محددة نحصل عليها باستخدام المستوى الأول من تقنية تصميم الاختبار.
في الختام من هذه المقالة ، سأقول إن تقنيات تصميم الاختبار التي تمت مراجعتها لا تغطي سوى جزء من الاختبارات الخاصة باختبار البرنامج ، أي التحقق من التشغيل الصحيح لعناصر البرنامج ونتائج توليفاتها أثناء تشغيلها. في الجزء الثاني ، سوف ننتقل إلى تقنيات تصميم الاختبار التي تسمح لك بالعمل على عجائب الاختبار لاختبار منطق البرنامج والعمليات. هذا عنصر مهم للغاية في الاختبار اليدوي ، وهذا هو بالضبط ما تختبره في عملك!
آمل أن تكون مفيدة!