👈فول فایل فور یو ff4u.ir 👉

ارائه یک روش تولید خودکار داده های ورودی برای تست جهش word

ارتباط با ما

دانلود


ارائه یک روش تولید خودکار داده های ورودی برای تست جهش word
چکیده
ایده ی اصلی تست جهش بر­اساس استفاده از نقص­ها (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 روش مبتنی بر CBT51
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-means98
6-3 Agglomerative98
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): ساختار Godzilla51
شکل(‏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) پوشش مسیرهای تست در گراف CFG87
شکل(4‑3): اثر تعداد نخها بر پوشش مسیرهای تست در گراف CFG87
شکل(‏6‑1): شیوه حرکت مورچهگان در هنگام برخورد با مانع95
شکل (‏6‑2) : گراف شهرها و مسیرها96
   1-1 مروری بر دغدغه­های تست نرم­افزار
یکی از چالش­های امروز پروژه­های نرم­افزار،تست است زیرا برخلاف محصولات تولید شده توسط سایر علوم مهندسی، نرم­افزار محصولی غیرقابل لمس است از این جهت برای اطمینان از کیفیت، نیاز به صرف هزینه و وقت بیشتر برای تست آن است. تست در حقیقت یکی از اساسی­ترین روش­ها برای ارزیابی نرم­افزار تحت توسعه است. روش­های سنتی تست نرم­افزار، تنها به یافتن بعضی از خطاها [1]بعد از فاز پیاده­سازی محدود می­شد و از این جهت ریسک وجود خطا در نرم­افزار، بعد از تحویل، افزایش می یافت و حتی وجود خطاها در نرم­افزار گاهی موجب شکست [2]نرم­افزار می­شود اما منشاء بخشی از این خطاها در کجاست؟ منشاء بخشی از این خطاها در نقص­هایی[3] است که برنامه نویسان به طور غیر عمدی و بر اثر بی دقتی وارد کد برنامه می­کنند مانند: کوچکتر از حد نیاز در نظر گرفتن طول یک آرایه، اشتباه در پرانتز گذاری عبارت­ها، استفاده­ی نادرست از عملگرهای دودویی و یکانی و ... که در صورت شناسایی محل آن در بسیاری از موارد با ایجاد یک تغییر کوچک در کد برنامه قابل اصلاح است اما در صورت عدم اصلاح وجود یک یا چند نقص در برنامه سبب ایجاد یک وضعیت درونی اشتباه در برنامه ­شود که در برخی از موارد با وارد کردن یک ورودی خاص تحریک شده و ممکن است این وضعیت درونی به یک رفتار بیرونی اشتباه تبدیل شود و حتی در برخی از موارد موجب شکست برنامه شود به عنوان مثال اگر بدن انسان را به یک برنامه­ی کامپیوتری تشبیه کنیم نقص­ها در حقیقت عوامل بیماری زا هستند که در یک بدن سالم وارد می­شوند و آن­ را تحت تصرف خود درمی­آورند، خطاها مانند یک وضعیت درونی غیر عادی در بدن مانند فشار خون بالا، وجود یک نوع باکتری در خون، بی نظمی در نبض بیمار که پزشکان با کنارهم قرار دادن این علائم تلاش می­کنند به علت بیماری پی ببرند، از کار افتادگی­ها در حقیقت علائم درونی هستند که از حالت نهان و درونی خود خارج شده به طوری که توسط بیمار نیز قابل تشخیص و بیان هستند.
حال که توانستیم مفهوم نقص، خطا و شکست را شرح دهیم، می­توانیم میان سه مفهوم تست، تست شکست و اشکال زدایی، تمایز قائل شویم وآن عبارت است از:
یکی از چالش­های عمده در این بخش یافتن نقص­های برنامه است زیرا به ازای هر نقص تعداد محدودی از ورودی­ها خروجی برنامه را تغییر می­دهند بنابراین پیدا کردن محل نقص همواره کار ساده­ای نیست با در نظر گرفتن این ایده به سه شرط اساسی می­رسیم که وجود آن­ها برای تبدیل یک نقص به یک شکست ضروری است:
همانطور که در علم پزشکی پیشگیری بهتر از درمان است، برای جلوگیری از شکست برنامه بهتر است با استفاده از روش­های موجود تا آنجایی که امکان دارد از ورود نقص­ها به کد برنامه جلوگیری کنیم. این موضوع اولین بار توسط Myers طرح شد، وی مدعی شد تست نرم­افزار موفق، تستی­است که سبب از کار افتادگی نرم­افزار شود به عبارت دیگر دیدگاه Myers استفاده از نقص­های شناخته شده جهت یافتن خطاهای پنهان موجود در برنامه بود به این روش تست، تست نقص می­گویند. در این روش به جای آن­که به دنبال خطا در برنامه برویم نشان می دهیم که برنامه بدون نقص است.
پدیده­های طبیعی از گذشته همواره مورد توجه و الهام بخش انسان برای حل مسائل زندگی خود بوده است، یکی از جالب­ترین آن­ها اجتماع زنبوران و مورچه­ها است که برای حل مسائل خود (به عنوان مثال پیدا کار کردن غذا ) از راه­کارهای ساده­ای استفاده می­کنند که نه تنها قادر به حل مسائل خود هستند بلکه ما می­توانیم با مشاهده­ و الگو برداری از رفتار آن­ها بسیاری از مسائل پیچیده­ای که نیاز به راه حل­های پویا دارند را به طور کارا حل کنیم، اما این الگوهای پیچیده­ی رفتاری از کجا ایجاد می­شود؟ پاسخ این سوال استفاده از هوش جمعی ­است، به عنوان مثال تصور کنید قرار است به محلی بروید که از آدرس آن به طور کامل آگاهی ندارید. یکی از راه­کارهای موثر پرسش از کسانی است که در راه با آن­ها برخورد می­کنید در برخی از موارد ممکن است پاسخ­های نادرست دریافت کنید اما شما با توجه به پیش زمینه ذهنی و هدف از پیش تعریف شده­ی خود تا حدی قادر به تشخیص آن­ها خواهید بود. در حقیقت شما ممکن است در کارهای روزمره خود بارها از هوش جمعی برای یافتن پاسخ مشکلات خود بهره­مند شوید. متاسفانه تاکنون تعریف دقیق ریاضی برای هوش جمعی وجود ندارد اما به طور کلی سیستم­هایی که براساس هوش جمعی مسائل خود را حل می­کنند در ویژگی­های زیر مشترک هستند:
اگر به زندگی مورچه­ها نگاه کنیم، برای حل مسائل خود از چندین روش استفاده می­کنند که یکی از مهم­ترین آن­ها ماده­­ی شیمیایی به نام فرمون است و از خواص این ماده بوی آن است که بعد از گذشت زمان از شدت آن کاسته شده و به تدریج از بین می­رود. اما این ویژگی چه کمکی به حل مسائل مورچه­ها می­کند؟ به عنوان مثال مسئله­ی یافتن کوتاه ترین مسیر را در نظر بگیرید در حقیقت مورچه­ها با گذشت زمان یاد گرفته­اند که برای یافتن غذا همواره کوتاه­ترین مسیر را از کلونی تا غذای خود پیدا کنند. هنگامی که اولین مورچه برای یافتن غذا خارج می­شود یک مسیر را از میان چندین مسیر به صورت تصادفی انتخاب می­کند. هر مورچه در مسیری که طی می­کند از خود فرمون به جای می­گذارد وبعد از یافتن غذا از مسیر پیموده شده­ی خود که برروی آن فرمون به جای گذاشته است به کلونی باز می­گردد. از آن­جایی که تعداد مورچه­های زیادی به طور همزمان برای یافتن غذا از کلونی خارج می­شوند نخستین مورچه­ای که به کلونی باز می­گردد به احتمال زیاد مسیر کوتاهتری به نسبت سایر مورچه­ها پیموده است و بوی فرمون آن ماندگاری بیشتری دارد چون در مدت زمان کمتری طی شده است پس آن مسیر توسط سایر مورچه­ها انتخاب خواهد شد.

👇 تصادفی👇

آموزش کاربرد متلب در مهندسی کنترلبررسي و مقايسه‌ ميزان اضطراب دانشجويان پسر قبل از امتحانات و در ايام امتحاناتآداب رفتار با دخترانتاريخ فلسفه غرب 1دانلود نقشه توپوگرافی و نقشه زمین‌شناسی گرماب به همراه گزارش کامل پشت نقشه (مقیاس: 1:100000)موازنه سازی آمریکا در مقابل چینقارچ شناسی پزشکیدانلود گزارش کارآموزی آماده رشته مهندسی مواد و متالوژی در شرکت تولید قطعات فولادی‎ با فرمت word-ورد 27 صفحهپایان نامه در مورد طراحی و ساخت تاکومترموزه و تاریخچه آن در ایران و جهان ✅فایل های دیگر✅

#️⃣ برچسب های فایل ارائه یک روش تولید خودکار داده های ورودی برای تست جهش word

ارائه یک روش تولید خودکار داده های ورودی برای تست جهش word

دانلود ارائه یک روش تولید خودکار داده های ورودی برای تست جهش word

خرید اینترنتی ارائه یک روش تولید خودکار داده های ورودی برای تست جهش word

👇🏞 تصاویر 🏞