فحص برمجي

يشير مصطلح الفحص في هندسة البرمجيات إلى [مراجعة زميل] أي منتج عمل من جانب أفراد مدربين يبحثون عن العيوب باستخدام عملية محددة جيدًا. كما يمكن الإشارة إلى عملية الفحص بوصفها [فحص فاغان] بحسب مايكل فاغان، منشئ العملية الشهيرة لفحص البرمجيات.

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

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

ونورد فيما يلي مراحل عملية الفحص: التخطيط، الاجتماع لإلقاء نظرة شامل، الإعداد، اجتماع الفحص، إعادة العمل والمتابعة. ينبغي تكرار مراحل الإعداد واجتماع الفحص وإعادة العمل.

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

يقوم الوسيط بإنهاء العملية عندما تفي ببعض معايير الإنهاء المحددة مسبقًا.

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

أنواع الفحص ذات الصلة

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

مراجعات الزملاء 
تعتبر [مراجعات الزملاء] أفضل ممارسة في هذا المجال لاكتشاف عيوب البرمجيات وتعلم كيفية تدوين عناصر البرمجيات. تتألف مراجعات الزملاء من [عمليات الفحص العابر للبرمجيات] وعمليات فحص البرمجيات وتعد مكملة للأنشطة الهندسية الخاصة بإنتاج البرمجيات. وتيسّر مجموعة من المعرفة والمهارات والسلوكيات المتناسقة أفضل ممارسة محتملة لمراجعات الزملاء. وتتضمن عناصر مراجعات الزملاء عملية المراجعة الهيكلية ومعيار قوائم مراجعة المنتجات المتميزة والقواعد المحددة للمشاركين والنماذج والتقارير.

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

انظر أيضا 

 هندسة البرمجيات
 نموذج نضج القدرة (CMM)

مراجع

وصلات خارجية 
 Review and inspection practices
 Article Software Inspections by Ron Radice
 Comparison of different inspection and review techniques

هندسة البرمجيات