اختبار البرمجيات
اختبار البرمجيات هو التنفيذ الديناميكي لبرنامج باستخدام مدخلات مختارة للكشف عن العيوب واكتساب الثقة بأن البرنامج يتصرف كما هو متوقع.
Definition
اختبار البرمجيات هو نشاط تصميم وتنفيذ حالات الاختبار — المدخلات المقترنة بالنتائج المتوقعة — للكشف عن التناقضات بين السلوك الفعلي والمطلوب وتقدير موثوقية البرمجيات.
Scope
يغطي هذا الموضوع مستويات الاختبار (الوحدة، التكامل، النظام، القبول)؛ وتقنيات الصندوق الأسود مثل تقسيم التكافؤ، وتحليل القيمة الحدية، والاختبار التوافقي؛ وتقنيات الصندوق الأبيض المدفوعة بمعايير تغطية الكود؛ واختبار الانحدار، والأداء، والاستكشافي؛ وأتمتة الاختبار؛ ونظرية كفاية الاختبار وتغطيته.
Core questions
- كيف يتم اختيار حالات الاختبار الفعالة من مساحة مدخلات كبيرة بشكل لا يمكن التعامل معه؟
- ما هي معايير التغطية التي تقيس كفاية مجموعة الاختبار؟
- كيف تكمل مستويات الاختبار من الوحدة إلى القبول بعضها البعض؟
- كيف يمكن أتمتة الاختبار ودمجه في مسار التسليم؟
Key theories
- تصميم اختبار الصندوق الأسود والصندوق الأبيض
- تستمد تقنيات الصندوق الأسود الاختبارات من المواصفات من خلال التحليل التقسيمي والحدودي، بينما تستمد تقنيات الصندوق الأبيض الاختبارات من بنية الكود مسترشدة بمعايير التغطية؛ وهما متكاملان.
- معايير التغطية وكفاية الاختبار
- تعطي معايير الكفاية مثل تغطية العبارات، والفروع، والشروط، والمعايير القائمة على النموذج عبر رسوم بيانية تدفق التحكم والبيانات، أهدافًا قابلة للقياس لمدى شمولية مجموعة الاختبار في فحص البرنامج.
Clinical relevance
يُعد الاختبار الوسيلة الأكثر شيوعًا لضمان سلوك البرمجيات بشكل صحيح قبل الإصدار؛ وتساعد الاختبارات الآلية المصممة جيدًا في اكتشاف الانحدارات مبكرًا، وتدعم إعادة الهيكلة والتسليم المستمر، وتُعد أساسية للبرمجيات الموثوقة.
Evidence & guidelines
توفر ISO/IEC/IEEE 29119 معايير دولية لعمليات اختبار البرمجيات، والتوثيق، والتقنيات، ويقدم مجال المعرفة SWEBOK لاختبار البرمجيات نظرة عامة متفق عليها.
History
تطور الاختبار من تصحيح الأخطاء المخصص إلى تخصص بمعالجة مايرز المنهجية في عام 1979؛ وتطورت نظرية التغطية، والاختبار القائم على النموذج، وأتمتة الاختبار خلال العقود التالية، وجعل التطوير القائم على الاختبار والتكامل المستمر الاختبار الآلي ممارسة أساسية رشيقة.
Debates
- كم من الاختبار الآلي يستحق العناء
- يُناقش التوازن الصحيح بين اختبارات الوحدة، والتكامل، والاختبارات الآلية الشاملة؛ يفضل هرم الاختبار العديد من اختبارات الوحدة السريعة على الاختبارات الشاملة البطيئة، لكن النقاد يشيرون إلى أن هذا التوازن يعتمد على نوع النظام والمخاطر.
Key figures
- Glenford Myers
- Paul Ammann
- Jeff Offutt
- Boris Beizer
Related topics
Seminal works
- myers2011
- ammann2016
- swebok2014
Frequently asked questions
- لماذا لا يمكننا اختبار كل مدخل ممكن؟
- مساحة المدخلات المحتملة ومسارات التنفيذ هائلة أو لا نهائية لمعظم البرامج، لذا فإن الاختبار الشامل غير ممكن؛ وبدلاً من ذلك، يختار الاختبار حالات ممثلة وحدودية باستخدام تقنيات منهجية لزيادة اكتشاف العيوب لكل اختبار.
- ما الفرق بين مستويات الاختبار؟
- يختبر اختبار الوحدة المكونات الفردية بمعزل عن غيرها، ويتحقق اختبار التكامل من تفاعلاتها، ويقيم اختبار النظام النظام بأكمله مقابل متطلباته، ويؤكد اختبار القبول أنه يلبي احتياجات المستخدم؛ يستهدف كل مستوى أنواعًا مختلفة من العيوب.