نوشته شده توسط : admin

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

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

موضوع : ارائه یک روش تولید خودکار داده های ورودی برای تست جهش

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

استاد راهنما : دکتر بابک شیرازی

زمستان 92

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

(در فایل دانلودی نام نویسنده موجود است)

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

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

چکیده

ایده ی اصلی تست جهش بر­اساس  استفاده از نقص­ها (faults) برای شبیه سازی خطاهایی است که برنامه نویسان انجام می­دهند. بروز نقص­ها ممکن است در دو سطح یکپارچگی و در سطح واحد اتفاق بیافتد که در بعضی موارد ممکن است جستجو و یافتن محل نقص دشوار باشد با تزریق نقص­ها به صورت مجازی می­توان داده­ها ورودی مناسب که می­تواند وجود آن­ها را آشکار کند پیدا کرد.

انجام فرآیند تست جهش هزینه بر است این هزینه­ها به طور کلی از چهار منبع نشات می­گیرند که عبارتند از :1- تولید ورودی­های تست 2- زمان کامپایل کد جهش یافته و کد اصلی 3- اجرا کد جهش یافته و اصلی 4- مقایسه­ی نتایج خروجی برنامه­ی اصلی با برنامه­ی جهش یافته. در این پایان­نامه برای کاهش هزینه­ی اول با استفاده از الگوریتم کلونی زنبور تولید داده­های تست را به صورت خودکار انجام دادیم از طرف دیگر از طریق تکنیک­های تزریق بایت کد جاوا هزینه کامپایل را نیز به صفر رساندیم و برای بالا بردن عملکرد سیستم اجرای تست را به صورت موازی انجام داده­ایم.

کلید واژه: تست ­جهش، خودکارسازی، ورودی­های تست، موارد تست، الگوریتم کلونی زنبور.

 

 

 

فهرست مطالب

عنوان                                                                                                                  صفحه

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

1-1           مروری بر دغدغه­های تست نرم­افزار.. 2

1-1-1     مقدمه.. 2

1-1-2     بهره گیری از طبیعت….. 4

1-1-3     هدف از انجام.. 6

2                 فصل دوم     ادبیات و پیشینه تحقیق.. 8

2-1           تست جهش…… 9

2-1-1     تئوری و نظریات….. 9

2-1-2     متدلوژی…. 12

2-1-3     عملگرها. 14

2-1-4     تکینکهای کاهش هزینه.. 20

2-1-5      تولید جهش کمتر  21

2-1-6     تکنیک­های کاهش هزینه در زمان اجرای برنامه.. 29

2-1-7     جهشهای برابر.. 38

2-1-8     خودکار سازی تست….. 43

2-2            نتیجه­گیری…. 47

3                 فصل سوم     روش تحقیق.. 50

3-1           شرح روش­های مشابه.. 51

3-1-1      روش مبتنی بر CBT  51

3-1-2     روش اجرای سمبلیک…… 52

3-1-3     ترکیب روش اجرای پویای سمبلیک (DSE) با اسکیما. 57

3-1-4     روشهای مبتنی بر جستجو.. 59

3-2           شرح ابزار ارائه شده. 60

3-2-1     ابزارهای ارائه شدهی مبتنی بر جاوا 60

3-2-2     تولید کنندهی جهش­ها. 63

3-2-3     تولید کنندهی ورودیهای تست….. 66

3-2-4     الگوریتم کلونی زنبور.. 67

3-2-5     کلاس تولید کننده­ی موارد تست….. 69

3-2-6     اجرا کننده­ی تست….. 77

3-2-7     دستیاران… 78

3-3           نتیجه­گیری…. 82

4                 فصل چهارم. 84

محاسبات و یافته های تحقیق.. 84

4-1           تاثیر تعداد نخها در از بین رفتن جهشها. 85

4-2           بررسی اثر تعداد نخها در معیار پوشش…… 86

4-3           نتایج بدست آمده از تست سه برنامه.. 88

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

6                 پیوست… 94

6-1           الگوریتم کلونی مورچه.. 94

6-2           K-means.. 98

6-3           Agglomerative.. 98

6-4           منابع… 99

 

 

 

 

 

 

 

 

 

 

 

 

فهرست جداول

جدول(‏2‑1): 22 عملگر مُدرا [9] 14

جدول(‏2‑2): عملگرهای جهش ارائه شده در سطح بین کلاس [10] 18

جدول(‏2‑3): سه جهش  و  [15] 24

جدول (‏2‑4): : فاصلهی همینگ سه جهش  و  [15] 24

جدول(‏2‑5): خلاصهی نتایج بدست آمده حاصل از اجرای روش دستهبندی بر روی پنج برنامه [15] 25

جدول(‏2‑6): تاثیر حاصل ترکیب جهش های برابر و نابرابر با یکدیگر. 28

جدول(‏2‑7): محدودیتهای تولید شدهی متناظر با جهشها  [29] 41

جدول(‏2‑8): مقایسه بین روشهای مختلف… 47

جدول(‏3‑1): نمونهای از مسیرها و محدودیتهای انها در اجرای سمبلیک… 54

جدول(‏3‑2): بررسی حالات مختلف برای محاسبهی شایستگی.. 72

