التحقق من البرامج

التحقق من البرمجيات هو أحد فروع هندسة البرمجيات ولغات البرمجة ونظرية الحوسبة ، وهدفه ضمان أن البرمجيات تلبي المتطلبات المتوقعة.

نطاق واسع وتصنيف

إن التعريف الواسع للتحقق يجعله مرتبطًا باختبار البرمجيات . وفي هذه الحالة، يوجد منهجان أساسيان للتحقق:

في إطار نظام تصنيف الحوسبة ACM ، تظهر مواضيع التحقق من البرمجيات تحت "البرمجيات وهندستها"، ضمن "إنشاء البرمجيات"، بينما يظهر التحقق من البرامج أيضًا تحت نظرية الحوسبة تحت الدلالات والاستدلال، والاستدلال البرمجي.

التحقق الديناميكي (الاختبار، التجريب)

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

  • الاختبار المصغر : اختبار يتحقق من دالة واحدة أو فئة واحدة ( اختبار الوحدة )
  • الاختبار على نطاق واسع : اختبار يتحقق من مجموعة من الفئات، مثل
    • اختبار الوحدة (وحدة واحدة)
    • اختبار التكامل (أكثر من وحدة نمطية واحدة)
    • اختبار النظام (النظام بأكمله)
  • اختبار القبول : اختبار رسمي مصمم للتحقق من معايير قبول برنامج ما

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

التحقق الثابت (التحليل)

التحقق الثابت هو عملية التأكد من أن البرنامج يفي بالمتطلبات من خلال فحص الكود قبل تشغيله. على سبيل المثال:

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

نطاق ضيق

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

مقارنة مع التحقق

كثيراً ما يُخلط بين التحقق من البرمجيات والتحقق من صحتها. الفرق بين التحقق والتحقق من الصحة :

  • يطرح التحقق من البرمجيات السؤال التالي: "هل نقوم ببناء المنتج بشكل صحيح؟"؛ أي هل يتوافق البرنامج مع مواصفاته؟ (كما يتوافق المنزل مع مخططاته).
  • يتساءل التحقق من صحة البرمجيات : "هل نقوم ببناء المنتج الصحيح؟"؛ أي، هل يقوم البرنامج بما يحتاجه المستخدم فعلاً؟ (كما يتوافق المنزل مع ما يحتاجه ويريده المالك).

انظر أيضاً

مراجع