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