تکرار مراحل ۲ تا ۶ تا هنگامی که نیازها برآورده شود.
کلاس تولید کننده­ موارد تست
تولید کننده­ موارد تست شامل یک بردار داده ­های ورودی و دو متد برای یکی برای تولید داده ­های اولیه و دیگری برای انجام جستجوی محلی است. ابتدا مولفه­های بردار داده ­های ورودی و پس از آن متدهای تولید داده ­های اولیه و جستجوی محلی را شرح می­دهیم.

( اینجا فقط تکه ای از متن فایل پایان نامه درج شده است. برای خرید متن کامل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. )

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

    1. لیست داده ­های ورودی
    1. لیستی از جهش­های از بین رفته به ازای هر مورد تست
    1. لیستی از مسیرهای پوشش داده شده در گراف کنترل جریان برنامه(CFG)[65]
    1. شایستگی [۶۶]
    1. احتمال انتخاب

لیست داده های ورودی را به صورت زیر نمایش داده و تعریف می­کنیم:
هر نشان دهنده یک بردار داده و هر نشان دهنده یک داده­ی ورودی است که در آن و قرار دارد در مورد i ذکر این نکته حائز اهمیت است که n برابر با تعداد زنبورها است از طرف دیگر تعداد زنبورها یا به عبارت دیگر تعداد دسته­های گل باید حداقل ۲ باشد زیرا برای یافتن منبع غذایی با شایستگی بالاتر از میانگین شایستگی بردارها استفاده می­کنیم در صورتیکه تست را با یک بردار و یک زنبور انجام دهیم به دلیل اینکه میانگین هر عدد خودش است الگوریتم به سمت بهینگی پیش نخواهد رفت.
برای آنکه بتوانیم از داده ­های تولید شده استفاده کنیم باید ابتدا واسط [۶۷] کد تحت [۶۸] تست را استخراج کنیم به عبارت دیگر تعداد و نوع متغییرهای ورودی آن را بدست آوریم که این کار با بهره گرفتن از خواندن از بایت کد جاوا به سادگی امکان پذیر است پس از استخراج تعداد متغییرهای عددی بردار ورودی ما به شکل زیر تغییر پیدا خواهد کرد:
هر یک مورد تست [۶۹] است به صورتی که که در آن n برابر تعداد موارد تستی است که کاربر در ابتدای اجرای تست مشخص می­ کند همچنین هر برابر:
که در آن هر نشان دهنده یک داده­ی ورودی است که و n برابر با تعداد پارامترهای ورودی کد تحت تست است.
جهش­های از بین رفته
برای محاسبه­ی تعداد جهش­های از بین رفته نیاز به آگاهی از تعداد جهش­های موجود در هر یال از گراف داریم تا در صورت تغییر خروجی اجرای برنامه آن­ها را به عنوان جهش­های از بین رفته محاسبه کنیم.
پوشش کد
برای محاسبه­ی معیار پوشش به جای در نظر گرفتن مسیرهای گراف کنترل جریان، یال­های آن را در نظر می­گیریم که با علامت گذاری مناسب (که در بخش دستیاران در مورد آن توضیح خواهیم داد) هر یال می­توانیم در هنگام اجرا از پوشش هر یال آگاه شویم در هر تکرار تست با ورودی­ ها، تعداد یال­های مجزایی و جدیدی که ملاقات شده ­اند را در لیست یال­های پوشش داده شده­ ثبت می­کنیم در صورتیکه مورد تستی سبب پوشش یال جدیدی نشود برای آن مقدار صفر درج می­ شود.
شایستگی
پس از هر مرحله اجرا برای هر بردار ورودی یک عدد شایستگی محاسبه می­کنیم برای محاسبه­ی شایستگی دو فاکتور امتیاز جهش و پوشش مسیر را در نظر می­گیرم به طور کلی شایستگی از طریق معادله(۳-۱) قابل محاسبه است:

معادله(‏۳‏۳۱‑):

در رابطه­ بالا () تعداد یال­های جدید بازدید شده، تعداد جهش­های کشته شده برای هر یال که حاصل از اجرای هر درایه­ی بردار ورودی است که توسط F ، تابع محاسبه کننده­ شایستگی محاسبه شده و به عنوان شایستگی یک بردار ورودی ذخیره می­گردد. ضرایب و اثر میزان پوشش مسیر و یا از بین بردن جهش­ها در محاسبه­ی شایستگی را تعیین می­ کنند. درحقیقت روش ما به گونه ­ای طراحی شده است که با توجه به تمایل کاربر ورودی­ مناسب جهت تست جهش یا پوشش کد را تولید می­ کند.
برای توصیف بیشتر حالات امکان پذیر، آن­ها را در جدول(۳-۲) نشان داده­ایم، همانطور که مشاهده می­کنید حالت ۱ بیشترین شایستگی را داشته و حالت ۴ کمترین شایستگی را دارد. منظور از ستون ” تعداد یال­های جدید ملاقات شده” تعداد یال­هایی است که جدا از یال­هایی جهش­دار ملاقات شده اند.
جدول(‏۳‑۲): بررسی حالات مختلف برای محاسبه­ی شایستگی

حالت

آیا جهش از بین رفته است؟

تعداد جهش­های موجود در یال­های ملاقات شده

تعداد یال­های جدید ملاقات شده

شایستگی

۱

بله

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


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