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

ما هو اختبار المسار في اختبار البرمجيات؟
اختبار المسار هو طريقة اختبار هيكلية تتضمن استخدام الكود المصدري للبرنامج للعثور على كل مسار قابل للتنفيذ ممكن. فهو يساعد على تحديد كافة الأخطاء الموجودة داخل جزء من التعليمات البرمجية. تم تصميم هذه الطريقة لتنفيذ المسار بأكمله أو المسار المحدد من خلال برنامج كمبيوتر.
أي برنامج معقد يحتوي على مسارات تنفيذية متعددة. اختبار كل مسار منها أمر صعب ويستغرق وقتًا طويلاً، ومعظمها متداخل. يقلل اختبار المسار الأساسي من هذا التكرار بتحديد أصغر مجموعة من المسارات التي تضمن تنفيذ كل عبارة وكل فرع مرة واحدة على الأقل.
اختبار المسار الأساسي في هندسة البرمجيات
اختبار المسار الأساسي في هندسة البرمجيات هو أبيض Box الاختبار الطريقة التي يتم من خلالها تحديد حالات الاختبار بناءً على التدفقات أو المسارات المنطقية التي يمكن اتخاذها من خلال البرنامج. الهدف من اختبار المسار الأساسي هو تحديد عدد المسارات المستقلة، بحيث يمكن تحديد عدد حالات الاختبار المطلوبة بشكل صريح لزيادة تغطية الاختبار إلى أقصى حد.
In هندسة البرمجياتيتضمن اختبار المسار الأساسي تنفيذ جميع الكتل الممكنة في البرنامج وتحقيق أقصى تغطية للمسار بأقل عدد من حالات الاختبار. إنها طريقة هجينة لاختبار الفروع وطرق اختبار المسار.
مثال بسيط يجعل الفكرة ملموسة.
يحتوي مخطط التدفق أعلاه على عبارات شرطية، لذا يمكن للتحكم الوصول إلى المخرج عبر أكثر من مسار. يلزم وجود ثلاثة مسارات مستقلة لتغطية هذا المخرج:
- مسار شنومك: 1,2,3,5,6، 7
- مسار شنومك: 1,2,4,5,6، 7
- مسار شنومك: 1، 6، 7
كيفية رسم مخطط تدفق التحكم
تعتمد كل خطوة من خطوات اختبار المسار الأساسي على مخطط تدفق التحكم، لذلك يجدر بنا أن نكون دقيقين بشأن كيفية بنائه.
- العقدة: سلسلة من التعليمات التي تُنفذ دائمًا معًا، مرسومة على شكل دائرة. سلسلة من التعليمات بدون تفرعات تنهار في عقدة واحدة.
- إيدج: انتقال التحكم من عقدة إلى أخرى، ويُرسم على شكل سهم. الحواف هي الطريقة الوحيدة لانتقال التحكم.
- عقدة المسند: العقدة التي تحتوي على شرط، مع وجود حافتين أو أكثر تخرج منها. هذه هي التي تحدد قيمة التعقيد.
- المنطقة: منطقة محددة بالحواف والعقد. عدد المناطق زائد واحد يساوي أيضًا التعقيد الحلقي.
لنفترض وجود وحدة قصيرة تتضمن قرارين:
if (a > b) { // node 1, predicate max = a; // node 2 } else { max = b; // node 3 } if (max > limit) { // node 4, predicate alert(); // node 5 } return max; // node 6
يحتوي الرسم البياني على 6 عقد و6 حواف، مما يعطي V(G) = 6 – 6 + 2 = 2 وفقًا لصيغة الحواف. يُعطي عدد المسندات نفس الإجابة بسرعة أكبر: قراران زائد واحد يساوي 3 مسارات مستقلة عبر الفرعين معًا. استخدم الصيغة التي يمكنك حسابها بدقة، وتحقق من صحتها بالصيغة الأخرى.
قاعدتان تمنعان معظم الأخطاء. أولاً، حالة مركبة مثل إذا كان (س > 0 و ص > 0) يُحتسب هذا كعقدتين شرطيتين، وليس واحدة، لأن الدائرة المختصرة تُنشئ قرارًا ثانيًا. ثانيًا، تُساهم الحلقة بعقدة شرطية واحدة بغض النظر عن عدد مرات تكرارها.
خطوات اختبار المسار الأساسي
تتضمن الخطوات الأساسية المتبعة في اختبار المسار الأساسي ما يلي:
- رسم رسم بياني للتحكم (لتحديد مسارات البرنامج المختلفة)
- احسب الشحن التعقيد الحلقي (مقاييس لتحديد عدد المسارات المستقلة)
- العثور على مجموعة أساسية من المسارات
- توليد حالات تجريبية لممارسة كل مسار
مزايا وقيود اختبار المسار الأساسي
مزايا اختبار المسار الأساسي
- فهو يساعد على تقليل الاختبارات الزائدة عن الحاجة
- يركز الاهتمام على منطق البرنامج
- يستبدل هذا الأسلوب اختيار حالات الاختبار العشوائي بأساس تحليلي.
- حالات الاختبار التي تم تعيين أساس التمرين عليها ستنفذ كل عبارة في البرنامج مرة واحدة على الأقل
قيود اختبار المسار الأساسي
- لا يمكنه العثور على التعليمات البرمجية المفقودة. لا يوجد مسار للمتطلب الذي لم يُنفذ، وبالتالي لن يتم إنشاء اختبار له. يجب أن يقترن اختبار المسار الأساسي بالاختبار القائم على المتطلبات.
- يزداد عدد المسارات بسرعة. تؤدي الحلقات المتداخلة والشروط المركبة إلى زيادة التعقيد بسرعة، ويصبح من غير العملي تغطية وحدة نمطية ذات V(G) أعلى من 20 بهذه الطريقة.
- التغطية لا تعني الصحة. إن تنفيذ مسار معين يثبت أن الكود يعمل، وليس أنه ينتج الإجابة الصحيحة. لا يزال كل اختبار بحاجة إلى تأكيد ذي معنى.
- المسارات المعتمدة على البيانات. بعض المسارات لا يمكن الوصول إليها إلا من خلال مجموعات إدخال محددة قد يكون من الصعب أو المستحيل إنشاؤها.

