تعرف على levels of testing| المستوى الأول والثانى (unit testing-integration testing)
ان شاء الله اليوم
سوف نتحدث عن الlevels of testing وهنشوف هل احنا بنعمل تيستينج للسوفتوير مرة واحدة
كدة ولا بنمر بمراحل اومستويات لحد ما نسلم السوفتوير للعميل.ان مستويات الأختبار
أربع مستويات وان شاء الله اليوم سوف نتحدث عن مستويين منهم وهم: المستوى الأول
وهو الunit testing والمستوى الثانى وهوالintegration testing.
المستوى الأول (Unit Testing)
الunit testing له مسميات اخرى وهى(الcomponent testing او الmodule testing).فى مرحلة الunit testing بيتم التيستينج على وحدة
صغيرة من السوفتوير زى form معينة أو function معينة,وده بيتم علشان نتأكد أن هذة الunit بتؤدى وظيفتها طبقا للمواصفات بتاعتها (الspecification)أو design structure, واللى
بيقوم بالunit testing ده هو الديفلوبر بعد ما يكون انتهى من عمل الكود الخاص
بmodule معين.
أسباب عمل الunit testing
ان اكتشاف الخطأ
بيكون أسرع وكمان لما بيتم اكتشاف الخطأ فى المراحل الأولى بيكون أسرع لإكتشاف الbugs ومعرفة
مصادرها, ولما بنجمع كل الunit testing بنقدر نعمل إعادة هيكلة للمشروع ككل, وعلى
المدى البعيد بيؤدى ذلك إلى تقليل التكلفة لأن تصليح الbugs فى المراحل الأولى
بيكون أقل تكلفة من تصليحها قبل التسليم.
وده فيديو بيشرح الunit testing
وده فيديو بيشرح الunit testing
المستوى الثانى (ال Integration Testing)
فى الintegration testing بتتم عملية التيستينج للinteraction اللى مابين الmodules بعكس الunit testing اللى كان بيتم فيه التيستينج لmodule واحد اوunit واحدة,وهناك أسباب بتخلينا نعمل integration testing بعد الunit testing وقبل مانوصل لمرحلة الsystem testing.
أسباب الintegration testing
1- ان الunit testing بيعمل تيستينج لكل unit على حده ومابيعملش تيستينج للinteraction اللى مابينهم وبالتالى لوحصل ان ديفلوبر نسى يعمل تيستينج لunit معينة فا احنا مش هنعرف نكتشفها الا فى مرحلة الsystem testing ولذلك بنمر بمرحلة الintegration testing لكى نكتشف مبكرا الunits اللى ممكن مايكونش اتعمل لها تيستينج فى الunit testing قبل مانوصل لمرحلة الsystem testing.
2-أحيانا بستخدم unit او function جاهزة فلازم اعمل لها integration testing علشان أشوف تأثيرها على باقى الmodules.
3- بدون عمل integration testing هنستهلك وقت كبير فى مرحلة الsystem testing اللى بعد كده لأن
هيكون هناك bugs كثيرة لم نكتشفها فى
مرحلة الintegration testing.
4- ان تكلفة اكتشاف الbugs بعد كده هتكون عالية جدا.
وده فيديو بيشرح الintegration testing والطرق الخاصة به.
4- ان تكلفة اكتشاف الbugs بعد كده هتكون عالية جدا.
وده فيديو بيشرح الintegration testing والطرق الخاصة به.
طرق الintegration testing
عندى ثلاثة طرق للintegration testing
1-الBig Bang Testing: فى هذة الطريقة بنجيب كل الmodules ونجمعهم مع بعض ونعمل لهم تيستينج مرة واحدة, والطريقة دى مش هنستخدمها لأننا بنعمل لهم تيستينج مرة واحدة ومش بنقدر
نعرف الbugs فى أى module.
2-Bottom Up Integration Testing: فى هذه الطريقة
بنبدأ نعمل تيستينج لأقل layer وبعدين ننتقل لlayer الأكبر.فنبدأبعمل تيتستينج
لأقل module عندى ,ثم نعمل تيستينج لmodule أكبر ينفذ الوظيفة التى يقوم بها
الmodule الأصغر الذى تم اختباره سابقا ,ثم نعمل تيستينج لmodule أكبر من الmodule السابق يقوم بتنفيذ وظائف ال2 modules السابقين وهكذا حتى نصل الى الmain program الذى يقوم بتنفيذ وظائف جميع الmodules السابقة , ولكن فى هذا النوع من التيستينج من
الممكن ان يكون الmain program غيرجاهز لإختبار الmodules الأصغر وفى هذة الحالة
نستخدم driver.
والDriver هو عبارة عن كود افتراضى (dummy code) للmain program بينادى على الtest units اللى فىlow level بيستخدم فى طريقة الbottom up integration testing علشان نتأكد ان وظائف
الmodules الأصغر شغالة كويس.
3-الTop Down Integration Testing :فى هذة الطريقة بنبدأ نعمل تيستينج للmodules الأكبر على مستوى
الJUI وبعدين ننتقل للmodules الأصغر.فبنبدأ نعمل تيستينج للmain program الذى
يستخدم وظائف الmodules الأصغر ولكن من الممكن أيضا ان تكون الmodules الأصغر غير
مكتملة وفى هذة الحالة بنستخدم الstubs.
والStubs هى عبارة
عن كود افتراضى (dummy code) للsmall modules التى يناديها الmain program عند استخدام
طريقة الTop Down Integration Testing.
وده فيديو بيشرح الDriver والStubs مع ذكر أمثلة.
تعليقات