جدول(4‑1): نتایج بدست آمده از تست سه برنامه. 88

جدول(‏4‑2):مقایسهی روش ارائه شده با سایر ابزارها 89

 

 

 

 

فهرست تصاویر و نمودارها

شکل(‏2‑1): چارت فرآیند تست جهش… 13

شکل(‏2‑2): درصد استفاده­ی مقالات از تکنیکهای کاهش هزینه [2] 21

شکل(‏2‑3): چهار متغییر مقایسهی جهش ضعیف [23] 32

شکل (‏2‑4):گراف کنترل جریان برنامه­ی MID [30] 36

شکل (‏2‑5): نمایش دامنه قبل و بعد از تقسیم [30] 36

شکل (‏2‑6): فرآیند MSG [31] 38

شکل (‏2‑7): ارتباط دامنه­ی ورودی سه شرط کفایت، ضرورت و دسترسی [29] [34] 43

شکل (‏3‑1): ساختار Godzilla. 51

شکل(‏3‑2): نمونهای از اجرای سمبلیک… 54

شکل(‏3‑3): چهارچوب ارائه شده در مقاله­ی [40] 58

شکل(‏3‑4): کلونی مورچه و تست جهش… 59

شکل(‏3‑5): ماژول تولید کننده­ی جهش… 66

شکل (‏3‑6): ماژول تولید کننده­ی ورودی­های تست… 76

شکل(‏3‑7): گراف کنترل جریان برنامه تشخیص نوع مثلث… 81

شکل(‏3‑8): مدل روش ارائه شده 83

شکل(4‑1): اثر تعداد نخها در از بین بردن جهش… 86

شکل (4‑2) پوشش مسیرهای تست در گراف CFG. 87

شکل(4‑3): اثر تعداد نخها بر پوشش مسیرهای تست در گراف CFG. 87

شکل(‏6‑1):  شیوه حرکت مورچهگان در هنگام برخورد با مانع. 95

شکل (‏6‑2) : گراف شهرها و مسیرها 96

 

 

 

 

 

 

1    فصل اول

مقدمه و کلیات تحقیق

 

 

 

 

 

 

 

 

1-1     مروری بر دغدغه­های تست نرم­افزار

1-1-1 مقدمه

یکی از چالش­های امروز پروژه­های نرم­افزار، تست است زیرا برخلاف محصولات تولید شده توسط سایر علوم مهندسی، نرم­افزار محصولی غیرقابل لمس است از این جهت برای اطمینان از کیفیت، نیاز به صرف هزینه و وقت بیشتر برای تست آن است. تست در حقیقت یکی از اساسی­ترین روش­ها برای ارزیابی نرم­افزار تحت توسعه است. روش­های سنتی تست نرم­افزار، تنها به یافتن بعضی از خطاها[1]بعد از فاز پیاده­سازی محدود می­شد و از این جهت ریسک وجود خطا در نرم­افزار، بعد از تحویل، افزایش می یافت و حتی وجود خطاها در نرم­افزار گاهی موجب شکست [2]نرم­افزار می­شود اما منشاء بخشی از این خطاها در کجاست؟ منشاء بخشی از این خطاها در نقص­هایی[3] است که برنامه نویسان به طور غیر عمدی و بر اثر بی دقتی وارد کد برنامه می­کنند مانند: کوچکتر از حد نیاز در نظر گرفتن طول یک آرایه، اشتباه در پرانتز گذاری عبارت­ها، استفاده­ی نادرست از عملگرهای دودویی و یکانی و …  که در صورت شناسایی محل آن در بسیاری از موارد با ایجاد یک تغییر کوچک در کد برنامه قابل اصلاح است اما در صورت عدم اصلاح وجود یک یا چند نقص در برنامه سبب ایجاد یک وضعیت درونی اشتباه در برنامه ­شود که در برخی از موارد با وارد کردن یک ورودی خاص تحریک شده و ممکن است این وضعیت درونی به یک رفتار بیرونی اشتباه تبدیل شود و حتی در برخی از موارد موجب شکست برنامه شود به عنوان مثال اگر بدن انسان را به یک برنامه­ی کامپیوتری تشبیه کنیم نقص­ها در حقیقت عوامل بیماری زا هستند که در یک بدن سالم وارد می­شوند و آن­ را تحت تصرف خود درمی­آورند، خطاها مانند یک وضعیت درونی غیر عادی در بدن مانند فشار خون بالا، وجود یک نوع باکتری در خون، بی نظمی در نبض بیمار که پزشکان با کنارهم قرار دادن این علائم تلاش می­کنند به علت بیماری پی ببرند، از کار افتادگی­ها در حقیقت علائم درونی هستند که از حالت نهان و درونی خود خارج شده به طوری که توسط بیمار نیز قابل تشخیص و بیان هستند.

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





لینک بالا اشتباه است

برای دانلود متن کامل اینجا کلیک کنید

       
:: بازدید از این مطلب : 798
|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0
تاریخ انتشار : دو شنبه 7 تير 1395 | نظرات ()
مطالب مرتبط با این پست
لیست
می توانید دیدگاه خود را بنویسید


نام
آدرس ایمیل
وب سایت/بلاگ
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

آپلود عکس دلخواه: