ما هو الاختبار القائم على النموذج؟
⚡ ملخص ذكي
يقوم اختبار البرمجيات القائم على النموذج بفحص سلوك البرنامج أثناء التشغيل مقابل التنبؤات التي تم إجراؤها بواسطة نموذج مطلق.tracنموذج النظام، يقوم بإنشاء حالات الاختبار تلقائيًا من آلات الحالة المحدودة أو مخططات الحالة أو رموز UML بدلاً من القيام بذلك يدويًا.
ما هو الاختبار القائم على النموذج؟
الاختبار القائم على النموذج هي تقنية لاختبار البرمجيات، حيث يتم التحقق من سلوك البرنامج قيد الاختبار أثناء التشغيل مقابل التنبؤات التي يقدمها نموذج. النموذج هو وصف لسلوك النظام، معبراً عنه بتسلسلات المدخلات، والإجراءات، والشروط، والمخرجات، وتدفق البيانات من المدخلات إلى المخرجات. يجب أن يكون النموذج القابل للاستخدام مفهوماً عملياً، وقابلاً لإعادة الاستخدام، وقابلاً للمشاركة، وأن يصف النظام قيد الاختبار بدقة.
تتوفر نماذج عديدة، يصف كل منها جانبًا مختلفًا من سلوك النظام. ومن الأمثلة الشائعة ما يلي:
- تدفق البيانات
- تدفق التحكم
- مخططات التبعية
- جداول القرار
- آلات انتقال الدولة
يصف اختبار النموذج كيفية استجابة النظام لإجراء محدد بواسطة النموذج. يتم إدخال الإجراء، ثم يتم التحقق مما إذا كان النظام يستجيب كما يتوقع النموذج. أي اختلاف بين الاستجابة والتوقعات يشير إما إلى خلل في البرنامج أو خطأ في النموذج، وكلاهما يستحق البحث عنه.
هي طريقة رسمية بسيطة للتحقق من صحة النظام، وهي قابلة للتطبيق على اختبار الأجهزة بنفس سهولة تطبيقها على اختبار البرمجيات. ولأن الاختبارات تنبع من مواصفات السلوك وليس من الكود، فإن هذه التقنية تندرج ضمن اختبار الصندوق الأسود عائلة تقنيات اختبار البرمجيات.
مثال على الاختبار القائم على النموذج
أبسط طريقة لفهم نموذج سلوكي هي تتبعه خطوة بخطوة. يوضح الرسم البياني أدناه مهمة تحرير نص بسيطة، حيث يمثل كل مربع حالة يمكن أن يكون عليها التطبيق، ويمثل كل سهم إجراءً يمكن للمستخدم القيام به.
يشرح النموذج طريقة مبسطة لكتابة الشعر في برنامج المفكرة، والإجراءات الممكنة المرتبطة بكل خطوة. لكل إجراء، مثل بدء تشغيل التطبيق، أو إدخال قصيدة، أو حفظ الملف، حالة اختبار يمكن توليد النتائج والتحقق منها. إن اتباع مسار مختلف عبر نفس المخطط، على سبيل المثال البدء والإغلاق دون حفظ، ينتج عنه حالة اختبار مختلفة دون أي تكلفة تصميم إضافية، وهو ما يمثل الحجة الاقتصادية لهذه التقنية بأكملها.
أنواع MBT
يوجد نوعان من أطر اختبار النماذج، والفرق بينهما يكمن ببساطة في وقت تنفيذ خطوات الاختبار:
- غير متصل بالإنترنت / مسبقًا: إنشاء مجموعات الاختبار قبل تنفيذها. مجموعة الاختبار هي مجموعة من حالات الاختبار، وفي هذا الوضع يتم تخزين المجموعة ومراجعتها وإعادة تشغيلها كأي مجموعة أخرى. اختبار الأتمتة الأصول.
- عبر الإنترنت / أثناء التنقل: إنشاء مجموعات الاختبار أثناء تنفيذ الاختبار، حيث يتم اختيار الخطوة التالية بناءً على كيفية استجابة النظام فعليًا للخطوة السابقة.
يُناسب التوليد غير المتصل بالإنترنت البيئات الخاضعة للتنظيم والتي تتطلب مجموعة قابلة للمراجعة والتكرار. أما التوليد المتصل بالإنترنت فيُناسب جلسات الاستكشاف طويلة الأمد في الأنظمة ذات الحالة، لأن المُولِّد يستطيع التفاعل مع الاستجابة الفعلية بدلاً من الاستجابة المتوقعة.
كيف يعمل الاختبار القائم على النموذج
بغض النظر عن الإطار المستخدم، تتبع التقنية نفس المراحل الخمس. تنتج كل مرحلة عنصرًا تستخدمه المرحلة التالية، ولهذا السبب يصبح النموذج، وليس نص الاختبار، هو الشيء الذي يحتفظ به الفريق.
- الخطوة الأولى: بناء النموذج. ترجمة المتطلبات أو المواصفات إلى لغة برمجة مستقلةtracنموذج السلوك المتوقع، الذي يحدد الحالات، والانتقالات بينها، والمدخلات التي تؤدي إلى كل انتقال.
- الخطوة الثانية: اختيار معايير اختيار الاختبار. تحدد المعايير متى يتوقف المولد. ومن المعايير الشائعة تغطية جميع الحالات، والتي تزور كل حالة مرة واحدة على الأقل؛ وتغطية جميع الانتقالات، والتي تشغل كل سهم مرة واحدة على الأقل؛ وتغطية المسار أو تدفق البيانات لإجراء استكشاف أعمق.
- الخطوة 3: توليد القيمة المطلقةtracحالات اختبار t. تقوم الأداة بمسح النموذج وإصدار سلاسل من القيم المطلقة.tracالخطوات التي تفي بالمعايير المختارة، بالإضافة إلى النتيجة المتوقعة في كل خطوة.
- الخطوة الرابعة: تجسيد المادةtracاختبارات t. تقوم طبقة المحول بربط كل قيمة مطلقةtracلا تخطُ خطوةً نحو إجراءٍ حقيقي ضد النظام، مثل التفاعل مع واجهة المستخدم، و API مكالمة أو رسالة بروتوكول. هذه الخريطةping تُكتب مرة واحدة ويتم إعادة استخدامها بواسطة كل اختبار يتم إنشاؤه.
- الخطوة الخامسة: التنفيذ وإصدار الأحكام. تُجرى الاختبارات الملموسة على النظام قيد الاختبار، وتُقارن كل استجابة مُلاحظة بتوقعات النموذج، ويتم تسجيل نتيجة النجاح أو الفشل. tracتمت إعادته إلى عنصر النموذج الذي أنتجه.
استخدم tracإن القدرة التي تم إنشاؤها في الخطوة 5 هي العائد العملي. فعندما يتغير أحد المتطلبات، يتغير النموذج، ويتم إعادة إنشاء الاختبارات المتأثرة بدلاً من إعادة كتابتها، وهذا هو السبب في أن الفرق التي تقوم بذلك بشكل متكرر اختبار الانحدار في مقابل المواصفات الثابتة، تكون الفائدة الأكبر.
نماذج مختلفة في الاختبار
لفهم نظرية السلوك القائم على المحاكاة، من الضروري فهم بعض النماذج الموضحة أدناه. يوازن كل نموذج بين القدرة التعبيرية والجهد المبذول، لذا يعتمد الاختيار على مدى تعقيد السلوك قيد الاختبار.
آلات الحالة المحدودة
يساعد هذا النموذج المختبرين على تقييم النتيجة بناءً على المدخلات المختارة. ويمكن أن تؤدي تركيبات مختلفة من المدخلات إلى حالة مماثلة للنظام.
سيكون للنظام حالة محددة وحالة حالية، والتي يتم التحكم فيها بواسطة مجموعة من المدخلات التي يقدمها المختبرون.
لنأخذ المثال التالي. يسمح نظام ما للموظفين بتسجيل الدخول إلى تطبيق. حالة الموظف الحالية هي "خارج"، وتصبح "داخل" بمجرد تسجيل دخوله إلى النظام. في حالة "داخل"، يمكن للموظف عرض المستندات وطباعتها ومسحها ضوئيًا في النظام.
يتم عرض آلة الحالة لهذا المثال هنا، مع تسمية كل سهم بالمدخل الذي يتسبب في الانتقال.
مخططات الدولة
مخطط الحالة هو امتداد لآلة الحالة المحدودة، ويمكن استخدامه للأنظمة المعقدة والأنظمة التي تعمل في الوقت الحقيقي. يصف مخطط الحالة سلوكيات النظام المختلفة، وله عدد محدد من الحالات، ويتم تحليل سلوك النظام وتمثيله في شكل أحداث لكل حالة. أهم ما يميز هذا المخطط عمليًا هو التسلسل الهرمي: إذ يسمح مخطط الحالة بحالات متداخلة ومتوازية، مما يتيح رسم آلة قد تحتاج إلى عشرات الحالات المسطحة بشكل مختصر.
على سبيل المثال، تُسجّل العيوب في أداة إدارة العيوب بحالة "جديد". بمجرد أن يُصلح المطورون العيب، يجب تغيير حالته إلى "تم الإصلاح". إذا لم يُصلح العيب، تتغير حالته إلى "إعادة فتح". ينبغي تصميم مخططات الحالة بحيث يتم استدعاء حدث لكل حالة.
تم رسم دورة حياة العيب أدناه، حيث يتم عرض كل حالة كحالة، وكل إجراء من إجراءات سير العمل كحدث ينقل العيب بينها.
لغة النمذجة الموحدة (UML)
لغة النمذجة الموحدة (UML) لغة النمذجة الموحدة (UML) هي لغة نمذجة عامة الأغراض ومعيارية. تتضمن UML مجموعة من تقنيات الترميز الرسومي المستخدمة لإنشاء نماذج مرئية يمكنها وصف سلوك النظام المعقد للغاية.
يحتوي UML على تدوينات مثل:
- تجاربنا
- الجهات الفاعلة
- طريقة العمل
- مكونات
- لغة برمجة
تُعد مخططات النشاط ومخططات آلة الحالة هي المخططات التي يقرأها مولدو الاختبارات في أغلب الأحيان، كما يوضح نموذج UML النموذجي أدناه.
أدوات الاختبار القائمة على النماذج
لا يُنتج النموذج الموجود على الورق أي شيء بمفرده. هناك حاجة إلى مولد لتتبع النموذج وإصدار مسارات الاختبار، وينقسم سوق الأدوات إلى مولدات مفتوحة المصدر ومنصات تصميم اختبار تجارية.
- GraphWalker — أداة مفتوحة المصدر تقرأ النماذج المصممة على شكل رسوم بيانية موجهة وتولد مسارات اختبار منها، مع مولدات وشروط توقف قابلة للتحديد.
- fMBT — مجموعة أدوات اختبار مفتوحة المصدر تعتمد على النماذج من شركة إنتل، وتدعم إنشاء الاختبارات وتنفيذها مقابل نماذج الحالة.
- متوافق — منتج تجاري آلي لتصميم الاختبارات يستمد حالات الاختبار والنصوص البرمجية من نماذج سلوكية رسومية.
- ماتيلو و إم بي تي سويت — منصات تجارية تهدف إلى نماذج الاستخدام الإحصائية وإلى توليد اختبارات في أطر الأتمتة الحالية.
- مستكشف خاص - Microsoftامتداد اختبار قائم على النموذج لـ Visual Studio، والذي تم الاستشهاد به على نطاق واسع في أدبيات اختبار البروتوكولات.
يعتمد الاختيار بشكل أقل على قوائم الميزات، وأكثر على سؤالين: ما هي الرموز التي يمكن للفريق رسمها فعليًا، وما إذا كانت الأداة قادرة على إصدار اختبارات في إطار عمل الأتمتة المستخدم بالفعل. إن مولد الاختبارات الذي ينتج مجموعات لا يمكن لأحد تنفيذها يضيف خطوة إلى العملية بدلًا من حذفها.
الاختبار القائم على النموذج مقابل تصميم الاختبار التقليدي
من الجدير بالذكر المقارنة مع تصميم الاختبار المكتوب بخط اليد، لأن النهجين يفشلان في أماكن مختلفة بدلاً من أن يكون أحدهما أفضل ببساطة.
| البعد | الاختبار القائم على النموذج | تصميم الاختبار التقليدي |
|---|---|---|
| مصدر حالات الاختبار | يتم إنشاؤه تلقائيًا من نموذج سلوكي | تمت كتابته بشكل فردي بواسطة مختبر بناءً على المتطلبات |
| أثر تغيير المتطلبات | قم بتحديث النموذج، وأعد إنشاء الاختبارات المتأثرة | حدد موقع كل حالة اختبار متأثرة وقم بتحريرها يدويًا |
| تغطية | قياسًا بمعايير النموذج مثل جميع الحالات أو جميع الانتقالات | يتم قياسها وفقًا للمتطلبات، وتعتمد على تقدير المختبر. |
| تكلفة مقدما | مستوى عالٍ: مهارة النمذجة، وإعداد الأدوات، وطبقة المحول | مستوى منخفض: يمكن للمختبِر البدء بالكتابة فوراً |
| أفضل ملاءمة | أنظمة ذات حالة، طويلة الأمد، بمواصفات مستقرة | مشاريع قصيرة، وميزات فريدة، وأعمال استكشافية |
| وضع العطل الرئيسي | يؤدي النموذج الخاطئ أو القديم إلى توليد اختبارات خاطئة دون أن يلاحظ المستخدم. | تتراكم الفجوات والتكرارات عبر مجموعة كبيرة |
يوضح التطور التالي سياق هذه التقنية: فقد حل التنفيذ الآلي محل التنفيذ اليدوي للاختبار، كما أن الأساليب القائمة على النماذج تنقل الأتمتة إلى مستوى سابق، إلى تصميم الاختبار نفسه.
تحديات الاختبار القائم على النموذج
يتطلب تطبيق منهجية إدارة الأعمال القائمة على النماذج (MBT) في أي مؤسسة استثمارًا كبيرًا من المال والجهد. وفيما يلي عيوب هذه المنهجية في هندسة البرمجيات:
- يحتاج المختبرون إلى مهارات النمذجة التي لا يتطلبها تصميم الاختبار التقليدي.
- منحنى التعلم طويل، وعادةً ما يكلف المشروع الأول أكثر مما يوفره.
- قد يكون النموذج نفسه صعب الفهم والمراجعة، خاصة عندما يكبر.
- النموذج الذي ينحرف عن المواصفات ينتج عنه اختبارات خاطئة وواثقة.
- طبقة المحول التي تحول مادة ABStracيجب كتابة الخطوات التي تتحول إلى إجراءات حقيقية وصيانتها بشكل منفصل.
- يزداد حجم النموذج بسرعة، لذا يمكن لنموذج الحالة غير المقيد أن ينتج مسارات أكثر مما يمكن لأي فريق تنفيذه.
لا يُعد أي من هذه الأسباب سببًا لتجنب هذه التقنية، ولكنها مجتمعة تُفسر لماذا يتم عادةً تطبيق تقنية MBT على نظام فرعي مستقر واحد أولاً بدلاً من تطبيقها على النظام بأكمله دورة حياة اختبار البرمجيات ذات مرة.
مزايا الاختبار القائم على النماذج
في مقابل تلك التكاليف، تتمثل فوائد تقنية MBT فيما يلي:
- سهولة صيانة حالات الاختبار ومجموعة الاختبارات، لأن النموذج يتم تعديله بدلاً من الاختبارات الفردية.
- انخفاض في التكلفة على مدى عمر مشروع طويل الأمد.
- تحسن تغطية الاختبار، لأن المولد يستكشف المسارات التي قد يتجاهلها الشخص.
- يمكن تشغيل مجموعات البرامج المختلفة التي تم إنشاؤها على أي عدد من الأجهزة بالتوازي.
- الكشف المبكر عن العيوب، لأن الغموض يظهر أثناء بناء النموذج، قبل تنفيذ أي كود.
- زيادة في عدد العيوب التي تم اكتشافها لنفس جهد الاختبار.
- توفير الوقت في تصميم الاختبار بمجرد وجود النموذج والمحول.
- تحسن الرضا الوظيفي للمختبرين، حيث يتحول الجهد من كتابة النصوص المتكررة إلى النمذجة والتحليل.
يقوم المختبرون ببناء نماذج ذهنية أثناء عملهم، ويقوم اختبار النماذج الذهنية ببساطة بنقل هذه النماذج إلى الورق حيث يمكن مراجعتها وإصدار نسخ منها وإعادة استخدامها. ويُبين في هذا السياق كيف تتناسب هذه التقنية مع الأساليب الأخرى المتاحة. أنواع اختبار البرمجيات.





