فایل شماره 6231 |
تکرار مراحل ۲ تا ۶ تا هنگامی که نیازها برآورده شود.
کلاس تولید کننده موارد تست
تولید کننده موارد تست شامل یک بردار داده های ورودی و دو متد برای یکی برای تولید داده های اولیه و دیگری برای انجام جستجوی محلی است. ابتدا مولفههای بردار داده های ورودی و پس از آن متدهای تولید داده های اولیه و جستجوی محلی را شرح میدهیم.
( اینجا فقط تکه ای از متن فایل پایان نامه درج شده است. برای خرید متن کامل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. )
هر بردار ورودی شامل مولفههایی است که در زیر مشاهده میکنید:
-
- لیست داده های ورودی
-
- لیستی از جهشهای از بین رفته به ازای هر مورد تست
-
- لیستی از مسیرهای پوشش داده شده در گراف کنترل جریان برنامه(CFG)[65]
-
- شایستگی [۶۶]
-
- احتمال انتخاب
لیست داده های ورودی را به صورت زیر نمایش داده و تعریف میکنیم:
هر نشان دهنده یک بردار داده و هر نشان دهنده یک دادهی ورودی است که در آن و قرار دارد در مورد i ذکر این نکته حائز اهمیت است که n برابر با تعداد زنبورها است از طرف دیگر تعداد زنبورها یا به عبارت دیگر تعداد دستههای گل باید حداقل ۲ باشد زیرا برای یافتن منبع غذایی با شایستگی بالاتر از میانگین شایستگی بردارها استفاده میکنیم در صورتیکه تست را با یک بردار و یک زنبور انجام دهیم به دلیل اینکه میانگین هر عدد خودش است الگوریتم به سمت بهینگی پیش نخواهد رفت.
برای آنکه بتوانیم از داده های تولید شده استفاده کنیم باید ابتدا واسط [۶۷] کد تحت [۶۸] تست را استخراج کنیم به عبارت دیگر تعداد و نوع متغییرهای ورودی آن را بدست آوریم که این کار با بهره گرفتن از خواندن از بایت کد جاوا به سادگی امکان پذیر است پس از استخراج تعداد متغییرهای عددی بردار ورودی ما به شکل زیر تغییر پیدا خواهد کرد:
هر یک مورد تست [۶۹] است به صورتی که که در آن n برابر تعداد موارد تستی است که کاربر در ابتدای اجرای تست مشخص می کند همچنین هر برابر:
که در آن هر نشان دهنده یک دادهی ورودی است که و n برابر با تعداد پارامترهای ورودی کد تحت تست است.
جهشهای از بین رفته
برای محاسبهی تعداد جهشهای از بین رفته نیاز به آگاهی از تعداد جهشهای موجود در هر یال از گراف داریم تا در صورت تغییر خروجی اجرای برنامه آنها را به عنوان جهشهای از بین رفته محاسبه کنیم.
پوشش کد
برای محاسبهی معیار پوشش به جای در نظر گرفتن مسیرهای گراف کنترل جریان، یالهای آن را در نظر میگیریم که با علامت گذاری مناسب (که در بخش دستیاران در مورد آن توضیح خواهیم داد) هر یال میتوانیم در هنگام اجرا از پوشش هر یال آگاه شویم در هر تکرار تست با ورودی ها، تعداد یالهای مجزایی و جدیدی که ملاقات شده اند را در لیست یالهای پوشش داده شده ثبت میکنیم در صورتیکه مورد تستی سبب پوشش یال جدیدی نشود برای آن مقدار صفر درج می شود.
شایستگی
پس از هر مرحله اجرا برای هر بردار ورودی یک عدد شایستگی محاسبه میکنیم برای محاسبهی شایستگی دو فاکتور امتیاز جهش و پوشش مسیر را در نظر میگیرم به طور کلی شایستگی از طریق معادله(۳-۱) قابل محاسبه است:
معادله(۳۳۱‑):
در رابطه بالا () تعداد یالهای جدید بازدید شده، تعداد جهشهای کشته شده برای هر یال که حاصل از اجرای هر درایهی بردار ورودی است که توسط F ، تابع محاسبه کننده شایستگی محاسبه شده و به عنوان شایستگی یک بردار ورودی ذخیره میگردد. ضرایب و اثر میزان پوشش مسیر و یا از بین بردن جهشها در محاسبهی شایستگی را تعیین می کنند. درحقیقت روش ما به گونه ای طراحی شده است که با توجه به تمایل کاربر ورودی مناسب جهت تست جهش یا پوشش کد را تولید می کند.
برای توصیف بیشتر حالات امکان پذیر، آنها را در جدول(۳-۲) نشان دادهایم، همانطور که مشاهده میکنید حالت ۱ بیشترین شایستگی را داشته و حالت ۴ کمترین شایستگی را دارد. منظور از ستون ” تعداد یالهای جدید ملاقات شده” تعداد یالهایی است که جدا از یالهایی جهشدار ملاقات شده اند.
جدول(۳‑۲): بررسی حالات مختلف برای محاسبهی شایستگی
حالت
آیا جهش از بین رفته است؟
تعداد جهشهای موجود در یالهای ملاقات شده
تعداد یالهای جدید ملاقات شده
شایستگی
۱
بله
فرم در حال بارگذاری ...
[یکشنبه 1401-04-05] [ 10:53:00 ب.ظ ]
|