آزمون دود

Download Report

Transcript آزمون دود

1
‫‪ ‬راهبرد آزمون نرم افزاري چيست؟ يک طرح رسمي براي آزمون ها‬
‫‪ ‬چه کس ي راهبرد آزمون نرم افزاري را برعهده دارد؟ مدير پروژه‪ ,‬مهندسين نرم افزار و‬
‫متخصصان آزمون نرم افزاري‬
‫‪ ‬چرا راهبرد آزمون نرم افزاري از اهميت برخوردار مي باشد؟ اگر کار آزمودن به‬
‫صورت تصادفي انجام شود‪ ,‬زمان هدر مي رود‪ ,‬انجام کارهاي غيرضروري گسترش مي‬
‫يابد و در مراحل بدتر خطاهاي نامشخص ي ايجاد مي گردد‪.‬‬
‫‪ ‬حاصل کار از راهبرد آزمون نرم افزاري چه چيزي مي باشد؟ مشخصات آزمون با‬
‫تعريف طرحي که توصيف کننده راهبرد کلي مي باشد و با تعريف رويه اي که مراحل‬
‫خاص آزمودن را تعيين مي کند و با تعريف آزمون هايي که انجام خواهند شد‪,‬‬
‫رهيافت تيم نرم افزاري را براي آزمون‪ ,‬مشخص مي کند‪.‬‬
‫‪2‬‬
‫‪ ‬مراحل راهبرد آزمون نرم افزاري چه چيزهايي هستند؟ آزمون هاي اوليه بريک جزء‬
‫واحد تأکيد دارند و از آزمون هاي جعبه سفيد و جعبه سياه استفاده مي کند تا‬
‫خطاهاي موجود در منطق و کارکرد برنامه مشخص شود‪ .‬بعد از آزمودن هريک از‬
‫جزءها بايد کار تلفيق آنها انجام شود‪ .‬نهايتا آن که‪ ,‬مجموعه اي از آزمون هاي‬
‫باالمرتبه نيز بعد از آماده به کار شدن کل برنامه اجرا مي شوند‪.‬‬
‫‪ ‬چگونه مي توان مطمئن شد که راهبرد‪ ,‬درست تعيين شده است؟ با بررس ي مجدد‬
‫مشخصات آزمون قبل از آزمودن مي توان کامل بودن موارد آزموني و وظايف مربوط‬
‫به آزمودن را مورد ارزيابي قرار داد‪.‬‬
‫‪3‬‬
‫راهبردهاي آزمون نرم افزاري داراي ويژگي هاي عمومي ذيل مي باشند‪:‬‬
‫‪ ‬آزمودن در سطح اجزا آغاز مي شود و به سمت تلفيق کل سيستم کامپيوتري گام‬
‫برمي دارد‪.‬‬
‫‪ ‬فنون مختلف آزمون‪ ,‬در مقاطع مختلف زماني مناسب‪ ,‬بايد انجام گيرد‪.‬‬
‫‪ ‬کار آزمون توسط افراد توسعه دهنده ي نرم افزار انجام مي شود و در پروژه هاي‬
‫بزرگ اين کار توسط يک گروه مستقل آزمون کننده انجام خواهد شد‪.‬‬
‫‪ ‬آزمودن و اشکال زدايي دو فعاليت متفاوت مي باشند‪ ,‬اما اشکال زدايي بايد در‬
‫هريک از راهبردهاي آزمودن گنجانده شود‪.‬‬
‫‪4‬‬
‫تعيين صحت به مجموعه اي از فعاليت هايي اشاره دارد که اجراي يک کارکرد خاص‬
‫بصورت صحيح توسط نرم افزار را تضمين و تأييد مي کند‪ .‬اعتبارسنجي يا تصديق به‬
‫مجموعه ي مختلفي از فعاليت هاي تضمين کننده ي اين امر اشاره دارد که نرم افزار‬
‫ساخته شده با شرايط مورد نظر مشتري هماهنگي دارد‪.‬‬
‫تصديق و تعيين صحت آرايه ي گسترده اي از فعاليت هاي ‪ SQA‬را تحت پوشش‬
‫قرار مي دهد که اين فعاليت ها شامل موارد ذيل مي باشند‪:‬‬
‫بازبيني فني ورسمي‪ ,‬وارس ي کيفيت و پيکربندي‪ ,‬نظارت بر عملکرد‪ ,‬شبيه سازي‪ ,‬مطالعه‬
‫امکان سنجي بررس ي مستندات‪ ,‬بررس ي بانک اطالعاتي‪ ,‬تجزيه و تحليل الگوريتمي‪ ,‬آزمون‬
‫هاي تکميلي‪ ,‬آزمون هاي کيفيت‪ ,‬و آزمون مربوط به نصب‪.‬‬
‫‪5‬‬
‫سازنده آزمون به انجام دادن و طراحي آزمون هايي مي پردازد که به جاي نشان دادن‬
‫خطاهاي موجود در نرم افزار به تأييد اين نکته بپردازند که اين برنامه ي ساخته شده و‬
‫بوجود آمده به خوبي کار مي کند‪ .‬در بسياري از موارد‪ ,‬فرد توسعه دهنده ي نرم افزار‬
‫آزمون تلفيقي –يعني آزمودن مرحله اي که به ساخت و آزمون معماري کامل برنامه‬
‫منتهي مي شود‪ -‬را انجام مي دهد‪.‬‬
‫نقش گروه مستقل آزمون کننده (‪ )ITG‬برطرف کردن مشکالت اساس ي مربوط به‬
‫اجازه دادن به سازنده براي آزمون آن چه که ساخته شده است‪ ,‬مي باشد‪ITG .‬‬
‫بخش ي از تيم پروژه ي تکميل نرم افزار مي باشد و اين امر بدين معناست که ‪ ITG‬در‬
‫طول فعاليت تشخيص خطاها در کل يک پروژه ي بزرگ نيز دخالت خواهد داشت‪.‬‬
‫‪6‬‬
‫فرآيند مهندس ي نرم افزار را مي توان بصورت حلزوني نشان داده شده در شکل در‬
‫نظر گرفت‪:‬‬
‫‪7‬‬
‫راهبرد آزمون نرم افزاري را نيز مي توان در بافت حلزوني در نظر گرفت‪ .‬آزمون واحد‬
‫در مرکز اين مارپيچ انجام مي شود و در اين آزمون بر هريک از واحدهاي نرم افزاري در‬
‫هنگام اجرا در برنامه منبع تأکيد مي شود‪ .‬کار آزمون با حرکت به سمت خارج در امتداد‬
‫بخش حلزوني ادامه مي يابد و به آزمون تلفيقي نزديک مي شود که در اين آزمون نيز بر‬
‫طراحي و ساخت معماري نرم افزار تأکيد مي شود‪.‬‬
‫در آزمون اعتبارسنجي يا تصديق نيازمندي هاي ايجاد شده به عنوان بخش ي از تحليل‬
‫نيازمندي ها و مشخصات نرم افزاري در برابر نرم افزار ساخته شده مورد تأييد و‬
‫تصديق قرار مي گيرد‪ .‬و در نهايت به آزمون سيستم مي رسيم که در آن نرم افزار و ساير‬
‫عناصر سيستم بصورت کلي مورد آزمون واقع مي شوند‪.‬‬
‫‪8‬‬
‫با در نظر گرفتن فرآيند از نقطه نظر رويه اي(روش کار)‪ ,‬آزمودن در محدوده ي بافت‬
‫مهندس ي نرم افزار در واقع مجموعه اي از چهار مرحله تشکيل شده است که اين‬
‫مراحل پشت سرهم اجرا خواهند شد‪ .‬اين چهار مرحله در شکل نشان داده شده اند‪.‬‬
‫‪9‬‬
‫با استفاده از مدل سازي آماري و تئوري اعتبار نرم افزاري مي توان مدل هاي عيب نرم‬
‫افزاري را به شکل تابعي از زمان اجرا نشان داد‪ .‬نسخه اي از مدل عيب نرم افزاري به‬
‫نام مدل زمان اجراي پواسن لگاريتمي به شکل تابع زير مي باشد‪:‬‬
‫]‪f(t) = (l / p) ln[l0pt + 1‬‬
‫که در آن‪:‬‬
‫)‪ :f(t‬مجموع تعداد معايبي که انتظار مي رود در هنگام آزمون نرم افزار در مقادير مشخص ي از زمان اجرا‪ ,‬يعني ‪t‬‬
‫بوجود آيد‪.‬‬
‫‪ :L0‬شدت عيب اوليه ي نرم افزار در ابتداي آزمون‬
‫‪ :P‬کاهش نمايي در شدت عيب با کشف شدن خطاها و انجام اصالحات الزم‬
‫‪10‬‬
‫شدت لحظه اي عيب‪ ,‬يعني )‪ l(t‬را مي توان با مشتق گيري از )‪ f(t‬بدست آورد‪.‬‬
‫بنابراين مقدار )‪ l(t‬بصورت زير خواهدشد‪:‬‬
‫)‪l(t) = l0 / (l0 pt = 1‬‬
‫آزمون کنندگان با استفاده از روابط ذکرشده در فرمول باال مي توانند با انجام شدن‬
‫مراحل مختلف آزمون ميزان خطا را پيش بيني کنند‪.‬‬
‫‪11‬‬
‫تام جيلب اظهار داشته است که مسايل ذيل بايد براي اجراي راهبرد موفق آزمون‬
‫نرم افزاري مورد بررس ي قرار داده شوند‪:‬‬
‫‪ ‬مشخص کردن مشخصات محصول به شکل قابل اندازه گيري‪ ,‬مدت ها قبل از‬
‫شروع آزمون‪.‬‬
‫‪ ‬بيان کردن اهداف آزمون بصورت واضح و مشخص‪.‬‬
‫‪ ‬درک نمودن کاربران نرم افزار و ايجاد يک پروفايل جداگانه براي هريک از طبقات‬
‫کاربران‪.‬‬
‫‪12‬‬
‫‪ ‬ايجاد يک طرح در زمينه ي آزمون که بر چرخه ي سريع آزمون تأکيد دارد‪.‬‬
‫‪ ‬ساخت يک نرم افزار مقاوم که براي آزمون‪ ,‬خود طراحي شده است‪.‬‬
‫‪ ‬استفاده کردن از بازبيني هاي فني و رسمي به عنوان يک فيلتر قبل از شروع آزمون‪.‬‬
‫‪ ‬انجام بازبيني هاي فني و رسمي براي ارزيابي راهبرد آزمون و موارد آزمون‪.‬‬
‫‪ ‬ابعاد يک رهيافت مداوم اصالح و بهبود براي فرآيند آزمون نرم افزاري‪.‬‬
‫‪13‬‬
‫در آزمون واحد بر تعيين صحت کوچک ترين واحد طراحي نرم افزار ‪-‬يعني جزء و‬
‫مؤلفه نرم افزاري يا چند پيمانه نرم افزاري‪ -‬تأکيد مي شود‪ .‬آزمون واحد مبتني بر جعبه‬
‫سفيد بوده و به طور موازي براي چند جزء قابليت کاربرد دارد‪.‬‬
‫‪14‬‬
‫آزمون جريان داده ها در رابط پيمانه بايد قبل از شروع ساير آزمون ها انجام شود‪.‬‬
‫اگر اطالعات به طرز صحيح وارد يا خارج نشوند‪ ,‬ساير آزمون ها نيز مورد ترديد قرار‬
‫خواهند گرفت‪ .‬به عالوه ساختار داده هاي محلي نيز بايد مورد آزمون واقع شوند و تأثير‬
‫محلي آنها بر داده هاي سراسري نيز بايد در طول آزمون واحد مشخص گردد‪.‬‬
‫آزمون مرزها آخرين(وشايد مهمترين) کاري است که بايد در مراحل آزمون واحد انجام‬
‫شود‪ .‬يعني خطاها اغلب در هنگام پردازش عنصر ‪n‬ام آرايه ‪n‬بعدي يا وقتي که تکرار‬
‫‪i‬ام حلقه با اجراي ‪i‬بار تحريک مي شود و يا هنگامي که حداکثر يا حداقل مقدار مجاز‬
‫حاصل مي شود اين خطاها بوجود مي آيند‪.‬‬
‫‪15‬‬
‫‪‬موارد آزموني بايد خطاهاي ذيل را مشخص کنند‪:‬‬
‫‪ (1‬مقايسه انواع مختلف داده ها‬
‫‪ (2‬ترتيب هاي منطقي نادرست‬
‫‪ (3‬اميد برابري هنگاميکه خطاي مربوط به دقت‪ ,‬برابري را غيرمتحمل مي سازد‬
‫‪ (4‬مقيسه ي نادرست متغيرها‬
‫‪ (5‬پايان يافتن نامناسب يا عدم خروج از حلقه‬
‫‪ (6‬عدم توانايي براي خروج هنگام تکميل شمارش شمارنده حلقه‬
‫‪ (7‬تغيير نادرست متغيرهاي حلقه‬
‫‪16‬‬
‫محيط آزمون واحد در شکل نشان داده شده است‪.‬‬
‫در اکثر نمونه هاي کاربردي‪ ,‬برنامه رابط (راه انداز) برنامه اي بيش از يک برنامه ي‬
‫اصلي نمي باشد که داده هاي موارد آزمون را مي پذيرد و اين داده ها را به جزء انتقال‬
‫مي دهد و نتايج مربوطه را چاپ مي کند‪ .‬جزءهاي جايگزين نرم افزار‪ ,‬جايگزين پيمانه‬
‫هايي مي شوند که اين پيمانه ها تابع جزءهاي در نظر گرفته شده براي آزمون مي‬
‫باشند‪.‬‬
‫‪17‬‬
18
‫آزمون تلفيقي يک تکنيک نظام مند براي ساختن ساختار برنامه و در عين حال انجام‬
‫آزمون ها براي مشخص شدن خطاهاي مربوط به ايجاد رابط مي باشد‪ .‬هدف از انجام‬
‫اين آزمون در نظر گرفتن جزءهاي آزمون شده ي واجد وايجاد ساختار برنامه اي تعيين‬
‫شده طراحي مي باشد‪.‬‬
‫‪ ‬آزمون تلفيق غيرافزايش ي يعني ايجاد برنامه با استفاده از يک رهيافت توسعه بزرگ و‬
‫يکباره است‪ .‬تمام جزءها به شکل پيشرفته اي با يکديگر ترکيب مي شوند‪ .‬کل برنامه‬
‫بصورت يک مجموعه ي کلي آزموده مي شود‪.‬‬
‫‪ ‬تلفيق افزايش ي نقطه ي مقابل روش توسعه يکباره مي باشد‪ ,‬برنامه در نمودهاي‬
‫کوچک ايجاد شده و مورد آزمون واقع مي گردد که در اين حلت جداسازي خطا و‬
‫اصالح آنها بسيار راحت تر مي باشد‪.‬‬
‫‪19‬‬
‫آزمون تلفيق باال به پايين يک رهيافت افزايش ي براي ساخت ساختار برنامه اي مي‬
‫باشد‪.‬‬
‫با مراجعه به شکل زير مي توان دريافت که در تلفيق عمقي در درجه ي اول تمام جزءها‬
‫در مسير اصلي کنترل ساختار با يکديگر تلفيق مي شوند‪ .‬انتخاب مسير اصلي بصورت‬
‫دلخواه انجام مي شود وبه بکارگيري ويژگي ها و مشخصات خاص بستگي دارد‪( .‬مثال‬
‫‪)M5,M2,M1‬‬
‫در تلفيق عرض ي تمام جزءها در هر سطح مستقيما با جزءهاي جايگزين تلفيق مي‬
‫شودند و بصورت افقي در امتداد ساختار به حرکت در مي آيند‪( .‬مثال ‪)M4,M3,M2‬‬
‫‪20‬‬
21
‫‪ ‬فرآيند تلفيق در مجموعه اي از پنج مرحله انجام مي شود که اين مراحل عبارتند‬
‫از‪:‬‬
‫‪ (1‬پيمانه اصلي کنترل به عنوان برنامه ي رابط مورد استفاده قرار مي گيرد و‬
‫جزءهاي جايگزين نيز در اين مرحله تمام جزءهاي تابع را جايگزين پيمانه اصلي‬
‫کنترل مي کنند‪.‬‬
‫‪ (2‬بسته به روش تلفيقي انتخاب شده جزءهاي جايگزيني فرعي فقط يک مرتبه‬
‫جايگزين جزءهاي واقعي مي شوند‪.‬‬
‫‪ (3‬با تلفيق شدن هريک از جزءها کار آزمودن نيز انجام مي شود‪.‬‬
‫‪ (4‬بعد از تکميل شدن هريک از مجموعه هاي در نظرگفته شده براي آزمون‪ ,‬مؤلفه‬
‫جايگزين ديگري جايگزين مؤلفه ي واقعي مي شود‪.‬‬
‫‪ (5‬آزمون رگرسيون را مي توان براي مطمئن شدن از اين امر که خطاي جديدي‬
‫بوجود نيامده است‪ ,‬انجام داد‪.‬‬
‫‪22‬‬
‫آزمون تلفيق پايين به باال ساخت و آزمودن را با پيمانه هاي اتميک (يعني جزءهاي‬
‫موجود در پايين ترين سطح در ساختار برنامه) آغاز مي کند‪.‬‬
‫راهبرد تلفيق پايين به باال ممکن است طبق مراحل زير اجرا شود‪:‬‬
‫‪ (1‬جزءهاي سطح پايين با يکديگر ترکيب مي شوند و خوشه هايي را بوجود مي‬
‫آوردند (که گاهي سازندگان ناميده مي شود) اين خوشه ها نيز کارکرد فرعي و خاص‬
‫نرم افزاري را اجرا مي کنند‪.‬‬
‫‪ (2‬برنامه ي رابط (برنامه ي کنترل براي کار آزمون) براي هماهنگ کردن ورودي و‬
‫خروجي موارد آزمون نوشته و تدوين مي شود‪.‬‬
‫‪ (3‬خوشه آزموده مي شود‪.‬‬
‫‪ (4‬برنامه هاي رابط کنار گذاشته مي شوند و خوشه ها هنگام حرکت به سمت باال‬
‫در ساختار برنامه با يکديگر ترکيب مي شوند‪.‬‬
‫‪23‬‬
‫آزمون رگرسيون فعاليتي است که به ما کمک مي کند تا مطمئن شويم تغييرات (به‬
‫واسطه ي انجام آزمون ها يا بواسطه ي ساير داليل موجود) رفتار ناخواسته يا خطاي‬
‫اضافي را ايجاد نکرده اند‪.‬‬
‫مجموعه ي برنامه هاي کاربردي آزمون رگرسيون (مجموعه ي فرعي برنامه هايي که بايد‬
‫اجرا شوند) داراي سه کالس متفاوت موارد آزمون مي باشند که اين سه نوع عبارتند‬
‫از‪:‬‬
‫‪ ‬نمونه بازنماي آزمون ها که تمام کارکردهاي نرم افزاري را مي آزمايد‪.‬‬
‫‪ ‬آزمون هاي اضافي که برآن گروه از کارکردهاي نرم افزاري تأکيد دارند که احتماال‬
‫تحت تأثير تغييرات انجام شده قرار مي گيرند‪.‬‬
‫‪ ‬آزمون هايي که بر جزءهاي نرم افزاري تغييريافته تأکيد دارند‪.‬‬
‫‪24‬‬
‫اين آزمون به عنوان مکانيسم اندازه گيري برای پروژه هاي بحراني از لحاظ زمان طراحي شده‬
‫است و امکان ارزيابي پروژه برمبناي تکرار را براي تيم نرم افزاري فراهم مي کند‪ .‬رهيافت آزمون‬
‫دود فعاليت هاي زير را پوشش مي دهد‪:‬‬
‫‪ (1‬جزءهاي نرم افزاري تبديل شده به برنامه که برای تشکيل يک ساختمان با يکديگر‬
‫تلفيق مي شوند‪ .‬اين ساختمان شامل فايل تمام داده ها‪ ,‬کتابخانه ها‪ ,‬پيمانه هايي با‬
‫قابليت استفاده مجدد و شامل جزءهاي طراحي شده ي الزم براي اجراي يک يا چند کارکرد‬
‫محصول مي باشد‪.‬‬
‫‪ (2‬مجموعه اي از آزمونها که براي شناسايي خطاهايي طراحي شده اند که اين خطاها مانع‬
‫از آن مي شوند که اين ساختمان وظايف خود را به طرز صحيحي انجام دهد‪.‬‬
‫‪ (3‬اين ساختمان با ساير ساختمان ها تلفيق مي شوند و در کل محصول آزمون دود‬
‫بصورت روزانه انجام مي شود‪.‬‬
‫‪25‬‬
‫‪ ‬آزمون دود هنگام استفاده در پروژه هاي پيچيده و حساس به زمان مهندس ي نرم‬
‫افزاري مزيت ها زير را در برخواهد داشت‪:‬‬
‫‪ ‬ريسک تلفيق به حداقل مي رسد‪.‬‬
‫‪ ‬کيفيت محصول نهايي بهبود مي يابد‪.‬‬
‫‪ ‬تشخيص خطا و تصحيح خطا آسان تر و ساده تر مي شود‪.‬‬
‫‪ ‬پيشرفت براي انجام ارزيابي آسان تر است‪.‬‬
‫‪26‬‬
‫نقطه ضعف اصلي روش تلفيقي باال به پايين آن است که اين روش به جزءهاي‬
‫جايگزين نياز دارد و مشکالت خاص آزمون نيز در ارتباط با اين جزءها وجود دارد‪.‬‬
‫عيب اصلي روش تلفيقي پايين به باال آن است که اين برنامه به عنوان يک موجوديت‬
‫تا زمان اضافه شدن آخرين پيمانه وجود نخواهد داشت‪.‬‬
‫‪27‬‬
‫‪‬يک پيمانه بحراني يک يا چند عدد از ويژگي هاي زير را دارا مي باشد‪:‬‬
‫‪ (1‬چندين عدد از شرايط و ويژگي هاي نرم افزاري را مورد بررس ي قرار مي دهد‪.‬‬
‫‪ (2‬داراي کنترل در سطح باال مي باشد‪.‬‬
‫‪ (3‬پيچيده يا مستعد خطا مي باشد‪.‬‬
‫‪ (4‬داراي شرايط و ويژگي هاي عملکردي محدود و مشخص مي باشد‪.‬‬
‫پيمانه هاي بحراني بايد تا حد ممکن في الفور مورد آزمون قرار گيرند‪.‬‬
‫‪28‬‬
‫تصديق و تأييد اعتباري‪ ,‬زماني حاصل مي شود که وظايف انجام شده توسط نرم‬
‫افزار بصورت منطقي مورد قبول و مطابق با انتظارات مشتري باشد‪.‬‬
‫انتظارات منطقي در مشخصات نيازمندي هاي نرم افزاري –يعني در سندي که‬
‫توصيف کننده ي تمام ويژگي هاي آشکار نرم افزار مي باشد‪ -‬تعريف شده است‪ .‬در اين‬
‫مشخصات بخش ي به نام معيار تصديق گنجانده شده است‪ .‬اطالعات موجود در اين‬
‫بخش مبناي روش آزمون تصديق را تشکيل مي دهند‪.‬‬
‫‪29‬‬
‫تصديق و تأييد نرم افزار از طريق مجموعه اي از آزمون هاي جعبه ي سياه که نشان‬
‫دهنده ي مطابقت با شرايط مي باشد‪ ,‬حاصل مي شود‪ .‬در طرح آزمون انواع آزمون‬
‫هايي که قرار است انجام شود به صورت خالصه بيان شده و رويه اي برای آزمون همه‬
‫موارد آزمودني تعريف خواهد شد‪ ,‬مواردي که تطابق با شرايط مورد استفاده و‬
‫خواسته ها در آن لحاظ شده باشند‪.‬‬
‫‪30‬‬
‫هدف از اين بازبيني مطمئن شدن از اين امر است که تمام اجزاء پيکربندي نرم افزار‬
‫به طرز صحيحي تکامل و توسعه يافته اند‪ ,‬به طرز صحيحي فهرست بندي شده اند و‬
‫براي ايجاد مرحله ي حمايت از طول عمر نرم افزار‪ ,‬ويژگي هاي الزم را دارا مي باشند‪.‬‬
‫‪31‬‬
‫‪ ‬آزمون آلفا (يا الف) در محل توسعه و تکميل نرم افزار توسط مشتري انجام مي‬
‫شود‪ .‬نرم افزار در شرايط زماني و مکاني طبيعي مورد استفاده قرار مي گيرد که در اين‬
‫حالت فرد تکميل کننده ي نرم افزار به آزمودن نرم افزار در حضور مشتري مي پردازد و‬
‫خطاها و مشکالت کاربرد را ثبت مي کند‪.‬‬
‫‪ ‬آزمون بتا (يا ب) در محل مشتري و توسط کاربر نهايي نرم افزار انجام مي شود‪ .‬در‬
‫اين آزمون بر خالف آلفا‪ ,‬فرد تکميل کننده ي نرم افزار به طور کلي حضور ندارد‪ .‬بنابر‬
‫اين آزمون بتا کاربرد زنده ي نرم افزار در محيطي مي باشد که شخص تکميل کننده ي‬
‫نرم افزار‪ ,‬کنترلي برآن محيط ندارد‪.‬‬
‫‪32‬‬
‫آزمون سيستم در واقع مجموعه اي از آزمون هاي مختلف مي باشد که هدف اوليه‬
‫ي آنها آزمون سيستم کامپيوتري مي باشد‪ .‬اگر چه هريک از اين آزمون ها اهداف‬
‫مختلف و متفاوتي را دارند‪ ,‬اما تمام آنها براي تصديق تلفيق درست اجزاي سيستم با‬
‫يکديگر و تصديق عملکرد تعيين شده در وظايف انجام مي شوند‪.‬‬
‫‪33‬‬
‫آزمون بازيابي يا ترميمي‪ ,‬يک آزمون سيستمي است که نرم افزار را وادار مي کند تا به‬
‫طرق مختلف خراب شود و تصديق مي کند که ترميم و بهبودي به طرز صحيحي انجام‬
‫شده است‪ .‬اگر بهبود خودکار باشد‪ ,‬صحت شروع مجدد صحت مکانيسم هاي کل‬
‫بازرس ي‪ ,‬صحت بهبود داده ها و صحت شروع مجدد مورد ارزيابي قرار خواهد گرفت‪.‬‬
‫اگر بهبود به مداخالت انساني نياز داشته باشد‪ ,‬ميانگين زمان براي ترميم‪ ,‬مورد ارزيابي‬
‫قرار مي گيرد‪.‬‬
‫‪34‬‬
‫آزمون امنيتي سعي دارد به تصديق و تأييد اين امر بپردازد که مکانيسم هاي حفاظتي‬
‫ايجاد شده در سيستم در حقيقت از نفوذ غيرقانوني افراد جلوگيري مي کنند و از‬
‫سيستم محافظت مي نمايند‪.‬‬
‫در طول انجام آزمون امنيت‪ ,‬فرد آزمون کننده نقش افرادي را بازي مي کند که مايل‬
‫هستند در سيستم نفوذ کنند‪.‬‬
‫‪35‬‬
‫آزمون هاي فشار برای مواجه ساختن برنامه ها با موقعيت هاي غيرعادي طراحي مي‬
‫شوند‪.‬‬
‫آزمون فشار سيستم را به شکلي اجرا مي کند که سيستم در آن حالت به منابع در‬
‫مقادير‪ ,‬دفعات يا حجم غيرعادي نياز خواهد داشت‪.‬‬
‫‪ ‬نسخه اي از آزمون فشار‪ ,‬تکنيکي است که آزمون حساسيت ناميده مي شود‪ .‬آزمون‬
‫حساسيت سعي دارد ترکيبات داده اي مختلف در محدوده ي گروه هايي از داده هاي‬
‫معتبر را که بي ثباتي يا فرآيند نادرست را بوجود مي آوردند‪ ,‬کشف کند‪.‬‬
‫‪36‬‬
‫آزمون عملکرد براي آزمون کردن عملکرد نرم افزار در زمان کار و در محدوده ي بافت‬
‫سيستم تلفيقي طراحي شده است‪ .‬آزمون عملکرد در تمام مراحل فرآيند آزمون انجام‬
‫مي شود‪.‬‬
‫‪37‬‬
‫اشکال زدايي در نتيجه انجام موفق آزمون حاصل مي گردد‪ .‬هنگامي که يکي از موارد‬
‫آزموني خطايي را کشف مي کنند‪ ,‬اشکال زدايي يعني فرآيند از بين بردن و برطرف‬
‫ساختن خطاها نيز به دنبال اين کشف انجام مي شود‪.‬‬
‫‪38‬‬
‫با مراجعه به شکل مشخص مي گردد که فرآيند اشکال زدايي با اجراي موارد آزمون‬
‫آغاز مي شود‪.‬‬
‫‪39‬‬
‫اشنايدرمن نظريه ي خود در ارتباط با منابع اشکال زدايي بصورت زير بيان مي کند‪:‬‬
‫اشکال زدايي يکي از خسته کننده ترين بخش هاي برنامه نويس ي مي باشد‪ .‬اشکال زدايي‪,‬‬
‫مشتمل بر عناصر مسئله يا حل معما است که با شناخت خطا و اشتباه انجام شده از‬
‫سوي شما هماهنگ مي باشد‪.‬‬
‫‪40‬‬
‫اشکال زدايي داراي هدفي فوق العاده است و اين هدف عبارت است از‪:‬‬
‫« يافتن و تصحيح عامل خطاي نرم افزاري »‬
‫بطور کلي روش هاي اشکال زدايي عبارتند از‪:‬‬
‫‪ (1‬نيروي مادي‬
‫‪ (2‬عمل برگشت و جستجوي مجدد‬
‫‪ (3‬حذف عامل خطا‬
‫‪41‬‬
‫‪ ‬ون وک سه سؤال ساده ي ذيل را مطرح مي کند و از هريک از مهندسين نرم افزار‬
‫مي خواهد که قبل از اصالح خطا که حذف کننده ي عامل بوجودآورنده خطا مي‬
‫باشد‪ ,‬اين سؤاالت را از خود بپرسند‪:‬‬
‫‪ (1‬آيا عامل خطا مجددا در بخش ديگري از برنامه نيز بوجود آمده است؟‬
‫‪ (2‬با تغييري که من قصد انجام آن را دارم کداميک از خطاهاي بعدي بوجود‬
‫خواهد آمد؟‬
‫‪ (3‬براي جلوگيري از بوجودآمدن اين خطا در وهله ي اول چه کاري مي توانيم دهيم؟‬
‫‪42‬‬
43