تجريب البرمجيات
تطوير البرمجيات |
---|
أنشطة محورية |
الأمثلة والنماذج |
المنهجيات والأطر |
تخصصات داعمة |
الممارسات |
الأدوات |
المعايير وهيئات المعرفة |
تجريب البرمجيات Software testing، هي عملية استقصاء للبرمجيات بشكل تجريبي بهدف تقديم معلومات تتعلق بالجودة لأصحاب المصلحة عن المنتج أو الخدمة. من أهداف اختبار البرمجيات التحقق من أنها تلائم احتياجات المستخدمين أصحاب المصلحة من استخدام البرمجية على اختلاف أنماطهم وأنواعهم، وأنها خالية من الأخطاء. إلا أن عملية اختبار البرمجيات لا يمكن أن تضمن خلو البرنامج أو النظام من الأخطاء نهائياً.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
جودة البرمجيات
الجودة هي ليست بالأمر المطلق، بل تختلف من شخص لآخر بحسب احتياجاته. بأخذ هذه العبارة الشهيرة في علم الجودة، يصبح من المستحيل تحقيق عملية فحص للبرمجيات أن تقوم بالتحقق من صحة أي برنامج حاسوبي، حيث تتعرض عملية الاختبار للنقد بسبب عدم التحقيق الكامل للمواصفات الموضوعة للبرنامج من قبل وجهة نظر المستخدم الذي يقوم بالاختبار. وعليه فإن جودة البرمجيات يجب أن تعتمد على مقاييس أكثر موضوعية مثل تأكيد جودة البرمجيات وهي العملية التي تضمن الحصول على برنامج جيد باتباع خطوات واضحة ودقيقة أثناء عملية تصنيعه. [1]
الحاجة لعملية فحص البرمجيات
مع ازدياد انتشار التكنولوجيا يوما بعد يوم ودخول البرمجيات في أغلب نواحي الحياة،أصبح من الضروري جدا القيام بفحص تلك البرمجيات قبل طرحها للاستخدام من قبل المستخدمين المعنيين، وذلك لأن البرمجية التي تعمل بشكل سيء أو غير مرغوب فيه أو بطريقة خاطئة قد تؤدي إلى عدة مشاكل منها:
- الضرر الذي قد يصل إلى الموت خاصة عندما ترتبط البرمجيات بالنواحي الطبية ووسائل التنقل كالسيارات والطائرات.
- خسارة الأموال.
- فقدان السمعة المهنية.
- ضياع الوقت.
خطوات عملية فحص البرمجية
تمر عملية فحص البرمجية بعدد من الخطوات المنهجية التي تهدف إلى تحقيق أفضل النتائج بغض النظر عن منظومة البرمجة المتبعة لتطوير تلك البرمجية سواءً كانت المنظومة التقليدية أو البرمجة منظومة الأجايل (البرمجة المرنة)، وتلك الخطوات تتلخص في:
- التخطيط والمراقبة والتحكم.
- التحليل.
- التصميم.
- التحضير.
- التنفيذ.
- تقييم معيار الإنهاء وإصدار التقارير.
- نشاطات إنهاء الفحص .
التخطيط والمراقبة والتحكم
تعتبر عملية التخطيط للاختبار العملية الأساسية لوضع القواعد التي ستقوم عليها عملية الاختبار على المدى القريب والبعيد، حيث يتم ضمن هذه العملية تقدير الجداول الزمنية لنشاطات عملية الاختبار جميعها والموارد البشرية المشاركة وأنواع الاختبارات التي ستنفذ ومستوياتها وأنواع المهارات والتخصصات المطلوبة خلال عملية الاختبار وغيرها من الأمور.
كما و يتم أثناء عملية التخطيط وضع معيار إنهاءالفحص لتتم عملية تقييم سير العملية نسبة لهذا المعيار ليساعد في الحكم على جهوزية عملية الاختبار و اكتمالها أو نقصها .
أما عملية المراقبة فتقوم على جمع البيانات عن معايير معينة خلال عملية الاختبار ليتم الحكم من خلالها على عدة أمور والقيام باتخاذ إجراءات معينة إذا استدعى الأمر ذلك وهو ما يسمى "التحكم".
التحليل
يتم ضمن هذه الخطوة تحليل متطلبات البرمجية تبعا للاحتياجات والوظائف المطلوبة منها.
التصميم
يتم ضمن هذه الخطوة تصميم حالات الاختبار التي سيتم استخدامها لفحص البرمجية، حيث تستخدم عدة تقنيات لهذا الغرض.
التحضير
يتم ضمن هذه الخطوة تحضير ما يلزم للبدء بتنفيذ عملية الفحص من:
- بيئة الفحص أو البرمجية المطلوبة.
- البيانات اللازمة للفحص.
- الفحوص التي سيتم تشغيلها أوتوماتيكيا والفحوص اليدوية وتعريف أسبقية البدء فيها.
وغيرها من الأمور المطلوبة للبدء بعملية الفحص.
التنفيذ
يتم ضمن هذه الخطوة تنفيذ الاختبارات المحدد ترتيبها في الخطوة السابقة على بيئة الفحص - تشغيل الاختبارات تلقائيا.
تقييم معيار الإنهاء وإصدار التقارير
يتم ضمن هذه المرحلة مقارنة النتائج التي تم التوصل إليها مع معيار القبول أو الإنهاء التي تم الاتفاق عليها في مرحلة التخطيط للفحص، وإصدار التقارير المتعلقة باتخاذ القرارات المتعددة للمعنين بالبرمجية تحت الفحص.
نشاطات إنهاء الفحص
يتم ضمن هذه المرحلة القيام بعدة نشاطات يكون الغرض منها الاحتفاظ بالوثائق والبيانات الناتجة من عملية الفحص ضمن المكان المخصص لذلك، حيث يتم الاستفادة من هذه الوثائق والبيانات في مشاريع قادمة. علاوة على ذلك يتم ضمن هذه المرحلة إغلاق جميع المتعلقات المفتوحة واتخاذ الإجراءات فيما يخصها.
طرق الفحص
طريقة الصندوق الأسود
تعامل هذه الطريقة البرنامج على أنه صندوق أسود بدون فهم سلوكه الداخلي. وتهدف لفحص مزايا البرنامج وقدرته على أداء الوظيفة المطلوبة منه.
طريقة الصندوق الأبيض أو الصندوق الشفاف
الصندوق الأبيض على عكس طريقة الصندوق الأسود، في هذه الطريقة يتمكن القائم بعملية الفحص من الولوج إلى شيفرة البرنامج والإطلاع على مكوناته والخوارزميات المستخدمة فيه، ويعتمد فاحص النظام (المختبِر) في هذه الحالة على هذه المعلومات عن التركيبة الداخلية للنظام أو البرمجية ليفصل خطة اختباره بما يتوافق مع ذلك، وبشكل يستفيد من هذه التفاصيل.
التقييم الكامل للشيفرة
من الممكن لطريقة الصندوق الأبيض ان تستخدم من أجل فحص واختبار وتقييم وتحسين شيفرة البرنامج على أرض الواقع من قبل مبرمجيه الأصليين.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
طريقة الصندوق الرمادي
بدأ استخدام مصطلح الصندوق الرمادي في السنوات الأخيرة، حيث تشمل هذه الطريقة إمكانية الوصول إلى الشيفرة الداخلية للبرنامج، بينما تكون عملية فحص ميزات البرنامج من قبل المستخدم الفعلي.
مستويات التجريب
تجريب الوحدة
تجريب التكامل
تجريب النظام
تجريب القبول التشغيلي
أنواع وتقنيات وتكتيكات التجريب
تجريب التثبيت
تجريب التوافق
تجريب الدخان والعقلانية
تجريب التراجع
تجريب القبول
تجريب ألفا
تجريب ألفا Alpha testing هو محاكاة أو تجريب تشغيلي يقوم به مستخدمون/عملاء محتملون أو فريق تجريب مستقل في موقع المطورين. عادة ما يُجرى تجريب ألفا للبرمجيات الجاهزة كنوع من تجريب القبول الداخلي قبل أن يخضع البرنامج لتجريب بيتا.[2]
تجريب بيتا
يُجرى تجريب بيتا بعد تجريب ألفا ويكن اعتباره أحد أشكال تجريب قبول المستخدم الخارجي. إصدارات البرمجيات، المعروفة بإصدارات بيتا تصدر لجمهور محدود خارج فريق البرمجة المعروف باسم مجربي النسخة التجريبية. يصدر البرنامج لمجموعة أشخاص وبالتالي يمكن إجراء المزيد من التجريب لضمان وجود القليل من الأخطاء في البرنامج. يمكن جعل إصدارات بيتا متاحة للعامة لزيادة مجال التغذية الارتجاعية إلى العدد الأقصى من المستخدمين في المستقبل ولتقديم القيمة في وقت مسبق، لفترة ممتدة أو حتى غير محددة من الزمن (بيتا دائم perpetual beta.[3]
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
التجريب الوظيفي والغير وظيفي
تجريب الاستمرارية
التجريب الهدام
تجريب أداء البرمجيات
تجريب القابلية للاستخدام
تجريب إمكانية الوصول
تجريب الأمن
التدويل والتموضع
تجريب التطوير
تجريب A/B
تجريب التزامن
تجريب المطابقة أو النوع
عملية التجريب
نموذج تطوير الشلال التقليدي
نموذج أگيل أو تطوير إكس پي
دورة التجريب المبسطة
التجريب الآلي
أدوات التجريب
مراقبو البرامج، يُسمح لهم بمراقبة كاملة أو جزئية لكود البرنامج، ويشمل ذلك:
- محاكي مجموعة التعليمات Instruction set simulator، الذي يسمح بمراقبة مستوى التعليمات ومرافق التتبع بالكامل.
- مراقب الأجهزة الافتراضية Hypervisor، يسمح بالتحكم الكامل في السيطرة على تنفيذ كود البرنامج ويشمل:-
- Program animation، يسمح بالتنفيذ خطوة بخطوة نقطة التوقف المشروطة على مستوى المصدر أو كود الآلة.
- تقارير تغطية الكود Code coverage
- التفريغ المنسق أو ترميز التصحيح، أدوات تسمح متغيرات البرنامج على خطأ أو عند نقاط مختارة.
- أدوات اختبار واجهة المستخدم الرسومية Graphical User Interface الوظيفية المأتممة، تستخدم لتكرار التجريب على مستوى النظام عن طريق واجهة المستخدم الرسومية.
- مقاييس الآداء Benchmark، تسمح بعمل مقارنات لأداء التشغيل.
- تحليل الآداء Performance analysis (أو أدوات التنميط) التي تساعد في إلقاء الضوء على النقاط الساخنة واستخدام المصادر.
يمكن دمج بعض هذه الميزات في أداة مركبة واحدة أو بيئة التطوير المتكاملة Integrated Development Environment.
المعيار في تجريب البرمجيات
التسلسل الهرمي لصعوبة التجريب
التراخيص
جدل
Cost to fix a defect | Time detected | |||||
---|---|---|---|---|---|---|
Requirements | Architecture | Construction | System test | Post-release | ||
Time introduced | Requirements | 1× | 3× | 5–10× | 10× | 10–100× |
Architecture | – | 1× | 10× | 15× | 25–100× | |
Construction | – | – | 1× | 10× | 10–25× |
عمليات متعلقة
انظر أيضاً
- التحقق من البيانات
- تحليل البرنامج الديناميكي
- التحقق الرسمي
- منظمة التجريب المستقلة
- تجريب يدوي
- orthogonal array testing
- pair testing
- reverse semantic traceability
- تكتيكات تجريب البرمجيات
- أدوات ادارة التجريب
- تجريب الوب
- Test data generation
المصادر
- ^ ISTQB® Related Books - ISTQB® International Software Testing Qualifications Board Archived 2017-10-16 at the Wayback Machine
- ^ "Standard Glossary of Terms used in Software Testing" (PDF). Version 3.1. International Software Testing Qualifications Board. Retrieved January 9, 2018.
- ^ O'Reilly, Tim (September 30, 2005). "What is Web 2.0". O’Reilly Media. Section 4. End of the Software Release Cycle. Retrieved January 11, 2018.
قراءات إضافية
- Meyer, Bertrand (August 2008). "Seven Principles of Software Testing" (pdf). Computer. Vol. 41, no. 8. pp. 99–101. doi:10.1109/MC.2008.306. Retrieved November 21, 2017.
وصلات خارجية
| تجريب البرمجيات
]].