أرشيف تصنيف 'SWE 415'

sfeer

المخاطر في الاختبارات 2

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

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

مستويات المخاطر
استراتيجية الحذر : اختيار أعلى قيمة
استراتيجية المتوسط : اختيار قيمة بين قيمتين

المشاكل التي يجب حلها لتعطي شكل أساسي لعملية الاختبار هي :

مشاكل التخطيط : اختبار النماذج - اختبار الـ Calss - اختبار التفاعل - اختبار النظام - اختبار الـ Regression

أسئلة :

من يقوم بعملية الاختبار ؟
المطورون - المختبرون المستقلون - مجموعة مكونة من الاثنين

ماهي الأجزاء التي سيتم اختبارها ؟
اختبار لا شيء - اختبار عينة - اختبار كل شيء - اختبار الأعلى مخاطرة

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

كيف يتم الاختبار ؟
بمعرفة المواصفات فقط - بمعرفة المواصفات و طريقة التنفيذ

How much testing is adequate?
No testing, exhaustive testing (consider the expected lifetime of the software), is the software life-critical,

Coverage: is a measure of how completely a test suite exercises the capabilities of a piece of software

sfeer

المخاطر في الاختبارات

تحليل المخاطر جزء من العملية التخطيط و التطوير
المخاطر هي : أي شيء يهدد التحقيق الناجح لأهداف المشروع

الخطر هو حدث له بعض احتماليات الحدوث ، وعند حدوثه سيكون هناك شيء من خسارة ( سواء في الوقت أو في المادة )

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

أنواع المخاطر :

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

تحليل المخاطر
طريقة تحديد المخاطر لإيجاد طرق لتفادي أن تصبح المشاكل حقيقية

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

المخاطر في المشاريع الكائنية التوجه OO لها هذه الخصائص الهيكلية :

  • تفاعل معقد بين الـ Objects
  • سلوك معقد مرتبط بخصائص الـ Classes
  • تغيير أو تطور في مواصفات المشروع
  • تعقيد الـ class يقاس بحجم مواصفاته
  • عدد العلاقات : الـ class مع الـ classes الأخرى
sfeer

حالات الاختبار Test cases

  • عمليات الاختبار الأساسية : الاختبار المبكر Early - الاختبار المعتاد Often - الاختبار الكافي Enough
  • العنصر الأساسي للاختبار هو حالات الاختبار Test cases
  • حالات الاختبار تتكون من :

1 - المدخلات: وصف المدخلا تاتي يتم إدخالها إلى البرنامج وقت الاختبار
2 - المخرجات المتوقعة : وصف للمخرجات التي من المفترض أن يخرجها البرنامج بناء على المدخلات السابقة

  • لا يشترط أن تكون المدخلات و المخرجات مبسطة بل قد تكون معقدة جداً و عشوائية
  • تنفيذ حالات الاختبار : هي تشغيل البرنامج الذي تم إدخال المدخلات فيه ثم ملاحظة المخرجات و مقارنتها بالنتائج المتوقعة لحالات الاختبار
  • اختبار المجموعات : اختبار له ترتيب و تنظيم يعتمد على أنواع حالات الاختبار مثل اختبار مجموعة سعة النظام
  • سلبيات اختبار المجموعات :

الصحة Correctness
ملاحظة النتائج Observability of results
الكفاية Adequacy

  • تقنية STEP Testing

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

sfeer

OO الاختبار الكائني الموجه

  • التطوير الكائني الموجه هو أكثر الأنواع ملائمة للتطوير المسمى Evolutionary
  • لأن التصميم و التنفيذ و التحليل في OO يستلزم التحسين الناجح في كل نموذج
  • في مرحلة التحليل في OO فأننا نفهم المشكلة عن طريق تمثيلها بـ classes و Objects و العلاقات بينها
  • في مرحلة التصميم في OO فإننا نحل المشكلة بالتعامل مع الـ Objects المتشابهة و العلاقات بينها التي تحددت في مرحلة التحليل .. ثم نقدم الحل الخاص بالـ classes , objects, relationships and responsibilities
  • الاختبار لابد أن يتم في كل مرحلة
  • Regression Test لابد أن يكون بين المراحل Increments و خلال الدورات Iterations
  • التطوير و الاختبار بينهما عوامل مشتركة وتتقاطع أنشطة كل واحد منهما مع الآخر عندما نقوم بتصميم و تنفيذ حالات الاختبار test cases مهام التطوير و مهام الاختبار عادة تسند إلى أشخاص مختلفين
  • قابلية الاختبار Testability : تعني إلى أي مدى من السهولة يمكنك تقييم نتائج الاختبارات
sfeer

المراحل Increments

  • الصيانة تركز على تصحيح الثغرات و تحسينها :)
  • من نماذج العملية التطويرية

Evolutionary
Incremental - هذا ما سنركز عليه
Spiral
Concurrent

  • تحت عملية التطوير Incremental أو ما نسميه بالتطوير المرحلي فإن النظام يتم تطويره كسلسلة من المراحل
  • كل مرحلة من المراحل يمكن أن تحتوي على أقسام العملية التطويرية

Models
Documentation
Code
بالإضافة إلى بعض العمليات الأساسية للنظام

  • كل تطوير لمرحلة من المراحل سيفيد في المرحلة التي تليها
  • المرحلة الأخيرة تحقق جميع متطلبات النظام
  • المراحل Increments يمكن أن تكون في سلسلة أو أن تكون في مرحلة واحدة وكذلك يمكن أن تكون أكثر من مرحلة في نفس الوقت
  • في كل مرحلة من مراحل تطوير النظام سنحتاج إلى التصميم و التنفيذ و الاختبار
  • مطوروا النظام لابد أن يكرروا العمل (التصميم - التنفيذ - الاختبار) في كل مرحلة لأنهم يكتشفون أخطاء العمل السابق مع كل مرحلة جديدة
sfeer

اختبار النظام

  • الاختبار يحتاج إلى الكثير من المصادر
  • الاستخدام الأمثل و الأكثر فعالية لهذه المصادر يتطلب تخطيطاً جيداً و إدارة جيدة
  • في المرحلة التقنية Technical level فإن التخطيط يسير حسب قالب محدد حسب حاجة المطورين مثل IEEE test plan standard
  • ما هي العملية process ؟

هي سلسلة مستمرة من الأنشطة التي توصلك إلى نهاية محددة

  • الأنشطة الأربعة الرئيسة للبرنامج هي

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

albara

صناديق الإختبار :)

اليوم في محاضرة الـ Software Testing تعلمنا من الدكتور سجّاد محمود عدة نقاط جديدة من أهمها ..

  • أنه يوجد نوعان من الإختبارات:
  1. إختبار الصندوق الأسود: 
     يأخذ منظور خارجي (عام)  لإختبار إمكانية إستنتاج حالات الإختبار.
  2. إختبار الصندوق الأبيض (أو ما يسمى باختبار الصندوق الشفاف أو الزجاجي):  
    يأخذ المنظور الداخلي .. (يهتم بالتفاصيل الداخلية) والأكواد.
  • تعلمنا أيضًا أنه كلما زادت مجالات المدخلات Input Domains .. كلما أصبح إختبارنا للبرنامج أفضل
  • و أخيرًا فإن الفهم الجيد للمتطلبات .. يساعد في تحديد مجالات الإختبار Test Domains والتي يتم إختيار عينات الإختبار منها