دانلود مقاله رایگان

دانلود فایل تحقیق : پایان نامه ارشد مهندسی فناوری اطلاعات: اولویت بندی کارآمد موارد تست نرم افزار به کمک شبکه‌ های بیزی

پایان نامه مقطع کارشناسی ارشد رشته فناوری اطلاعات

وزارت علوم، تحقیقات و فناوری

دانشگاه علوم و فنون مازندران

پایان نامه مقطع کارشناسی ارشد

رشته: مهندسی فناوری اطلاعات

عنوان:

اولویت بندی کارآمد موارد تست نرم افزار به کمک شبکه‌ های بیزی

استاد راهنما:

دکتر حسین مومنی

استاد مشاور:

دکتر بابک شیرازی

برای رعایت حریم خصوصی نام نگارنده درج نمی گردد

تکه هایی از متن به عنوان نمونه :

فهرست رئوس مطالب:

فصل اول : مقدمه و کلیات پژوهش

مقدمه………………… 3

1-1- یك شیوه استراتژیك برای آزمایش نرم افزار…………………. 5

1-2- اصول آزمایش نرم افزار…………………. 6

1-3- بعضی از انواع سطوح تست نرم افزار………………… 6

1-4- آشنایی با شبکه‌ های بیزی………………….. 9

1-4-1- مقدمه ای بر شبکه‌ های بیزی………………….. 9

1-5-  اندازه گیری و متریک…………………… 10

1-6- اظهار مسئله…………………. 16

1-7- چالش موجود در تست رگرسیون…………………. 17

1-8- راه حل برای چالش موجود در تست رگرسیون…………………. 17

1-9- توجیه ضرورت انجام طرح…………………. 18

1-10- هدف از اجراء…………………. 19

1-11- نوآوری پژوهش…………………. 19

فصل دوم : ادبیات و پیشینه پژوهش

2-1- پیشینه پژوهش…………………. 21

2-1-1- کارهای مرتبط………………….. 21

2-1-2- مطالعه معضلات موجود در روش‌های مطالعه شده قبلی…….. 22

2-2- تست نرم افزار…………………. 24

2-3- صحت و اعتبار سنجی………………….. 24

2-4- اهداف آزمایش…………………… 25

2-5- اصول آزمایش…………………… 26

2-6- قانون Pareto در فرآیند تست نرم افزار…………………. 26

2-7- چند نمونه از انواع تست………………….. 27

2-8- مراحل انجام تست………………….. 27

2-9- ویژگی‌های یک نرم‌افزار تست‌ پذیر…………………. 28

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 در این باره اینگونه اظهار می‌نماید: توسعه سیستمهای نرم افزاری شامل یكسری فعالیت‌های تولید می‌باشد كه امكان اشتباهات انسانی در آن زیاد می باشد. خطاها در ابتدای یك فرآیند و مراحل توسعه بعدی آن ظهور می ‌نمایند. به دلیل عدم توانایی انجام كارها و برقراری ارتباط به صورت كامل، توسعه نرم افزار همواره با فعالیت تضمین كیفیت همراه می باشد. آزمایش نرم افزار عنصری حیاتی از تضمین كیفیت نرم افزار می ‌باشد و مرور تقریبی مشخصه، طراحی، و تولید كد رانشان می ‌دهد.

1-1- یک شیوه استراتژیک برای آزمایش نرم افزار

آزمایش،مجموعه فعالیت‌هایی می باشد كه می‌تواند از قبل به صورت سیستماتیك برنامه ریزی و هدایت شوند . به این دلیل، الگویی برای آزمایش نرم افزار بایستی برای فرآیند نرم افزار تعریف گردد. این الگو شامل مجموعه مراحلی می باشد كه می‌توان تكنیك های خاص طراحی نمونه‌های آزمایش و روش‌های آزمایش را در آن قرار داد.

چند استراتژی آزمایش نرم افزار در این ارتباط پیشنهاد شده می باشد . همه آنها برای توسعه دهنده نرم افزار، الگویی را به مقصود آزمایش فراهم می‌کنند و همگی دارای خصوصیات زیر هستند:

– آزمایش از سطح مؤلفه شروع می گردد به سمت خارج در جهت مجتمع سازی كل سیستم كامپیوتری پیش می‌رود.

– تكنیك های متفاوت آزمایش، در نقاط زمانی مختلف مناسب می ‌باشند.

