الاختبار القائم على النموذج

إعداد اختبار عام قائم على النموذج

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

عادةً ما يكون النموذج الذي يصف نظامًا قيد الاختبار (SUT) عرضًا تجريديًا جزئيًا للسلوك المطلوب لهذا النظام. وتُعدّ حالات الاختبار المُستمدة من هذا النموذج اختبارات وظيفية على نفس مستوى التجريد الخاص بالنموذج. تُعرف هذه الحالات مجتمعةً باسم مجموعة اختبار تجريدية . لا يمكن تنفيذ مجموعة الاختبار التجريدية مباشرةً على النظام قيد الاختبار لأنها تقع على مستوى تجريد خاطئ. لذا، يجب اشتقاق مجموعة اختبار قابلة للتنفيذ من مجموعة اختبار تجريدية مُناظرة. تستطيع مجموعة الاختبار القابلة للتنفيذ التواصل مباشرةً مع النظام قيد الاختبار. ويتحقق ذلك من خلال ربط حالات الاختبار التجريدية بحالات اختبار ملموسة مناسبة للتنفيذ. في بعض بيئات الاختبار القائمة على النماذج، تحتوي النماذج على معلومات كافية لإنشاء مجموعات اختبار قابلة للتنفيذ مباشرةً. وفي بيئات أخرى، يجب ربط عناصر مجموعة الاختبار التجريدية بعبارات أو استدعاءات دوال مُحددة في البرنامج لإنشاء مجموعة اختبار ملموسة. يُطلق على هذا حل "مشكلة الربط". [ 1 ] في حالة الاختبار عبر الإنترنت (انظر أدناه)، توجد مجموعات الاختبار التجريدية نظريًا فقط، وليست موجودة كعناصر ملموسة.

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

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

نماذج

في هندسة البرمجيات الموجهة بالنماذج، وخاصة في هندسة البرمجيات الموجهة بالنماذج ، تُبنى النماذج قبل أو بالتوازي مع الأنظمة المقابلة. كما يمكن بناء النماذج من أنظمة مكتملة. تشمل لغات النمذجة الشائعة لتوليد الاختبارات UML و SysML ولغات البرمجة الشائعة ورموز الآلة المحدودة والصيغ الرياضية مثل Z و B ( Event-B ) و Alloy و Rocq .

نشر الاختبارات القائمة على النماذج

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

توجد طرق معروفة مختلفة لنشر الاختبارات القائمة على النماذج، والتي تشمل الاختبار عبر الإنترنت ، وإنشاء الاختبارات القابلة للتنفيذ دون اتصال بالإنترنت ، وإنشاء الاختبارات القابلة للنشر يدويًا دون اتصال بالإنترنت . [ 2 ]

يعني الاختبار عبر الإنترنت أن أداة الاختبار القائمة على النموذج تتصل مباشرة بنظام الاختبار وتختبره بشكل ديناميكي.

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

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

اشتقاق الاختبارات خوارزميًا

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

من آلات الحالة المحدودة

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

اعتمادًا على مدى تعقيد النظام قيد الاختبار والنموذج المقابل، قد يكون عدد المسارات كبيرًا جدًا نظرًا للعدد الهائل من التكوينات الممكنة للنظام. ولإيجاد حالات اختبار تغطي عددًا مناسبًا ومحدودًا من المسارات، يلزم وجود معايير اختبار لتوجيه عملية الاختيار. وقد اقترح أوفوت وعبد الرزاق هذه التقنية لأول مرة في الورقة البحثية التي بدأت اختبار النماذج. [ 3 ] وقد طُوّرت تقنيات متعددة لتوليد حالات الاختبار، وقد استعرضها راشبي. [ 4 ] وتُوصَف معايير الاختبار باستخدام الرسوم البيانية العامة في كتاب الاختبار. [ 1 ]

إثبات النظريات

