قابلية اختبار البرمجيات
قابلية اختبار البرمجيات هي مدى دعم عنصر برمجي (مثل نظام برمجي، أو وحدة، أو متطلبات، أو وثيقة تصميم) للاختبار في سياق اختبار محدد. إذا كانت قابلية اختبار العنصر عالية، يصبح اكتشاف الأخطاء في النظام (إن وجدت) أسهل عن طريق الاختبار.
بصورة رسمية، بعض الأنظمة قابلة للاختبار، وبعضها الآخر غير قابل للاختبار. ويمكن تحقيق هذا التصنيف من خلال ملاحظة أنه لكي يكون النظام قابلاً للاختبار، بالنسبة لوظيفة معينة فيه "S" والتي تأخذ المدخل "I"، يجب أن توجد دالة منطقية قابلة للحساب "V" بحيثتكون العبارة صحيحة عندما ينتج النظام S، عند إدخال المدخل I، مخرجًا صحيحًا، وخاطئة في غير ذلك. تُعرف هذه الدالة "V" بدالة التحقق للنظام عند إدخال المدخل I.
العديد من أنظمة البرمجيات غير قابلة للاختبار، أو يصعب اختبارها فورًا. على سبيل المثال، نظام ReCAPTCHA من جوجل ، الذي لا يحتوي على أي بيانات وصفية عن الصور، لا يُعد نظامًا قابلاً للاختبار. مع ذلك، يمكن اختبار ReCAPTCHA فورًا إذا تم تخزين علامة لكل صورة معروضة في مكان آخر. وبناءً على هذه المعلومات الوصفية، يمكن اختبار النظام.
لذا، يُنظر إلى قابلية الاختبار غالبًا على أنها خاصية خارجية ناتجة عن الترابط بين البرنامج المراد اختباره وأهداف الاختبار، وأساليب الاختبار المستخدمة، وموارد الاختبار (أي سياق الاختبار). ورغم أنه لا يمكن قياس قابلية الاختبار بشكل مباشر (مثل حجم البرنامج)، إلا أنه ينبغي اعتبارها خاصية جوهرية للبرنامج نظرًا لارتباطها الوثيق بخصائص برمجية رئيسية أخرى كالتغليف، والترابط، والتماسك، والتكرار.
يمكن ملاحظة ارتباط "قابلية الاختبار" بالتصميم الجيد من خلال ملاحظة أن الكود الذي يتميز بتماسك ضعيف، وترابط قوي، وتكرار، ونقص في التغليف، يصعب اختباره. [ 1 ]
يؤدي انخفاض مستوى قابلية الاختبار إلى زيادة جهد الاختبار . وفي الحالات القصوى، قد يعيق انعدام قابلية الاختبار اختبار أجزاء من البرنامج أو متطلباته بالكامل .
خلفية
تتضمن قابلية الاختبار، وهي خاصية تنطبق على الفرضيات التجريبية، عنصرين. ويعتمد جهد وفعالية اختبارات البرمجيات على عوامل عديدة، منها:
- خصائص متطلبات البرمجيات
- خصائص البرنامج نفسه (مثل الحجم والتعقيد وقابلية الاختبار)
- خصائص أساليب الاختبار المستخدمة
- خصائص عمليات التطوير والاختبار
- مؤهلات ودوافع الأشخاص المشاركين في عملية الاختبار
قابلية اختبار مكونات البرمجيات
تتحدد قابلية اختبار مكونات البرمجيات (الوحدات النمطية، والفئات) بعوامل مثل:
- إمكانية التحكم: مدى إمكانية التحكم في حالة المكون قيد الاختبار (CUT) كما هو مطلوب للاختبار.
- إمكانية الملاحظة: مدى إمكانية ملاحظة نتائج الاختبارات (الوسيطة والنهائية).
- قابلية العزل: مدى إمكانية اختبار المكون قيد الاختبار (CUT) بشكل منفصل.
- فصل الاهتمامات : مدى امتلاك المكون قيد الاختبار لمسؤولية واحدة ومحددة جيدًا.
- قابلية الفهم: مدى توثيق المكون قيد الاختبار أو مدى وضوحه بذاته.
- إمكانية الأتمتة: مدى إمكانية أتمتة اختبار المكون قيد الاختبار.
- عدم التجانس: الدرجة التي يتطلبها استخدام التقنيات المتنوعة استخدام أساليب وأدوات اختبار متنوعة بالتوازي.
يمكن تحسين قابلية اختبار مكونات البرمجيات من خلال:
- التطوير القائم على الاختبار
- التصميم من أجل قابلية الاختبار (على غرار التصميم من أجل الاختبار في مجال الأجهزة)
قابلية اختبار المتطلبات
يجب أن تستوفي المتطلبات المعايير التالية لكي تكون قابلة للاختبار:
- ثابت
- مكتمل
- لا لبس فيه
- كمي (لا يمكن التحقق من شرط مثل "سرعة الاستجابة" / التحقق منه )
- التحقق/قابل للتحقق عملياً (الاختبار ممكن ليس فقط نظرياً ولكن أيضاً عملياً بموارد محدودة)
باعتبار المتطلبات بديهيات، يمكن معالجة قابلية الاختبار من خلال تأكيد وجود دالة.(برمجيات) بحيث يتم إدخاليُنتج مخرجات، لذلكلذلك، يقوم البرنامج المثالي بإنشاء المجموعة.وهي مجموعة المدخلات والمخرجات، اختصاراً لكلمة "مواصفات".
والآن، خذ مدخلات اختبارية، مما ينتج عنه المخرجات، أي مجموعة الاختباروالآن، السؤال هو ما إذا كان ذلك سيحدث أم لا.أوإذا كان موجودًا في المجموعة، فإن صف الاختبارإذا نجح الاختبار، يفشل النظام في إدخال الاختبار. لذلك، من الأهمية بمكان تحديد ما إذا كان بإمكاننا إنشاء دالة تُترجم فعليًا إلى مفهوم دالة مؤشر المجموعة لمجموعة المواصفات..
بناءً على هذا المفهوم،هي دالة قابلية الاختبار للمواصفاتلا ينبغي مجرد تأكيد وجودها، بل يجب إثباته بدقة. لذلك، من الواضح أنه بدون اتساق جبري، لا يمكن العثور على مثل هذه الدالة، وبالتالي، تتوقف المواصفات عن كونها قابلة للاختبار.
انظر أيضاً
مراجع
- ↑ شالواي ، آلان؛ تروت، جيم (2004). شرح أنماط التصميم، الطبعة الثانية . ص 133. ISBN 978-0321247148.
- روبرت ف. بيندر: اختبار الأنظمة الموجهة للكائنات: النماذج والأنماط والأدوات، رقم ISBN 0-201-80938-9
- ستيفان يونغماير: تحسين قابلية اختبار الأنظمة الموجهة للكائنات ، ISBN 3-89825-781-9
- واندرلي سوزا: أنماط قابلية الاختبار المجردة ، ISSN 1884-0760
- بوريس بيزر:تقنيات اختبار البرمجيات
- اختبار البرمجيات
- جودة البرمجيات