– آزمایش توسط توسعه دهنده نرم افزار و برای پروژه‌های بزرگ توسط گروه مستقل آزمایش، هدایت می گردد.

– آزمایش و اشكال زدایی فعالیت‌های متفاوتی هستند، اما اشكال زدایی بایستی با هر استراتژی آزمایش همراه باشد.

یك استراتژی برای آزمایش نرم افزار بایستی آزمایش‌های سطح پایینی را هدایت كند كه برای بازبینی صحت پیاده سازی یك قطعه كد كوچك لازم می ‌باشند. همچنین این استراتژی بایستی آزمایش‌های سطح بالایی را سازمان دهی كند كه اكثر توابع سیستم را در ارتباط با نیازهای مشتری اعتبار سنجی می‌ نمایند. یك استراتژی بایستی راهنمایی‌هایی را برای مجری و مجموعه ای از علایم نشان دهنده را برای مدیر فراهم نماید. زیرا این مراحل استراتژی آزمایش زمانی انجام می شوند كه فشار مربوط به پایان مهلت، شروع به افزایش می‌نماید، پیشرفت بایستی قابل اندازه گیری باشد و مشكلات بایستی تا حد امكان به سادگی برطرف شوند.

2-1- اصول آزمایش نرم افزار

آزمایش، موارد غیر معمول جالب توجه ای را برای مهندس نرم افزار آشكار می‌نماید. در ضمن فعالیت‌های اولیه مهندسی نرم افزار، مهندس، کوشش در ایجاد نرم افزار با بهره گیری از مفهومی مجرد و بدست آوردن محصولی واضح و كامل دارد و اینك آزمایش بایستی انجام گردد .مهندس تست یكسری نمونه‌های آزمایش ایجاد می‌ کند كه بایستی نرم افزار ایجاد شده را با شكست روبرو نماید. در واقع، آزمایش، یك مرحله در فرآیند نرم افزار می باشد كه می ‌تواند به عنوان فرآیندی مخرب به جای سازنده در نظر گرفته گردد (حداقل از نظر روانشناسی) به هرحال هدف از آزمایش چیزی متفاوت از آن چیز که انتظار می ‌رود می ‌باشد. در بسیاری از شرکت‌ها حدود 30 تا 50 درصد از هزینه نرم افزار را صرف تست آن می‌کنند، با این تفاصیل بعضی هنوز هم بر این عقیده‌اند که نرم افزارها قبل از انتشار و تحویل به مشتری به درستی تست نمی‌شوند. چند دلیل باعث این باور می شوند : اول اینکه انجام تست نرم افزار امری می باشد بسیار مشکل. دوم اینکه معمولاَ به خاطر زمانبر بودن و دیگر عوامل از قبیل : هزینه‌ی بالای تست نرم افزار ، فشارهای وارده از سوی بازار ، مشتری و رقبا منجر به این شده‌اند تا مدت زمان اختصاص داده شده برای انجام تست بسیار کمتر از دیگر بخش‌های فرایند تولید نرم افزار گردد. دلیل دیگر نداشتن برنامه (بهره گیری از متدولوژی و ابزاری مشخص) برای تست کردن می‌باشد. با این تفاصیل تمامی شرکت‌های تولید کننده نرم افزار با هدف تولید نرم افزاری با کیفیت و افزایش رضایتمندی مشتری، محصول خود را مورد تست قرار می‌دهند. کیفیت چیزی می باشد که ما در تمامی چرخه تولید نرم افزار از قبیل تولید محصولات نرم افزاری ، فرایندها و خدمات ارائه شده به مشتری یا کاربران به دنبال آن هستیم.

***ممکن می باشد هنگام انتقال از فایل اصلی به داخل سایت بعضی متون به هم بریزد یا بعضی نمادها و اشکال درج نشود اما در فایل دانلودی همه چیز مرتب و کامل و با فرمت ورد موجود می باشد***

متن کامل را می توانید دانلود نمائید

زیرا فقط تکه هایی از متن پایان نامه در این صفحه درج شده (به گونه نمونه)

اما در فایل دانلودی متن کامل پایان نامه

 با فرمت ورد word که قابل ویرایش و کپی کردن می باشند

موجود می باشد

تعداد صفحه : 127

قیمت : چهارده هزار و هفتصد تومان

 

Comments are closed.