# فحص البرمجيات

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

## جودة البرمجيات

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

## الحاجة لعملية فحص البرمجيات

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

## خطوات عملية فحص البرمجية

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

### التخطيط والمراقبة والتحكم

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

### التحليل

يتم ضمن هذه الخطوة تحليل متطلبات البرمجية تبعا للاحتياجات والوظائف المطلوبة منها.

### التصميم

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

### التحضير

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

### التنفيذ

يتم ضمن هذه الخطوة تنفيذ الاختبارات المحدد ترتيبها في الخطوة السابقة على بيئة الفحص - تشغيل الاختبارات تلقائيا.

### تقييم معيار الإنهاء وإصدار التقارير

يتم ضمن هذه المرحلة مقارنة النتائج التي تم التوصل إليها مع معيار القبول أو الإنهاء التي تم الاتفاق عليها في مرحلة التخطيط للفحص، وإصدار التقارير المتعلقة باتخاذ القرارات المتعددة للمعنين بالبرمجية تحت الفحص.

### نشاطات إنهاء الفحص
## طرق الفحص
### طريقة الصندوق الأسود

تعامل هذه الطريقة البرنامج على أنه صندوق أسود بدون فهم سلوكه الداخلي. وتهدف لفحص مزايا البرنامج وقدرته على أداء الوظيفة المطلوبة منه.

### طريقة الصندوق الأبيض أو الصندوق الشفاف

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

### التقييم الكامل للشيفرة

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

### طريقة الصندوق الرمادي

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

## مستويات الفحص

* اختبار الوحدة
* اختبار التكامل
* اختبار النظام
* اختبار قبول

## انظر أيضا

* اختبار قابلية الاستخدام