1.2 Why is Testing Necessary ؟

Mohamed Abdelhyمنذ 3 سنوات

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته

Contact Me : 01033466109

اصبحت الـ Software Systems جزأ مهما من حياتنا اليوميه ونستخدمها فى كل مناحى الحياه من التعليم والصحه والنقل والزراعه والصناعه وغيرها وذاك زاد من اهمية عملية الـ Testing لأننا جميعًا نرتكب أخطاء. بعض هذه الأخطاء غير مهمة ، لكن بعضها باهظ الثمن أو خطير وهناك بعض الامثله لاخطاء برمجيه كلفت اصحابها الكثير . ومنها 

- كندا : أدى خلل في برمجة الوسادة الهوائية للمقاعد الخلفية في أحد مصانع السيارات إلى استدعاء أكثر من 50 ألف سيارة في كل من أمريكا وكندا والمكسيك.
- امريكا : قام خطأ برمجي عبر العديد من البرامج بتخزين التاريخ باستخدام آخر رقمين فقط من العام . لم تكن هذه مشكلة حتى عام 2000 عندما تمت قراءة 00 كـ 1900 بواسطة أجهزة الكمبيوتر وكانت التكلفة: 500 مليون دولار .

لذالك يمكن ان نلخص اهمية الـ Testing فى النقاط الاتيه وهى مشتقه من اهداف الـ Testing التى تم ذكرها فى الدرس السابق .

  1. يقل الـ Testing من مخاطر الفشل التى تحدث أثناء عملية التشغيل  "من الممكن ان يؤدى هذا الفشل الى خسائر ماديه وبشريه كما قولنا"
  2. عندما يتم إصلاح العيوب ، تزداد الجودة
  3.  قد يوجد الـ Software Testing ايضا لـ تلبية المتطلبات التعاقدية أو القانونية او المعايير الخاصة بالصناعة

 

 (K2) Testing’s Contributions to Success

هيا نتعرف كيف يساهم الـ Testing فى نجاح المشروع او الـ Software System.

على مدى تاريخ تطوير البرمجيات "Software Development" , من الشائع جدا ان عند تسليم الـ Software system واخراجه لبيئة العمل الخاصه به من الممكن ان يصاحب ذالك ظهور اخطاء اثناء عمية التشغيل او عدم مطابقة الـ System لمطلبات العميل .

لذالك فإن استخدام  الـ Testing techniques المناسبة يمكن أن يقلل من تكرار مشاكل التسليم هذه ، فعندما يتم تطبيق هذه الـ Techniques مع مستوى خبرة مناسب من الـ Testing Team وفى نقاط داخل مراحل تطوير البرمجيات "software development" ، من الممكن ان يساهم هذا فى إنجاح المشروع .
 أمثلة  على هذا ..

 

  •   Having testers involved in requirements reviews or user story refinement could detect defects in these work products. The identification and removal of requirements defects reduces the risk of incorrect or untestable functionality being developed.

يؤدى اشتراك الـ Tester فى المراحل المبكره من عملية تطوير البرمجيات "Software  Development" مثل عمل review  للـ requirements  او  user story  الى اكتشاف الاخطاء "Defects" مبكرا مما يقلل من وجود الاخطاء فى المراحل التاليه والتى تكون ارخص فى اصلاحها فى المراحل الاولى من عملية التطوير  والصوره الاتيه توضح تكلفة اصلاح المشاكل فى كل مرحله من مراحل تطوير البرجيات "SDLC"  ونلاحظ ان التكلفه تزيد فى كل مرحله عن سابقتها .

 

 

 

 Testers working closely with the system designers

عندما يعمل الـ Tester مع مصممى النظام "System Designers" فى مرحلة الـ Design - سيزيد من فهمهم لكل جزء من الـ Design .

 بالإضافة إلى ذلك ، سيساعد في تقليل مخاطر  اكتشاف الـ defect  المرتبطه بالـ Design فى مراحل متقدمه , و بتحديد الأخطاء في مرحلة مبكرة.

 

 

 Having testers work closely with developers