استُخدمت تقنية إثبات النظريات في الأصل لإثبات الصيغ المنطقية آليًا. في مناهج الاختبار القائمة على النماذج، يُنمذج النظام بمجموعة من المسندات التي تحدد سلوكه. [ 5 ] لاستخلاص حالات الاختبار، يُقسّم النموذج إلى فئات تكافؤ بناءً على التفسير الصحيح لمجموعة المسندات التي تصف النظام قيد الاختبار. تصف كل فئة سلوكًا معينًا للنظام، وبالتالي يمكن استخدامها كحالة اختبار. أبسط أنواع التقسيم هو استخدام الصيغة الطبيعية الانفصالية، حيث تُحوّل التعبيرات المنطقية التي تصف سلوك النظام إلى الصيغة الطبيعية الانفصالية .

برمجة المنطق المقيد والتنفيذ الرمزي

يمكن استخدام البرمجة المقيدة لاختيار حالات اختبار تُحقق قيودًا مُحددة عن طريق حل مجموعة من القيود على مجموعة من المتغيرات. ويتم وصف النظام من خلال هذه القيود. [ 6 ] يُمكن حل مجموعة القيود باستخدام مُحللات منطقية (مثل مُحللات SAT القائمة على مسألة الإرضاء المنطقي ) أو عن طريق التحليل العددي ، مثل طريقة الحذف الغاوسي . يُمكن استخدام الحل الناتج عن حل مجموعة القيود كحالة اختبار للنظام المُقابل.

يمكن دمج البرمجة المقيدة مع التنفيذ الرمزي. في هذا النهج، يتم تنفيذ نموذج النظام بشكل رمزي، أي جمع قيود البيانات عبر مسارات تحكم مختلفة، ثم استخدام طريقة البرمجة المقيدة لحل القيود وإنتاج حالات الاختبار. [ 7 ]

التحقق من النموذج

يمكن استخدام أدوات التحقق من النماذج أيضًا لإنشاء حالات الاختبار. [ 8 ] طُوِّر التحقق من النماذج في الأصل كتقنية للتحقق من صحة خاصية معينة في نموذج ما. عند استخدامها للاختبار، يُزوَّد مدقق النماذج بنموذج للنظام قيد الاختبار، والخاصية المراد اختبارها. ضمن عملية التحقق، إذا كانت هذه الخاصية صحيحة في النموذج، يكتشف مدقق النماذج الأدلة والأمثلة المضادة. الدليل هو مسار تتحقق فيه الخاصية، بينما المثال المضاد هو مسار في تنفيذ النموذج تُنتهك فيه الخاصية. ويمكن استخدام هذه المسارات مرة أخرى كحالات اختبار.

توليد حالات الاختبار باستخدام نموذج اختبار سلسلة ماركوف

تُعدّ سلاسل ماركوف طريقة فعّالة للتعامل مع اختبار النماذج. يمكن فهم نماذج الاختبار المُنفّذة باستخدام سلاسل ماركوف على أنها نموذج استخدام، ويُشار إليها باسم اختبار النماذج الإحصائية/الاستخدامية. تتكون نماذج الاستخدام، وبالتالي سلاسل ماركوف، بشكل أساسي من عنصرين  : آلة الحالة المحدودة (FSM) التي تُمثّل جميع سيناريوهات الاستخدام المُحتملة للنظام المُختَبَر، وملفات تعريف التشغيل (OP) التي تُؤهّل آلة الحالة المحدودة لتمثيل كيفية استخدام النظام إحصائيًا. تُساعد الأولى (آلة الحالة المحدودة) في معرفة ما يُمكن اختباره أو ما تم اختباره، بينما تُساعد الثانية (ملفات تعريف التشغيل) في استخلاص حالات اختبار تشغيلية. ينطلق اختبار النماذج الإحصائية/الاستخدامية من حقيقة أنه من غير الممكن اختبار النظام بشكل شامل، وأن الفشل قد يظهر بمعدل منخفض جدًا. [ 9 ] يُقدّم هذا النهج طريقة عملية لاستخلاص حالات اختبار إحصائيًا تُركّز على تحسين موثوقية النظام قيد الاختبار. وقد تم توسيع نطاق اختبار النماذج الإحصائية/الاستخدامية مؤخرًا ليشمل أنظمة البرمجيات المُدمجة. [ 10 ] [ 11 ]

انظر أيضاً

مراجع

  1. 1 2 بول أمان وجيف أوفوت. مقدمة في اختبار البرمجيات، الطبعة الثانية. مطبعة جامعة كامبريدج، 2016.
  2. الاختبار العملي القائم على النماذج: منهج الأدوات ( مؤرشف في 25 أغسطس 2012 على موقع Wayback Machine) ، تأليف مارك أوتينغ وبرونو ليغارد، رقم ISBN 978-0-12-372501-1مورغان كوفمان 2007
  3. جيف أوفوت وأينور عبد الرزاق. توليد الاختبارات من مواصفات UML. المؤتمر الدولي الثاني حول لغة النمذجة الموحدة (UML '99)، الصفحات 416-429، فورت كولينز، كولورادو، أكتوبر 1999.
  4. جون راشبي. توليد الاختبارات الآلي والبرمجيات الموثقة. البرمجيات الموثقة: النظريات والأدوات والتجارب: المؤتمر الأول للجنة الفنية 2/مجموعة العمل 2.3 التابعة للاتحاد الدولي لمعالجة المعلومات، VSTTE 2005، زيورخ، سويسرا، 10-13 أكتوبر. الصفحات 161-172، دار نشر سبرينغر.
  5. بروكر، آخيم د.؛ وولف، بوركهارت (2012). "حول الاختبار القائم على مُثبت النظريات" . الجوانب الرسمية للحوسبة . 25 (5): 683-721 . CiteSeerX 10.1.1.208.3135 . doi : 10.1007/s00165-012-0222-y . S2CID 5774837 .  
  6. جيفرسون أوفوت. توليد بيانات الاختبار التلقائي القائم على القيود. معاملات IEEE في هندسة البرمجيات، 17: 900-910، 1991
  7. أنتي هويما. تطبيق Conformiq Qtronic. اختبار البرمجيات وأنظمة الاتصال، سلسلة محاضرات في علوم الحاسوب، 2007، المجلد 4581/2007، 1-12، DOI: 10.1007/978-3-540-73066-8_1
  8. غوردون فريزر، فرانز ووتاوا، وبول إي. أمان. الاختبار باستخدام مدققي النماذج: دراسة استقصائية. اختبار البرمجيات، والتحقق، والموثوقية، 19(3):215–261، 2009. الرابط:
  9. ^ هيلين لو جوين. التحقق من صحة البرنامج من خلال اختبار إحصائية الاستخدام : نمذجة القرار الصادر عن المكتبة، 2005. URL: ftp://ftp.irisa.fr/techreports/theses/2005/leguen.pdf
  10. بوهر، فرانك (2011). "الاختبار الإحصائي القائم على النموذج للأنظمة المدمجة". ورش عمل المؤتمر الدولي الرابع لمعهد مهندسي الكهرباء والإلكترونيات حول اختبار البرمجيات والتحقق منها والتحقق من صحتها ، 2011. الصفحات 18-25 . doi : 10.1109/ICSTW.2011.11 . ISBN  978-1-4577-0019-4. S2CID 9582606 . 
  11. بوهر، فرانك (2012). الاختبار الإحصائي القائم على النموذج لبرمجيات الوقت الحقيقي المضمنة ذات الإشارات المستمرة والمتقطعة في بيئة متزامنة: نهج شبكة الاستخدام . دار نشر دكتور هت. ISBN 978-3843903486.

للمزيد من القراءة