3- آزمون جعبه سفيد
Download
Report
Transcript 3- آزمون جعبه سفيد
1
آزمون نرم افزار چيست؟ هدف طراحي يک سري موارد آزمون است که يافتن خطاها
را به گونه اي مناسب پوشش دهد .اين تکنيک ها راهنماي سيتماتيکي براي طراحي
آزمون هايي مي کنند که)1 :منطق دروني اجزاي نرم افزاري را بررس ي کرده و )2حوزه
ورودي و خروجي برنامه را براي مشخص کردن خطاهاي عملکرد برنامه ,مي آزمايد.
چه کس ي عهده دار آزمون نرم افزار است؟ مهندس نرم افزار و با پيشرفت فرآيند
ممکن است متخصصان آزمون نيز درگير شوند.
2
چرا انجام اين امر از اهميت برخوردار است؟ به منظور يافتن بيشترين مقدار
احتمالي خطا ,آزمون ها بايد به صورت نظام مند صورت گرفته و موارد آزمون با
استفاده از فنون اصولي طراحي شوند.
مراحل کار چيست؟ نرم افزار از دو ديدگاه مختلف آزموده مي شود)1 :منطق دروني
برنامه با استفاده از آزمون White Boxو فنون آن ,اجرا مي شود)2 .مقتضيات
نرم افزاري با استفاده از فنون طراحي مورد آزمون Black Boxآزموده مي شوند.
در هر دو مورد ,هدف يافتن حداکثر خطا با حداقل تالش و زمان است.
محصول کار چيست؟ مجموعه اي از موارد آزمون ,که براي اجراي مقتضيات بروني و
منطق دروني طراحي شده اند ,طرح و ثبت شده است.
3
در واقع آزمون مرحله اي از فرآيند نرم افزاري است که مي توان آن را بيشتر ويران
کننده دانست تا سازنده.
آزمون مستلزم اين است که توليد کننده نکات و عبارات از پيش شناخته شده اي را
که در مورد درست بودن نرم افزار تازه توليد دارد ,دور ريخته و بر برخورد عقايدي
که بعد از برمال شدن خطاها بوجود مي آيد ,غلبه کند.
4
آزمون ,فرآيند اجراي يک برنامه به قصد يافتن خطاهاست.
يک مورد آزمون خوب آن است که به احتمال باال يک خطاي کشف نشده را بيابد.
يک آزمون موفق ,آزموني است که يک خطاي نامشخص را بيابد.
5
تمام آزمون ها بايد تا رسيدن به نيازمنديهاي موردنظر مشتري و مصرف کننده ,قابل
پيگيري باشند.
آزمون ها بايد مدت طوالني قبل از شروع آن ,برنامه ريزي شوند .اين کار را مي توان
به محض تکميل شدن مدل شرايط مورد نظر ,شروع نمود.
به کارگيري اصل پارتو در مورد آزمون نرم افزار.
آزمون بايد از جزء شروع شده و به طرف آزمونهايي در سطح وسيع برسد.
آزمون هاي جامع و فراگير ممکن نيست.
براي اينکه آزمون بيشترين تأثير را داشته باشد ,بايد توسط يک شخص ثالث
مستقل صورت گيرد.
6
آزمون پذيري صرفا چگونگي انجام آزمون برروي برنامه کامپيوتري بدون زحمت است.
فهرست زير مجموعه اي از مشخصه ها را بيان مي دارد که نهايتا به يک نرم افزار
قابل آزمون مي رسد:
قابليت عمل :هر چه بهتر کار کند ,بهتر مي توان آنرا آزمون نمود.
قابليت مشاهده :آن چه که مي بينيد ,آن چيزي است که آزمون مي کنيد.
قابليت کنترل :هرچه بهتر نرم افزار را کنترل کنيم ,بهتر مي توان آن را خودکار و بهينه
ساخت.
7
قابليت تجزيه پذيري :با کنترل دامنه آزمون مي توانيم سرع تر کشکالت را مجزا
نموده و آزمون هاي هوشمند مجددي را انجام دهيم.
سادگي :هرچه چيز کمتري براي آزمون وجود داشته باشد ,سريع تر مي توانيم آنرا
بيازمائيم.
ثبات :هرچه تغييرات کمتر باشد ,اختالل در آزمون کمتر است.
قابليت درک و شناخت :هرچه اطالعات بيشتري داشته باشيم ,هوشمندانه تر آنرا مي
آزماييم.
8
کاتر ,فالک و گوين مراتب زير را در مورد يک آزمون خوب بيان مي کنند:
.1
يک آزمون خوب داراي احتمال يافتن خطاهاي بيشتري است.
.2يک آزمون خوب داراي زوايد و حاشيه نيست .زمان و منابع موجود براي آزمون
محدودند.
.3يک آزمون خوب بايد بهترين از هر نظر باشد.
.4يک آزمون خوب نه بايد زياد ساده و نه زياد سخت باشد.
9
هر محصول مهندس ي ساز را مي توان به يکي از دو روش زير امتحان نمود:
.1
با آگاهي از کارکرد خاص ي که اين محصول براي آن توليدشده ,آزمون هايي را مي
توان انجام داد که هر کارکرد را از نظر عملي بودن کامال تشريح کند.
.2با آگاهي از کارهاي صورت گرفته داخلي در هر محصول مي توان آزمون هايي را
انجام داد که از جور شدن همه کارها اطمينان يابيم ,يعني عمليات داخلي طبق
مشخصات بوده و همه اجزاي دروني به اندازه کافي به کار گرفته شده اند.
آزمون جعبه سياه اشاره دارد به آزموني که بر رابط نرم افزاري صورت مي گيرد.
آزمون جعبه سفيد درمورد بررس ي دقيق جزييات رويه اي کارصورت مي گيرد.
10
يک روش طراحي مورد آزموني است که از ساختار کنترل طراحي رويه براي بدست آوردن
موارد آزمون استفاده مي کند .با استفاده از روش هاي آزمون جعبه سفيد مهندس
نرم افزار مي تواند موارد آزموني را بدست آورد که:
)1تضمين کنند که همه مسيرهاي مستقل داخل يک پيماننه حداقل يکبار به کار گرفته
شده اند.
)2همه تصميمات منطقي را در مورد طرفين درست و غلط آنها اجرا کند.
)3همه لوپ ها را در سرحدات آنها و در داخل سرحدات عمليات آنها اجرا کند.
)4تمام ساختارهاي اطالعاتي داخلي را براي تضمين اعتبارشان اجرا سازد.
11
آزمون مسير پايه يک تکنيک آزمون جعبه سفيد است.
اين روش ,طراح مورد آزموني را قادر مي سازد تا يک ارزيابي پيچيده منطقي را از طرح
رويه داشته و از اين ارزيابي به عنوان راهنمايي براي تعريف مجموعه مقدماتي
مسيرهاي اجرايي استفاده کند.
12
گراف جريان با استفاده از نشانه گذاري آمده در شکل زير ,جريان منطقي کنترل را
مشخص مي کند.
13
اين متريک نرم افزاري است که اندازه کمي پيچيدگي منطقي يک برنامه را مهيا مي
سازد.
يک مسير مستقل هر مسيري در برنامه است که حداقل يک مجموعه جديدي از
حاالت پردازش ي با وضعيت جديدي را معرفي مي کند.
اگر بتوان آزمون هايي را طراحي کرد که اجراي يک مجموعه پايه را به اجبار انجام
دهند ,هر حالت از برنامه به طور تضميني,حداقل يکبار و تمام/شرطي از نظر درست
و غلط بودنش اجرا مي گردد.
14
پيچيدگي سيکلوماتيک به يکي از سه شکل زير محاسبه مي شود:
)1تعدادمناطق نمودار جريان که با پيچيدگي سيکلوماتيک ارتباط دارند.
)2پيچيدگي سيکلوماتيک V(G) ,براي گراف جريان Gبصورت زير تعريف
شده:
V(G) = E – N + 2
که در آن Eتعداد لبه هاي نمودار جريان و Nتعداد گره ها مي باشد.
V(G) )3براي نموار جريان ) (Gبصورت زير تعريف مي شود:
V(G) = P + 1
که در آن Pتعداد گره هاي مورد اسناد در نمودار جريان Gاست.
15
روش آزمون مسير ابتدايي را مي توان در طراحي رويه با کد منبع بکار گرفت.
مراحل زير را مي توان براي نتيجه گيري محموعه مقدماتي بکار گرفت:
(1استفاده از طرح يا کد به عنوان پايه و کشيدن نمودار مربوطه جريان.
(2تعيين پيچيدگي سيکلوماتيک نمودار جريان بدست آمده.
(3تعيين مجموعه اوليه مسيرهاي مستقل خطي.
(4آماده سازي مواردي که اجراي هر مسير را در مجموعه مقدماتي ,اجباري مي
سازند.
16
ماتريس گراف يک ماتريس مربعي است که اندازه اش (يعني تعداد رديف ها و ستون
ها) برابر تعداد گره هاي روي نمودار جريان است.
هر ستون و رديف با گره اي
مشخص مرتبط است و مقادير
ورودي ماتريس با ارتباطات
بين گره ها مرتبطند.
17
با افزودن يک وزن اتصال به هر مدخل ماتريس ,ماتريس گراف يک ابزار دقيق و
قدرتمند براي ارزيابي ساختار کنترلي برنامه در طول آزمون مي شود.
18
وزن اتصال ها مي تواند داراي خصوصيات زير باشد:
احتمال اينکه يک ( Linkلبه) اجرا شود.
زمان پردازش که در طول پيمايش يک اتصال سپري مي شود.
حافظه الزم در طول پيمايش يک اتصال
منابع الزم در طول پيمايش يک اتصال
19
تکنيک آزمون مسير مقدماتي يکي از چند تکنيک آزمون کنترل ساختار است .در اين
بخش انواع ديگري از آزمون ساختار مورد بحث قرار مي گيرند .اين آزمون گسترش
يافته ,کيفيت آزمون جعبه سفيد را بهبود بخشيده و آن را به طور کامل در برمي
گيرد.
20
يک روش طراحي مورد آزمون است که شرايط منطقي موجود در پيمانه برنامه را مي
آزمايد .يک وضعيت ساده ,يک متغير بولين يا عبارت رابطه اي است که احتماال با
يک اپراتور NOTهمراه است .عبارت ربطي شکل زير را به خود مي گيرد:
E1 <Relational-Operator> E2
که در آن E1و E2عبارات جبري و قسمت عملگر رابطه اي يکي از موارد زير است:
“<” . ”≥“ , ”>“ , ”≠“ , ”≤“ ,وضعيت مرکب متشکل از دو يا چند وضعيت
ساده ,اپراتورهاي بولين و پرانتزهاست .فرض مي کنيم که اپراتورهاي بولين که در
وضعيت مرکب مجازند شامل (“|”) NOT )”¬“( ,AND )&( ,ORباشد .شرط
بدون عبارات ربطي را عبارت بولين مي نامند.
21
بنابر اين انواع خطاهاي يک شرط شامل موارد زير هستند:
خطاي عملگر بولين (نادرست /از قلم افتاده /اپراتورهاي اضافي بولين)
خطاي متغير بولين
خطاي پرانتز بولين
خطاي اپراتور رابطه اي
خطاي عبارت محاسباتي
22
اين روش مسيرهاي آزموني يک برنامه را طبق محل تعاريف و کاربرد متغيرها در
برنامه ,انتخاب مي کند.
يک شيوه ساده آزمون جريان داده ها عبادتست از درخواست ايت که هر زنجيره
تعريف-کاربرد (يا زنجيره )DUحداقل يکبار پئشش داده مي شود .ما به اين راهبرد,
راهبر آزمون DUمي گوئيم.
23
آزمون حلقه ,يک تکنيک آزمون جعبه سفيد است که منحصرا روي اعتبار ساختمان
هاي حلقه متمرکز مي شود .مي توان چهار کالس از حلقه ها را تعيين نمود :حلقه
هاي ساده ,حلقه هاي تودرتو ,متسلسل(به هم پيوسته) و غيرساخت يافته.
24
آزمون جعبه سياه ,مهندس نرم افزار را قادر مي سازد مجموعه اي از وضعيت هاي
ورودي را بدست آورد که به طور کامل همه نيازمندي هاي کارکردي را براي برنامه
اجرا خواهند کرد.
آزمون جعبه سياه سعي دارد خطاهايي را در گروه هاي زير پيدا کند:
(1کارکردهاي نادرست يا گم شده
(2خطاهاي رابط
(3خطاهاي ساختاهاي داده اي يا دسترس ي به پايگاه هاي داده اي بيروني
(4خطاهاي رفتاري يا عملکردي
(5خطاهاي شروع و خاتمه.
25
اولين مرحله در آزمون جعبه سياه عبارتست از شناخت اشيايي که در نرم افزار مدل
سازي شده و ارتباطاتي که اين اشياء را به هم مرتبط مي کند.
آزمون نرم افزار با ايجاد نموداري از اشياي مهم و ارتباطاتشان آغاز شده و سپس يک
سري آزمون تعبيه مي شود که نمودار را تحت پوشش قرار مي دهد به طوري که هر ش ي
و رابطه آن به اجرا درآمده و خطاها مشخص مي شوند.
26
27
بيزر چند روش آزمون رفتار را توصيف مي کند که مي توانند از گراف ها استفاده
کنند:
مدل سازي جريان تراکنش
مدل سازي حالت محدود و معين
مدل سازي جريان داده ها
مدل سازي زمان بندي
28
تقسيم و تجزيه هم ارزي يک روش از آزمون جعبه سياه است که قلمرو ورودي برنامه
را در گروه هاي مختلفي از داده ها تقسيم مي کند که از آنها موارد آزمون بدست مي
آيند.
طراحي مورد آزمون براي تقسيم هم ارزي بر اساس ارزيابي گروه هاي هم ارز براي
يک شرط ورودي است.
29
بنا به داليلي که کامال روشن نيست ,بيشتر خطاها در سرحدات دامنه ورودي رخ مي
دهند تا در مرکز .به همين داليل است که تحليل مقدار سرحد( )BVAبه عنوان يک
تکنيک آزموني اراده شده است.
به جاي اينکه منحصرا بر شرايط ورودي متمرکز شويم BVA ,موارد آزموني بدست
مي آورد که از دامنه خروجي نيز هستند.
30
رهنمودهاي مربوط به :BVA
(1اگر يک شرط ورودي ,طيفي را مشخص کند که بوسيله مقادير aو bمحدود
شده اند ,موارد آزموني بايد طراحي شوند که به ترتيب باال و پايين مقادير aو b
باشند.
(2اگر يک شرط ورودي چند مقدار را مشخص کند ,موارد آزموني بايد ارائه شوندکه
حداقل و حداکثر ارقام را آزمايش نمايند .مقاديري که درست باال و پايين مقادير
حداقل و حداگثر هستند نيز ,آزمون مي شوند.
(3رهنمودهاي 1و 2شرايط ورودي را در شرايط خروجي بکار گيريد.
(4اگر ساختار داده اي برنامه داخلي سرحدات را مشخص نموده باشد ,مطمئن
باشد که يک مورد آزموني براي آزمون ساختار داده اي در سرحد آن طراحي مي
شود.
31
با اجراهاي متعددي از يک مشخصه يکسان ,موارد آزموني با استفاده از فنون ديگر
جعبه سياه طراحي مي شوند که به عنوان ورودي براي هر نسخه از نرم افزار
هستند .اگر خروجي هر نسخه يکسان باشد ,فرض مي شود که همه اجراها درست
هستند .اگر خروجي مختلف بود ,هر برنامه مورد بررس ي قرار مي گيرد تا معلوم شود
آيا نقض ي در يک يا چند نسخه وجود دارد که مسئول اين اختالف است يا خير .در
اکثر موارد ,مقايسه خروجي ها را مي توان با ابزار خودکار انجام داد.
32
مي توان آزمون آرايه متعامد را در مسايلي بکار گرفت که در آن دامنه ورودي نسبتا
کوچک اما براي انطباق با آزمون جامعه بسيار بزرگ باشند.
فادکه نظريه هندس ي از موارد آزمون احتمالي مربوط به XوYو Zرا بيان مي دارد که
در شکل آمده است .با توجه به شکل ,ممکن است يک داده در هربار در طول يک رشته
از محور ورودي تغيير کند.
33
34
به هنگام آزمون آرايه متعامد,
يک آرايه متعامد L9از موارد
آزموني ايجاد مي شود .اين
آرايه داراي خاصيت توازن
است ,يعني موارد آزموني
بصورت يکنواخت در سراسر
دامنه آزمون پخش مي شوند.
35
-1-7آزمون رابط هاي گرافيکي کاربر ( :)GUIبه خاطر اجزاي قابل استفاده مجدد که
به عنوان بخش ي از محيط هاي توليدي GUIمهيا شده اند ,ايجادرابط کاربر زمان
کمتري گرفته و دقيق تر نيز هست .اما در عين حال پيچيدگي GUIنيز افزايش يافته
که منجر به مشکالت بيشتري در طراحي و اجراي موارد آزمون شده است.
از آن جا که بيشتر GUIهاي مدرن ظاهر وحاالت يکساني دارند ,يک سري آزمون
هاي استاندارد ارائه شده اند .گرافهاي مدل سازي حالت محدود ,ممکن است براي
بدست آوردن يک سري آزمون ها استفاده شوندکه اشياي برنامه اي و داده اي
خاص ي را که مربوط به GUIهستند ,مورد نظر قرار مي دهد.
36
ماهيت توزيع شده ي محيط هاي ,C/Sموضوعات عملکردي مربوط به پردازش
تراکنش ها ,حضور بالقوه يک سري پايگاه هاي سخت افزاري مختلف ,پيچيدگي هاي
ارتباط شبکه اي ,نياز خدامات به کاربران متعدد از يک پايگاه داده اي مرکزي و
نيازمندي هاي هماهنگي که برروي خادم اعمال شده ,همگي کار آزمون معماريC/S
و نرم افزاري که در آن قرار گرفته را نسبت به برنامه هاي متکي ()Standalone
مسکل تر مي سازند.
37
اين آزمون مي تواند در دو مرحله صورت گيرد .اولين مرحله ,بازنگري و بازرس ي است
که اسناد را از نظر ويرايش ي بازبيني مي کند .دومين مرحله ,آزمون زنده است که از
مستندات در ارتباط با استفاده از برنامه واقعي استفاده مي کند.
38
مي توان يک راهبرد چهار مرحله اي را پيشنهاد نمود:
)1آزمون وظيفه :اولين مرحله در آزمون نرم افزار بدون وقفه عبارتست از آزمون هر
وظيفه بطور مستقل ,يعني آزمون هاي جعبه سفيد و سياه طراحي شده و براي
همان وظيفه به اجرا درمي آيند.
)2آزمون رفتاري :با استفاده از مدل هاي سيستمي که توسط ابزارهاي CASEايجاد
شده اند ,مي توان کارکرد سيستم برون وقفه را شبيه سازي نموده و عملکرد آن
را در اثر حوادث خارجي بررس ي نمود.
39
)3آزمون بين وظايف :کارهاي ناهمگام که از نظر برقراري ارتباط با يکديگر شناسايي
شده اند با پردازش و ارزيابي مختلف داده ها صورت مي گيرند که نهايتا منجر به
اين امر مي شود که آيا خطاهاي ناهمگام بين وظيفه اي رخ مي دهند يا خير؟
)4آزمون سيستم :نرم افزار و سخت ابزار با هم تلفيق مي شوند و يک سري آزمون هاي
سيستم روي آنها صورت مي گيرد تا خطاهاي موجود در رابط نرم افزار /سخت
افزاري مشخص شود.
40