عندما يعمل الـ Tester مع مطورى النظام "Developers" فى مرحلة الـ Coding - فإن ذلك يعزز فهمهم لكل جزء من الـ Code .

هذا الفهم المتزايد يٌمكن من تقليل مخاطر حدوث Defect فى الـ Code او فى مرحلة Testing وهى الرحله التى تاتى بعد الـ Coding. ويجنبنا الدخول فى الـ Test Process والتى تعتبر اكثر المراحل التى تأخذ وقت و تكلفة كبيره نسبيا عن باقي مراحل التطوير .

يتعرف االـ Testers أيضًا على المناطق التي يعتبرها Developer خطرة حتى يتمكنوا من تعديل أولوياتهم وفقًا لذلك.  بالإضافة إلى ذلك ، يحصل الـ Developers أيضًا على رؤية الـ Testers , تساعدهم هذه الرؤيه على معرفة اكثر الاجزاء عرضة لوجود الـ Defect حتى يتجنبوها 

 

  • Testers verifying and validating the software before its release

هنا نصل لمرحلة الـ Test ويقوم ال Tester بالتحقق من البرنامج و التاكد منه قبل إصداره - يساعد ذلك في اكتشاف الـ defect التي ربما لم يلاحظها أحد فى مراحل التطوير السابقه ، ويتم فى هذه المرحله عملية التخلص من defect التي تسببت في حالات الفشل فى الـ software.  وبكدا نقدر نحقق متطلبات الـ stakeholder "اصحاب المصلحه".

 

 

(K2) 1.2.2 Quality Assurance and Testing

غالبا ما بتم استخدام مصطلحات داخل الـ Quality Managment مثل Quality Assurance , Quality Control .

هيا نتعرف على الفرق بينهم ....

لا يوجد نص متاح لهذه الصورة

- الـ Quality Managment هي جمع الانشطه المتعلقه بالجوده و التي تضمن تطوير منتجات بتحقق اعلى جوده وتسليمها للعملاء من خلال Process منظمة ومخططة جيدًا. ومن بين هذه الانشطه الـ QC و QA

- الـ Quality Assurance هي عملية التاكد ان الـ Process تمم وفق الـ Standards المخطط لها  ، من أجل توفير الثقة بأنه سيتم تحقيق مستويات الجودة المناسبة. عندما يتم تنفيذ الـ Process بشكل صحيح ، فإن اى عمل سيتم انجازه بواسطة هذه الـ Process يكون بشكل عام ذا جودة أعلى ، مما يساهم في منع Defect وانشاء Software بجوده اعلي.

نظرًا لأن QA يهتم بالتنفيذ السليم للـ process بأكملها ، فإنه يدعم اختيار ال Test types و Test levels المناسبه.

-الـ Quality Control هو التحقق من ان الـ Software بيحقق اعلى جوده و بيحقق الـ Requirment اللي طالبها العميل , يعتبر الـ Testing جزء من الـ QC

 

(K2) 1.2.3 Errors, Defects, and Failures

 

(K2) 1.2.4 Defects, Root Causes and Effects 

 

 

 

المصادر والمراجع

النهاية
لاتنسى تتبع الدورة لإشعارك عندما يتم التعديل على المتحوى او اضافة المزيد. ايضاً لاتنسى الاعجاب بها ومشاركتها مع الاخرين لتعم الفائد

المحاضر

Mohamed Abdelhy

محتوى الدورة

.مقدمه عن الدوره
1 ? What is ISTQB
2 let's start
.Chapter 1. Fundamentals of testing
1 1.1 What is Software testing ؟
2 1.2 Why is Testing Necessary ؟ الدرس الحالي

الكلمات الدليلية

عن الدرس

0 إعجاب
1 متابع
0 مشاركة
679 مشاهدات
منذ 3 سنوات

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !