2-10- ویژگی های یک تست خوب………………….. 29

2-11- طراحی نمونه های آزمایش…………………… 30

2-11-1 تست جعبه سیاه………………… 31

2-11-2 تست جعبه سفید …………………31

2-11-3 آزمایش ساختاركنترل…………………. 31

2-11-4 آزمایش واحد…………………. 31

2-11- 5 خطاهای متداول محاسبه که اغلب مشاهده می شوند…… 32

2-12- آزمایش یکپارچه سازی………………… 32

2-13- آزمایش رگرسیون………………… 33

2-14- متدولوژی های مربوط به تست رگرسیون……….. 35

2-14-1- اجرای مجدد همه ی تست ها …………………35

2-14-2- انتخاب تست رگرسیون …………………36

2-14-3- کاهش مجموعه تست………………… 36

2-14-4- اولویت بندی موارد تست …………………36

2-15- اولویت بندی………………….. 37

2-15-1- مقدمه ای بر اولویت بندی………………….. 37

2-15-2 – معیارهای اولویت دهی………………….. 38

2-15-3- اولویت بندی موارد تست………………….. 39

2-16- متریک…………………… 39

2-16-1- مقدمه ای برای متریک…………………… 39

2-17- متریک های تست نرم افزار…………………. 40

2-17-1- خواص متریک ها در شرایط ایده آل………… 40

2-18- معیار و متریک در تست نرم افزار…………………. 43

2-18-1- مراحل انجام کاردر فرایند اندازه گیری………………….. 43

2-19- متریک های آزمون…………………. 43

2-20- مزایای استفاده از متریک ها………………… 44

2-21- شبکه های بیزی………………….. 45

2-21-1- استنتاج با استفاده از توزیع توام كامل…………………. 45

2-21-2- مشكلات استنتاج با توزیع توام كامل و راه حل آن ها….. 47

2-21-3- مثالی از شبکه های بیزی………………….. 48

2-22- مفاهیم شبكه های بیزی………………….. 50

2-22-1- نمایش توزیع توام كامل…………………. 50

2-22-2- رابطه های استقلال شرطی در شبكه های بیزی……….. 52

2-22-3- نمایش كارآمد توزیع های شرطی………………….. 53

2-23- یادگیری شبكه های بیزی………………….. 54

2-24- استنتاج دقیق در شبكه های بیزی………………….. 55

2-25- استنتاج بوسیله محاسبه تك تك عناصر احتمالی…….. 55

2-26- الگوریتم حذف متغیر…………………. 57

2-27- استنتاج تقریبی در شبكه های بیزی………………….. 58

پایان نامه

2-28- روش های نمونه گیری مستقیم…………………. 58

2-28-1- نمونه گیری با رد كردن…………………. 59

2-28-2- نمونه گیری وزن دار…………………. 60

2-28-3- نمونه گیری زنجیره ماركوفی…………………. 61

2-28-4- جمع بندی شبکه های بیزی………………….. 62

2-29- تحولات انجام شده تا کنون………………….63

فصل سوم : روش تحقیق

3- انگیزه و هدف ما از ارائه این رویکرد…………………. 66

3-1- رویکرد پیشنهادی………………….. 68

3-1-1- روند کلی در رویکرد پیشنهادی………………….. 68

3-2- محاسبه و استخراج شاخص ها برای ماژول ها…………………70

3-3 – معیارهای رویکرد پیشنهادی………………….. 70

3-3-1- اهمیت هر ماژول…………………. 71

3-3-2- احتمال ابتلا به خطای ماژول…………………. 72

3-3-3- اثرگذاری خطای ماژول بر دیگر ماژول ها………………… 72

3-3-4- شدت خطای هر ماژول…………………. 73

3-4- شاخص های وزن دهی به ماژول ها………………… 74

3-5- ساخت شبکه بیزی………………….. 74

3-6- ایجاد ساختار گراف………………….. 75

3-7- محاسبه جداول احتمال شرطی………………….. 76

3-8- تبدیل اندازه ی كیفی صفت ها به مقادیركمی……… 79

3-9-روش اول برای صفت های سه حالته…………………. 79

3-9-1- مثالی از روش اول برای صفت های سه حالته……. 80

3-10- روش دوم برای صفت های سه حالته…………………. 81

3-10-1- مثالی از روش دوم برای صفت های سه حالته…………. 81

3-11- تبدیل اندازه ی كیفی صفت های غیرهم وزن به مقادیركمی………………….. 82

3-11-1- مثالی از روش تبدیل اندازه ی كیفی صفت های غیرهم وزن به مقادیركمی……….. 83

3-12- پیاده سازی مدل تست کارآمد نرم افزار با استفاده از نرم افزار Netica………………….

3-13- پركردن جدول احتمال شرطی با استفاده از كد نویسی………………….. 87

3-14- نمونه هایی از جداول احتمال شرطی فاکتورهای تست و کارآمدی اولویت بندی……. 90

3-15- پیاده سازی رویکرد پیشنهادی در مثال واقعی………………….. 94

فصل چهارم : محاسبات و یافته های تحقیق

1-4- ارزیابی مدل پیشنهادی………………….. 97

2-4- متریک (APFD)…………………

4-3- اولویت بندی با کمک تکنیک شبکه های بییزی…………………98

4-4- اولویت بندی با تکنیک اصلی………………… 101

4-5- اولویت بندی با تکنیک تصادفی…………………. 102

4-6- مقایسه روش های اولویت بندی با روش پیشنهادی………………….. 103

فصل پنجم: نتیجه گیری و پیشنهادات

1-5- نتیجه گیری………………….. 108

2-5 پیشنهادات آینده………………… 110

پیوست الف: واژه نامه ی فارسی به انگلیسی………………….. 111

پیوست ب: واژه نامه ی انگلیسی به فارسی………………….. 114

منابع و ماخذ…………………. 117

چکیده:

رگرسیون این اطمینان را حاصل می کند كه تغییرات بر روی رفتار كنونی نرم افزار اثر نامطلوبی نگذاشته است. یكی از تكنیك های تست رگرسیون تكنیک اولویت بندی است كه باعث افزایش كارایی تست می شود. تکنیک های اولویت بندی موارد تست در بهبود تشخیص نرخ خطای تست رگرسیون موثراند. با این حال، بیشتر تکنیک های پیشنهاد شده قبلی برای خطاهای تشخیص داده شده در طول تست، شدت برابری را در نظر می گیرند که در عمل اینگونه نیست. علاوه بر این، بیشتر تکنیک های موجود برروی اطلاعات قبلی بدست آمده از اجرای موارد تست قبلی یا تغییر در کد برنامه تکیه می کنند و تعداد کمی از آنها می توانند به طور مستقیم برای تست غیر رگرسیون استفاده شوند. در این رساله، با هدف بهبود نرخ تشخیص خطا برای تست رگرسیون و همچنین تست غیر رگرسیون، پیشنهاد کردیم یک رویکرد جدید اولویت بندی موارد تست را با استفاده از شبکه های بیزی با تکیه بر تجزیه تحلیل ساختار برنامه تحت تست. برای پیاده سازی رویکرد پیشنهادی، ما از ابزار Netica و همچنین روش کد نویسی در نرم افزار MATLAB استفاده می کنیم. و همچنین از متریک APFD (متوسط درصد شناسایی خطا) جهت ارزیابی نرخ تشخیص خطا در این رساله تكیه می کنیم. و روش مبتنی بر شبکه های بیزی بر اساس تجزیه و تحلیل ساختار برنامه را ارائه خواهیم نمود. در نهایت با كمك یك بررسی موردی، كاربرد روش خود را نشان می دهیم. نتایج مقایسه تكنیك پیشنهادی با سایر تكنیك ها نشان می دهد كه روش ارائه شده نسبت به سایر روش ها نتیجه دقیق تری را ارائه می نماید. ضمن اینکه روش پیشنهادی قادر به تصمیم گیری در وضعیت عدم قطعیت هم می باشد و این به عنوان ویژگی محسوب می شود. همچنین علاوه بر در نظر گرفتن معیار احتمال ابتلا به خطا و اهمیت خطا ، معیارهایی نظیر اثر گذاری خطای ماژول بر دیگر ماژول ها و شدت خطای هر ماژول را نیز مورد توجه قرار می دهد و به همین خاطر روشی کامل تر از روش مشابه می باشد و این توانایی را دارد که علاوه بر تست رگرسیون در تست توسعه نرم افزار هم مورد استفاده قرار بگیرد.

فصل اول: مقدمه و کلیات تحقیق

مقدمه:

سیستم های نرم افزاری امروزه با فراگیر شدن در علوم مختلف نقش بسیار مهمی را در برطرف نمودن نیازها و خواسته های مشتریان ایفا می کنند و همچنین به عنوان یک جزء اصلی و لاینفک در امور روزمره به حساب می آیند. با گسترش روز افزون تولید سیستم های نرم افزاری همچنان تقاضا برای تولید سیستم های نرم افزاری جدید وجود دارد. بحث مهم بعد از تولید نرم افزارها نگهداری و ارتقاء آنها می باشد. وجود خطا و اشتباه در نرم افزارها می تواند منجر به خسارات زیادی از قبیل هزینه های مالی، زمانی، فیزیکی وحتی در برخی کاربردهای حساس و بحرانی مانند کاربردهای پزشکی، کنترل کننده موشک و کنترل کننده های ترافیک هوایی خسارت جانی را نیز به بار آورد. از این رو برای اینکه قابلیت اطمینان را در استفاده از سیستم های نرم اقزاری افزایش دهیم باید نرم افزار را مورد تست قرار دهیم. تست نرم افزار در توسعه سیستم های نرم افزاری از جایگاه مهم و با ارزشی برخوردار است. به خصوص در سیستم های نرم افزاری مقیاس بزرگ و پیچیده امروزی. زیرا فعالیت های تست هم زمان بر و هم هزینه بر هستند. نرم افزارها برای اینکه ارتقاء یابند می بایست توسعه داده شوند و نسبت به نسخه های اولیه رشد و تکامل یابند. یکی از فعالیت های مهم و هزینه بر در جهت ارتقاء نرم افزار تست نرم افزار است که انواع متفاوتی از تست برای بخش های مختلف و در زمانهای مختلف طراحی و ایجاد شده اند. تست فرآیندی است مخرب که محصول نرم افزاری را مورد حمله قرار می دهد تا اینکه خطا بروز کند. تست نرم افزار شامل تحقیق و بررسی بر روی نرم افزار تولید شده است که این تحقیق و برسی برای پیدا کردن خطاها انجام می شود. به طور کلی یک سری از سوال و جواب هایی هستند که نرم افزار را با آن امتحان می کنیم در حالی که از برنامه انتظار داریم با توجه به ورودی هایی که با استفاده از سوالات وارد می کنیم، جواب های صحیحی را به عنوان خروجی به دست دهد. آزمایش نرم افزار حیطه وسیعی از فعالیت های مربوط به تولید برنامه های رایانه ای را دربرمی گیرد که از آزمایش کردن کد برنامه توسط برنامه نویس گرفته تا نشان دادن عملکرد درست یک سیستم اطلاعاتی بزرگ به مشتری. سازمانها یا شرکت هایی که نرم افزارها را توسعه می دهند، محصولی به نام نرم افزار تولید می کنند. ولی چه عامل یا عواملی باعث می شوند که یک نرم افزار از نرم افزار مشابه دیگر متمایز و برجسته شود؟ عوامل متعددی را می توان نام برد که باعث این برتری و تمایز شود اما یکی از این عوامل می تواند کیفیت محصول نهایی باشد که به بازار عرضه خواهد شد. اما برای رسیدن به این نقطه برتری، باید چگونه عمل کرد و اندیشید؟ یکی از پاسخ ها به این سوال بدون شک تست نرم افزار و نحوه انجام آن می تواند باشد.

اهمیت آزمایش نرم افزار و اثرات آن بر كیفیت نرم افزار نیاز به تأكید بیشتر ندارد.Deutch در این باره اینگونه بیان می نماید: توسعه سیستمهای نرم افزاری شامل یكسری فعالیت های تولید می باشد كه امكان اشتباهات انسانی در آن زیاد است. خطاها در ابتدای یك فرآیند و مراحل توسعه بعدی آن ظهور می نمایند. به دلیل عدم توانایی انجام كارها و برقراری ارتباط به صورت كامل، توسعه نرم افزار همواره با فعالیت تضمین كیفیت همراه است. آزمایش نرم افزار عنصری حیاتی از تضمین كیفیت نرم افزار می باشد وتقریبی مشخصه، طراحی، و تولید كد رانشان می دهد.

موضوعات: بدون موضوع  لینک ثابت


فرم در حال بارگذاری ...