Software Quality Assurance & Testing 2020 PDF
Document Details
Uploaded by JoyfulSphene
University of Tripoli
2020
Marwa Solla
Tags
Related
- Software Testing Introduction PDF
- Unit-1 Introduction to Software Testing and Quality PDF
- Unit-1 Introduction to Software Testing and Quality (E-next.in).pdf
- Unit-1 Introduction to Software Testing and Quality (E-next.in).pdf
- Unit-1 Introduction to Software Testing and Quality (E-next.in) PDF
- Intro to Software Testing PDF
Summary
This document is a lecture on software quality assurance and testing for Introduction to Software Engineering(ITGS-2013) at Tripoli University, covering topics like basic quality concepts, software quality assurance, software standards, and software testing techniques, presented by Marwa Solla in Fall 2020. It is a presentation and not an exam paper.
Full Transcript
جامعة طرابلس ـ كلٌة تمنٌة المعلومات ممدمة فً هندسة البرمجٌات Introduction to software Engineering ITGS-213 المحاضرة الثامنة – تأكيد الجودة واختبار البرمجيات Software Quality Assurance & Testing خريف2020 مواضيع المحاضرة...
جامعة طرابلس ـ كلٌة تمنٌة المعلومات ممدمة فً هندسة البرمجٌات Introduction to software Engineering ITGS-213 المحاضرة الثامنة – تأكيد الجودة واختبار البرمجيات Software Quality Assurance & Testing خريف2020 مواضيع المحاضرة ممدمة مفاهٌم أساسٌة فً الجودة وأهمٌتها تأكٌد الجودة البرمجٌات المراجعة والفحص والتصفح خصائص الجودة معاٌٌر البرمجٌات أنواع االخطاء البرمجٌة االختبارTesting ممدمـــــــــــــــــــة ٌعتبر تأكٌد أو ضمان الجودة Quality Assurance QAمن النشاطات المهمة فً اي مشروع تجاري .ظهرت هندسة البرمجٌات كحل إلعداد منتوج برمجً فائك الجودة ومطابك للمعاٌٌر المتفك علٌه من لبل مؤسسات معاٌٌر ومواصفات الجودة (ACM, IEEE, ISO). الوصف المعيار منهجٌة لتحدٌد متطلبات الجودة ،والتحمك من صحة هذه العملٌة. IEEE 1061 هنان معٌار الختبار وحدة. IEEE 1008 مجموعة من المتطلبات لحزم البرمجٌات. ISO / IEC تعلٌمات الختبار مجموعة من البرامج الممدمة ضد المتطلبات المحددة. 12119 ممدمـــــــــــــــــــة تأكٌد الجودة من مهمة المبرمج ومهندس البرمجٌات. كان تأكٌد جودة البرمجٌات فً السابك ٌركز على انتاج منظومات دون المرور على اختبار كامل ٌؤكد خلوها من األخطاء والذي سبب فً أزمة البرمجٌات. ولهذا بدأ الخبراء فً التركٌز على عملٌة االختبار واالهتمام بالجودة فظهر مصطلح تأكٌد الجودة البرمجٌاتSoftware Quality Assurance. ٌValidationشٌران الى تأكٌد وبالتالً فان التحمك Verificationو التصدٌك الجودة البرمجٌاتSQA. مفاهيم أساسية في الجودة وأهميتها مرالبة الجودةQuality Control QC: وهي العناية بالمنتوج منذ تصنيعه ولبل وصوله للمستخدم حيث تجرى عليه مجموعة اختبارات الية ويدوية ومختلفة. تتم هذه االختبارات عبر حلمة تسمى ) (Feedback loopحٌث ٌتم ممارنة المنتوج مع المعاٌٌر المحددة سلفا. مرالبة الجودة تعطى اإلدارة العلٌا المعلومات الضرورٌة)فً شكل تمرٌر) للحصول على الثمة فً المنتوج من حٌث مطابمته لألهداف والمواصفات والمعاٌٌر المطلوبة. والهدف منها هو تمليل التكلفة وجعل الزبون في وضع افضل من االمان والرضا. مفاهيم أساسية في الجودة وأهميتها تأكيد أو ضمان جودة البرمجياتSoftware Quality Assurance SQA: هً عملٌة تأكٌد توافك المنتوج البرمجً مع المتطلبات الوظٌفٌة والغٌر وظٌفٌة وتتطابك االدوات والمنهجٌات والطرق واالجراءات مع المعاٌٌر المعتمدة فً اعداد البرمجٌات. أو هً مجموع السمات والخصائص المتعلمة بالمنتج البرمجً التً تجعله لادرا على تحمٌك الهدف من إنتاجه . ٌفضل ان ٌموم فرٌك مختلف عن فرٌك اعداد البرمجٌات بعملٌة تأكٌد الجودة لكً تتم العملٌة من وجهة نظر أكثر شمولٌة واستماللٌة. ٌفضل ان ٌكون الفرٌك ٌمثل الزبون لكً ٌتأكد من أن المنظومة تطابك معاٌٌر الجودة المنصوص علٌها فً وثٌمة المتطلبات. 6 تأكيد الجودة البرمجيات Software Quality Assurance SQA تهدف عملية تأكيد جودة البرمجيات إلى: فحص مكونات وشفرة البرمجٌة للتأكد من خلوها من األخطاء ومطابمتها للمواصفات والمعاٌٌر .1 الموضوعة من لبل مستخدمً البرمجٌة وذلن لبل إصدار تلن البرمجٌة إلى المستخدمٌن المعنٌٌن بها. تهدف إلى التأكد من أن البرمجٌات الموضوعة لإلصدار تطابك احتٌاجات ومتطلبات سوق العمل. .2 تموم عملٌة تأكٌد جودة البرمجٌة على اتباع طرق وخطوات وتمنٌات منهجٌة ومدروسة النتائج أثناء .3 عملٌة الفحص. تأكيد الجودة البرمجيات Software Quality Assurance من مبدأ الولاية خير من العالج ٌ جب أن نطبك ضمان الجودة على أي منتج برمجً.علما بان عملٌة ضمان الجودة تضاف الى تكلفة المنتج ،اال انها تملل من تكالٌف االصالح بعد عملٌة بٌع المنتج. مثال :نفرض ان لدٌنا كود برمجً ٌبلغ 100000سطر ،وتم انفاق 500ساعة فً اختباره وتنمٌحه وكانت تكلفة كل ساعة 30د.وكانت النتٌجة انه تم تفادي 200خطأ محتمال.سٌترتب على المؤسسة تكالٌف اضافٌة على المنتج تبلغ 15000=500*30د لتجنب 200خطأ. وعلى افتراض ان عملٌة االختبار لم تتم وان أي خطأ سٌظهر عند التنفٌذ العملً بعد البٌع سٌكلف 1000د.وبافتراض انه لم ٌظهر سوى 100عٌب برمجً .وبالتالً فان تكلفة االصالح تكون 100000د أي ما ٌعادل 6أضعاف التكلفة السابمة. 8 تأكيد الجودة البرمجيات Software Quality Assurance من مبدأ الولاية خير من العالج تأكيد الجودة البرمجيات Software Quality Assurance نشاطات تخص ضمان الجودة :هي مجموعات نشاطات يموم بها فريك تأكيد الجودة: تجهٌز خطة الجودةQuality plan: .1 ٌتم تجهٌز الخطة فً مرحلة التخطٌط وٌتم مراجعتها من لبل الزبون وتشمل هذه الخطة اآلتً: تحدٌد البنود المراد تمٌٌمها. تحدٌد المراجعات المراد أداؤها. تحدٌد المعاٌٌر المراد التعاطً معها. مراجعة األدوات والطرق المستخدمة ألعداد المنظومة البرمجٌة. .2 المراجعة والفحص والتصفح Reviewing, inspection & Walkthrough تحديد أهم المراجعات المراد أداؤها ضمن خطة الجودة Quality planبالتالي: التصفحWalkthrough. فحص الشفرةCode Inspection. مراجعة البرمجٌاتSoftware Review. التصفحWalkthrough: (1 هً طرٌمة لمراجعة المنتوج البرمجً مراجعة غٌر رسمٌة و ذلن بمشاركة المخطط االنسٌابً لجزء برمجً مع فرٌك العمل أو المنظومة فٌما بٌنهم وال ضرورة من معرفة مدٌر المشروع والٌتم توثٌمها . 11 المراجعة والفحص والتصفح Reviewing, inspection & Walkthrough فحص الشفرةCode Inspection (2 هً عملٌة كشف عن أخطاء فً جزء برمجً ولٌس تصحٌحه مثل( االخطاء المنطمٌة فً الشفرة ).الذي ٌموم بتصحٌح هذه االخطاء المبرمج. تتم عملٌة الفحص فً جلسة تعمد بحضور معد الجزء البرمجً وفرٌك الفحص لفحص الشفرة ٌتم توفٌر االتً: الشفرة المراد تفحصها. .1 المعاٌٌر المستخدمة فً اعداد المنظومة. .2 لائمة باألخطاء المتولعة وٌتم استخالصها من منظومات سابمة بواسطة اخصائٌٌن. .3 مثل هل تم اعطاء لٌم ابتدائٌة للمتغٌرات المستخدمة فً( الشفرة)؟ -هل كل حلمة لها نهاٌة؟ المراجعة والفحص والتصفح Reviewing, inspection & Walkthrough الجدول التالي يعرض الفرق بين الفحص InspectionوالتصفحWalkthrough. الفحصInspection التصفحWalkthrough تستخدم جلسات رسمٌة جلسات غٌر رسمٌة اسلوب منتظم للبنود جلسات غٌر منتظمة تتم بواسطة عناصر مؤهلة اداة تعلٌمٌة ممتازة ألعضاء الفرٌك الجدد معد الجزء البرمجً وفرٌك الفحص تتم بواسطة زمالء فرٌك إعداد المنظومة 13 المراجعة والفحص والتصفح Reviewing, inspection & Walkthrough مراجعة البرمجياتSoftware Review (3 مراجعة البرمجٌات عملٌة مهمة حٌث ٌتم فٌها مراجعة التوثٌك فً نهاٌة كل مرحلة (التحلٌل – التصمٌم – البرمجة) ٌتم تجهٌز تمرٌر لإلدارة العلٌا فً نهاٌة كل مرحلة بعد المراجعة بحضور اإلدارة ونتٌجة لذلن ٌتم اتخاذ احد المرارات التالٌة: االستمرار فً المرحلة التً تلٌها. .1 التولف عن المشروع بالكامل. .2 اجراء التغٌٌرات على التوثٌك ثم االستمرار. .3 خصائص الجودة Quality Attributes نورد بعض الخصائص التالي يجب أن تتصف بها المنظومة البرمجية الناجحة: االعتمادية Reliability:تتصل المصدالٌة أو الموثولٌة بالدرجة التً ٌمكن للبرنامج أن ٌؤدي فٌها وظائفه دون أخطاء ٬وعموما كلما زادت مرات المراجعة وفترة االختبار للبرنامج كلما للت أخطاؤه . لابلية الصيانة Maintainability :تكون مصممة بطرٌمة تسهل عملٌة تحدٌد واصالح االخطاء. االمن والحماية ٌ Security :جب أن ٌتمتع البرنامج بأمن البٌانات ٬ومن ذلن التحكم فً الدخول للبرنامج على شبكات محلٌة أو عامة ٬والتأكد من أن من ٌستخدم البرنامج مسموح له باستخدامه بالفعل. التوسعية Expandability :وهً إمكانٌة ترلٌة البرنامج وزٌادة لدراته ووظائفه لرفع كفاءته وزٌادة محتواه أو تحدٌثه. خصائص الجودة Quality Attributes الدلة Accuracy :الدلة فً نتائج المنظومة خاصة الحسابات.وتماس الدلة بعدد األخطاء فً األلف وٌعد مستوى ثالثة أخطاء فً األلف مستوى ممبول فً الدلة. االداء Performance :سرٌعة االستجابة والمعالجة. سهولة االستخدام Usability:وتعد من أهم المعاٌٌر المؤثرة على نجاح البرنامج ٬فلو صعب استخدام البرنامج من لبل المستخدم النهائً فإن ذلن ٌجعل البرنامج عدٌم الفائدة حتى لو تمتع بالكفاءة والمصدالٌة ٬وهذا ٌتطلب واجهة رسومٌة جذابة للمستخدم. لابلة إلعادة االستخدام ٌ Reusability :مكن استخدام اجزاء المنظومة فً برامج مستمبلٌة.وٌمصد تحوٌل محتوٌات البرنامج لكً تستخدم فً برنامج آخر أو االنتفاع بمحتوٌات البرنامج فً تطبٌمات أخرى تحت نفس نظام التشغٌل ٬ وٌجب أن ٌسمح بذلن من لبل المنتج األصلً للبرنامج. معايير البرمجيات Software Standards أهداف المعايير :نضع بعض المعايير للبرمجيات لالهداف اآلتية: للتفاهم والوصول بٌن متخصص الحاسوب والزبون لعمل مثالً. .1 لتجنب تكرار أخطاء الماضً. .2 الستمرارٌة العمل فً المنظومة حتى فً غٌاب بعض أعضاء فرٌك اعداد المنظومة. .3 لتوحٌد التمنٌات واألدوات المستخدمة من لبل المبرمجٌن فً المؤسسة الواحدة. .4 للحصول على منتوج ذي جودة عالٌة. .5 أنواع المعايير Types of standards معاٌٌر خاصة بعملٌة اعداد المنظومة: (1 هً معاٌٌر تتعلك بالطرق واالدوات الفنٌة فً اعداد البرمجٌات .مثل تحدٌد المتطلبات ٌجب أن ٌكون كامال لبل التنفٌذ. معاٌٌر خاصة بالمنتوج البرمجً: (2 هً معاٌٌر خاصة بشكل المنتوج البرمجً ولٌس كٌفٌة اعداده .مثل معاٌٌر فً تسمٌة الوثائك المستخدمة. معاٌٌر فً شكل وهٌئة شفرة البرنامج. أنواع أخطاء البرمجيات هنان ثالث أخطاء تحدث في المنظومات: أخطاء فً المتطلبات (الوظائف غٌر كاملة) .1 أخطاء فً التصمٌم (االخفاق فً ترجمة المتطلبات الى مواصفات التصمٌم) .2 أخطاء فً التنفٌذ (مثل خطأ فً اجراء العملٌات الحسابٌة فً منظومة المرتبات). .3 االختبار Testing االختبار هو مجموعة من االنشطة activitiesالتً اذا تم تخطٌطها وتنفٌذها بصورة صحٌحة اثناء اعداد البرمجٌات فأنها ستؤدي الى منظومة موثولة Reliableخالٌة من االخطاء. أو هو عملٌة تمٌٌم نظام أو عنصرها إلٌجاد ما إذا كانت تلبً متطلبات محددة أم ال . أو االختبار ٌتم تنفٌذه من أجل تحدٌد أي ثغرات أو أخطاء أو متطلبات المفمودة من االحتٌاجات الفعلٌة. وفما ل ٌ IEEE 1059مكن تعرٌف االختبار بأنه عملٌة تحلٌل البرنامج للكشف عن االختالفات بٌن االحتٌاجات المائمة والمطلوبة وتمٌٌم هذه البرنامج. االختبار Testing تعد عملٌة االختبار ذات أهمٌة بالغة حٌث تستغرق حوالً 40%من الزمن الكلً ألعداد المنظومة فً المنظومات الكبٌرة والمعمدة. ٌجب أن ٌعمل كل من معد المنظومة وفرٌك االختبار المستمل جنبا الى جنب للتأكد من خلو المنظومة من االخطاء وذلن بتنفٌذ االختبارات الكافٌة. و ٌتم تصنٌف 4مستوٌات االختبار: اختبار الوحدةUnit Test. .1 اختبار التكاملIntegration Test. .2 اختبار النظامSystem Test. .3 اختبار المبول .4 21 انواع االختبارات Type of Testing اختبار الجزء البرمجيModule Test: (1 ٌطلك علٌه اختبار الوحدةUnit Test ٌركز على اختبار أصغر وحدة فً النظام Moduleمن لبل المبرمج. تبدأ عملٌة اختبار الجزء البرمجً أثناء عملٌة البرمجة أي فً المرحلة السابمة لمرحلة االختبار . ٌجب تسلٌم الجزء البرمجً دون اخطاء وصالحا لالستعمال لمدٌر البرمجة ألجراء االختبار التالً (االختبار المتكامل) انواع االختباراتType of Testing اختبار التكاملIntegration Test: (2 ٌتم تركٌب واختبار كل الوحدات المجمعة من االختبار السابك كوحدة واحدة. ٌتم اٌضا اختبار Interfacesفً هذا النوع من االختبار. وكذلن ٌتم اختبار الزبون /الخادم وكذلن االنظمة الموزعة. هذا النوع من االختبار ٌسمى .a االختبار من اسفل الى أعلىBottom-up انواع االختباراتType of Testing اختبار التكاملIntegration Test: (2 هذا النوع من االختبار ٌسمى االختبار من اعلى الى اسفلTop-down Test .b انواع االختباراتType of Testing اختبار النظامSystem Test (4 هواختبار لنظام مع الحاسوب بالكامل مثل أن النظام ٌعمل فً بٌئات مختلفة مثل أنظمة التشغٌل. اختبار الحمايةSecurity Test - System Test .a ٌتم التأكد من آلٌة حماٌة المنظومة من دخول غٌر مسموح الى المنظومة ألي سبب أو غرض.و كذلن لاعدة البٌانات محمٌة من الهجمات الخارجٌة. اختبار االستردادRecovery Test - System Test .b ٌتم فً هذا االختبار التأكٌد على لدرة المنظومة على استرداد لدرتها على العمل فً حالة حدوث مشاكل بدون (4 تلف للبٌانات المخزنة ،ومن أمثلة االختبار: إعادة تشغٌل أو تهٌئة المنظومة. التخزٌن التلمائً فً حالة حصول عطل. انواع االختباراتType of Testing اختبار المبولAcceptance Test - System Test .c ٌطلك علٌه أٌضأ User Testبحٌث ٌموم المستخدم أو الزبون بإجراء هذا االختبار لٌتم اتخاذ المرار بخصوص أن المنتج ٌلبً المتطلبات المتولعة وٌتم لبول المنظومة. كما ٌموم فرٌك ضمان الجودة باختبار مجموعة من السٌنارٌوهات مكتوبة مسبما وحاالت االختبار التً ٌستخدمها الختبار التطبٌك. طرق االختبارMethods of Testing اختبار ألفا Alpha Test – Validation Test هو اختبار للجزء البرمجً فً مكان معد المنظومة فً نهاٌة تطوٌر البرنامج وٌتم تنفٌذه بٌن فرق (المطور وضمان الجودة ).حٌث ٌموم بتسجٌل االخطاء وتعدٌلها ثم ٌتم اعادة االختبار مرة اخرى الى أن ٌتم الوصول الى منظومة تلبً احتٌاجات المستخدم . انواع االختباراتType of Testing اختبار بيتا Beta Test – Validation Test .c ٌتم إجراء هذا االختبار بعد أن تم إجراء اختبار ألفا بنجاح وٌبدأ هذا االختبار فً ممر الزبون حٌث ٌختبر الزبون او المستخدم النهائً المنظومة الناتجة من االختبار السابك بمفرده وٌسجل االخطاء لبل البدء فً اصدار النسخة التجارٌة بحٌث ٌتم اختبار التالً: اختبار الوظائف :التأكد من صحة عمل كل وظائف المنظومة مثل اضافة صنف. اختبار الكفاءة :اختبار زمن االستجابة Response Time Testوالتأكد من لدرة المنظومة على استٌعاب كم هائل من السجالت .وٌموم معد المنظومة بالرجوع للزبون عدة مرات بشكل منتظم لمعرفة االخطاء وتصحٌحها وهكذا حتى تصبح المنظومة فً وضع أفضل لمبولها. انواع االختباراتType of Testing اختبار بيتا – Beta Test .c اختبار بٌتا ،أٌضا هو اختبار ما لبل النشر ٌ.تم توزٌع اإلصدارات اختبار بٌتا على جمهور واسع على شبكة اإلنترنت ،وذلن إلعطاء البرنامج اختبار حمٌمٌا ،حٌث ٌموم الجمهور بتثبٌت وتشغٌل التطبٌك وإرسال مالحظاتهم إلى فرٌك المشروع للحصول على ردود التً تمكن فرٌك المشروع من إصالح المشاكل لبل إطالق البرنامج للمستخدمٌن الفعلٌن. طرق االختبارMethods of Testing اختبار الصندوق األبيض White-Box Test – Unit Test ٌطلك علٌه اٌضا اختبار الصندوق الزجاجًGlass Box. ٌتم فً هذا االختبار إدخال بٌانات متنوعة ومختلفة للتأكد من سالمة أداء كل مسارات الخوارزمٌة للجزء البرمجً الواحد. ٌحتاج اختبار إللماء نظرة داخل شفرة المصدر ومعرفة أي وحدة تتصرف بشكل غٌر صحٌح. طرق االختبارMethods of Testing White-Box Test – Unit Test اختبار الصندوق األبيض :المثال التالً نفرض أن البرنامج سٌمر بعدة خطوات للتنفٌذ. لن ٌتم تنفٌذهnode6 وهذا االختبار ٌوضح بأن To cacluate the McCabe metric: Identify primitve conditions and operations Number them Drow the flow graph Copmute the cyclomatic complexity Test case #1: follows path 1-2-exit Test case #2: 1-2-3-4-5-7-8-2-3-4-5-7-8-2-exit طرق االختبارMethods of Testing White-Box Test – Unit Test اختبار الصندوق األبيض 32 Methods of Testingطرق االختبار اختبار الصندوق األسود Black-Box Test – Validation Test .a ٌتم اختبار وظٌفة جزء البرمجً بحٌث ٌتم التركٌز فمط على مدخالت ومخرجات النظام .أي اختبار غٌر مدرن لبنٌة النظام ولٌس لدٌها إمكانٌة الوصول إلى شفرة المصدر وٌسمى االختبار الوظٌفً functionalأو السلوكًbehavioural. فمثال اختبار جزء برمجً ٌموم بترتٌب اسماء بحٌث ٌتم إدخال مجموعة أسماء واختبار حالة األسماء الناتجة ان كانت مرتبة أم ال. 33 Methods of Testingطرق االختبار اختبار الصندوق األسود Black-Box Test – Validation Test .a مثال اختبار البحث عن مولع indexلعنصر معٌن داخل المصفوفة ،على ان ٌتم ترجٌع -1فً حالة عدم وجود المٌمة فً المصفوفة أو المصفوفة فارغة. 34 Black-box vs. White-box Black box: test based on interface, through interface White box: test based on code, through code End