فحص البرمجياتفحص البرمجيات
اختبار البرمجيات أو فحص البرمجيات هي عملية استقصاء للبرمجيات بشكل تجريبي بهدف تقديم معلومات تتعلق بالجودة لأصحاب المصلحة عن المنتج أو الخدمة. من أهداف اختبار البرمجيات التحقق من أنها تلائم احتياجات المستخدمين أصحاب المصلحة من استخدام البرمجية على اختلاف أنماطهم وأنواعهم، وأنها خالية من الأخطاء. إلا أن عملية اختبار البرمجيات لا يمكن أن تضمن خلو البرنامج أو النظام من الأخطاء نهائياً. جودة البرمجياتالجودة هي ليست بالأمر المطلق، بل تختلف من شخص لآخر بحسب احتياجاته. بأخذ هذه العبارة الشهيرة في علم الجودة، يصبح من المستحيل تحقيق عملية فحص للبرمجيات أن تقوم بالتحقق من صحة أي برنامج حاسوبي، حيث تتعرض عملية الاختبار للنقد بسبب عدم التحقيق الكامل للمواصفات الموضوعة للبرنامج من قبل وجهة نظر المستخدم الذي يقوم بالاختبار. وعليه فإن جودة البرمجيات يجب أن تعتمد على مقاييس أكثر موضوعية مثل تأكيد جودة البرمجيات وهي العملية التي تضمن الحصول على برنامج جيد باتباع خطوات واضحة ودقيقة أثناء عملية تصنيعه.[1] الحاجة لعملية فحص البرمجياتمع ازدياد انتشار التكنولوجيا يوما بعد يوم ودخول البرمجيات في أغلب نواحي الحياة، أصبح من الضروري جدا القيام بفحص تلك البرمجيات قبل طرحها للاستخدام من قبل المستخدمين المعنيين، وذلك لأن البرمجية التي تعمل بشكل سيء أو غير مرغوب فيه أو بطريقة خاطئة قد تؤدي إلى عدة مشاكل منها:
خطوات عملية فحص البرمجيةتمر عملية فحص البرمجية بعدد من الخطوات المنهجية التي تهدف إلى تحقيق أفضل النتائج بغض النظر عن منظومة البرمجة المتبعة لتطوير تلك البرمجية سواءً كانت المنظومة التقليدية أو البرمجة منظومة الأجايل (البرمجة المرنة)، وتلك الخطوات تتلخص في:
التخطيط والمراقبة والتحكمتعتبر عملية التخطيط للاختبار العملية الأساسية لوضع القواعد التي ستقوم عليها عملية الاختبار على المدى القريب والبعيد، حيث يتم ضمن هذه العملية تقدير الجداول الزمنية لنشاطات عملية الاختبار جميعها والموارد البشرية المشاركة وأنواع الاختبارات التي ستنفذ ومستوياتها وأنواع المهارات والتخصصات المطلوبة خلال عملية الاختبار وغيرها من الأمور. كما ويتم أثناء عملية التخطيط وضع معيار إنهاءالفحص لتتم عملية تقييم سير العملية نسبة لهذا المعيار ليساعد في الحكم على جهوزية عملية الاختبار واكتمالها أو نقصها. أما عملية المراقبة فتقوم على جمع البيانات عن معايير معينة خلال عملية الاختبار ليتم الحكم من خلالها على عدة أمور والقيام باتخاذ إجراءات معينة إذا استدعى الأمر ذلك وهو ما يسمى «التحكم». التحليليتم ضمن هذه الخطوة تحليل متطلبات البرمجية تبعا للاحتياجات والوظائف المطلوبة منها. التصميميتم ضمن هذه الخطوة تصميم حالات الاختبار التي سيتم استخدامها لفحص البرمجية، حيث تستخدم عدة تقنيات لهذا الغرض. التحضيريتم ضمن هذه الخطوة تحضير ما يلزم للبدء بتنفيذ عملية الفحص من:
وغيرها من الأمور المطلوبة للبدء بعملية الفحص. التنفيذيتم ضمن هذه الخطوة تنفيذ الاختبارات المحدد ترتيبها في الخطوة السابقة على بيئة الفحص - تشغيل الاختبارات تلقائيا. تقييم معيار الإنهاء وإصدار التقاريريتم ضمن هذه المرحلة مقارنة النتائج التي تم التوصل إليها مع معيار القبول أو الإنهاء التي تم الاتفاق عليها في مرحلة التخطيط للفحص، وإصدار التقارير المتعلقة باتخاذ القرارات المتعددة للمعنين بالبرمجية تحت الفحص. نشاطات إنهاء الفحصيتم ضمن هذه المرحلة القيام بعدة نشاطات يكون الغرض منها الاحتفاظ بالوثائق والبيانات الناتجة من عملية الفحص ضمن المكان المخصص لذلك، حيث يتم الاستفادة من هذه الوثائق والبيانات في مشاريع قادمة. علاوة على ذلك يتم ضمن هذه المرحلة إغلاق جميع المتعلقات المفتوحة واتخاذ الإجراءات فيما يخصها. طرق الفحصطريقة الصندوق الأسودتعامل هذه الطريقة البرنامج على أنه صندوق أسود بدون فهم سلوكه الداخلي. وتهدف لفحص مزايا البرنامج وقدرته على أداء الوظيفة المطلوبة منه. طريقة الصندوق الأبيض أو الصندوق الشفافالصندوق الأبيض على عكس طريقة الصندوق الأسود، في هذه الطريقة يتمكن القائم بعملية الفحص من الولوج إلى شيفرة البرنامج والإطلاع على مكوناته والخوارزميات المستخدمة فيه، ويعتمد فاحص النظام (المختبِر) في هذه الحالة على هذه المعلومات عن التركيبة الداخلية للنظام أو البرمجية ليفصل خطة اختباره بما يتوافق مع ذلك، وبشكل يستفيد من هذه التفاصيل. التقييم الكامل للشيفرةمن الممكن لطريقة الصندوق الأبيض ان تستخدم من أجل فحص واختبار وتقييم وتحسين شيفرة البرنامج على أرض الواقع من قبل مبرمجيه الأصليين. طريقة الصندوق الرماديبدأ استخدام مصطلح الصندوق الرمادي في السنوات الأخيرة، حيث تشمل هذه الطريقة إمكانية الوصول إلى الشيفرة الداخلية للبرنامج، بينما تكون عملية فحص ميزات البرنامج من قبل المستخدم الفعلي. مستويات الفحصانظر أيضاالمراجع
في كومنز صور وملفات عن Software testing. |