شرایط توقف CGA: اگر محدودیت‌های تولید توسط پارامترهای GA دست‌یافته شود، اجرایش متوقف می‌شود و خروجی را به‌عنوان بهترین منفرد از جمعیت برمی‌گرداند (بهترین IndTC و بهترین IndMT) در غیر این صورت الگوریتم ژنتیک اجرا را از مرحله ۴ ادامه می‌دهد.

 

    1. انتخاب: والدین را برای گذر انتخاب می‌کند، با استفاده از دوره‌ی مسابقه

 

    1. گذر: پسرها را بر اساس متصدی گذر ES[38]تولید می‌کند. گذر ES از کد ژنتیک استفاده می‌کند. دو مرحله دارد ۱٫ دو منفرد به‌عنوان والدین انتخاب می‌شوند و فقط همین پسر رادارند ۲٫ دسته‌بندی جدید ژنتیکی جایگزین ژن‌های والدین می‌شود و یک پسر با سودمندی برابر یا بیشتر از والدینش تولید می‌کند.

 

    1. جهش: جهش را بر اساس جهش MG[39]اجرا می‌کند. جهش MG را با پایین‌ترین نرخ در ژن‌های مؤثر و بالاتر از بقیه نوع‌ها تولید می‌کند. فرض شده نرخ جهش در ژن مؤثر ۵% است و در بقیه ژن‌ها ۱۰۰% است

 

  1. جایگزینی: جمعیت پسرهای جایگزین جمعیت حاضر می‌شود، منفردهای BestIndTC و BestlndMT را نگه می‌دارد که از تولید بعدی عبور می‌کنند؛ بنابراین منفرد نخبه اجرا می‌شود. پس‌ازآن مرحله ۲ به‌عنوان تولید جدید اجرا می‌شود و همه فرایند را تکرار می‌کند.

در انتها انتظار می‌رود راه‌حل بهینه را پیدا کند: زیرمجموعه‌ی از موارد آزمون که تعداد زیادی از جهش‌ها را می‌کشد و زیرمجموعه‌ی از برنامه‌های جهشی که از کشته شدن توسط تعداد زیادی از موارد آزمون اجتناب می‌کنند و شامل جهش برابر نیست.
این مقاله با ۵ روش دیگر در همین راستا مقایسه شد و بهترین نتیجه را داده است. در مقایسه به سه جنبه توجه شد.۱) انتخاب بهترین زیرمجموعه از موارد آزمون که کاهش‌یافته است و همچنین انتخاب زیرمجموعه جهش‌هایی که کشتنشان سخت است. ۲) اثبات این‌که زیرمجموعه جهش‌ها برابر نیستند این مهم‌ترین فاکتور این روش پیشنهادی است. ۳) کاهش هزینه محاسباتی اعمال الگوریتم.
Lin و همکاران روش مبتنی بر پیشینه را با آگاهی از نسخه نرم‌افزار معرفی کردند ]۵۱[. آن‌ها در تحقیق فهمیدند که برای تشخیص خطای موارد آزمون، احتمال بالاتری وجود دارد که این خطاها دوباره در نسخه بعدی تشخیص داده خواهند شد. اثبات می‌کند که اطلاعات خطای پیشینه بهتر است موردتوجه قرار گیرند. برنامه‌ها تغییر می‌کند، توسعه‌دهنده نرم‌افزار معمولا آشناتر با برنامه‌ها و مهارت‌های اشکال‌زدایشان هستند و بهتر است به‌صورت دانه‌بندی آن‌ها را بهبود دهند. به‌عنوان نتیجه، یک مورد آزمون که خطاها را در دو نسخه بعدی تشخیص می‌دهد ممکن است مهم بودن خود را خیلی از دست دهد. زیربنای رگرسیون خطی نشان می‌دهد که احتمال، گرایش دارد تا تغییر برنامه را کاهش دهد.
عنصرهای کد منبع نیز مهم هستند برای اولویت‌دهی مورد آزمون فرض می‌کنند که ۱٫ هم داده خطای تاریخی و هم اطلاعات کد منبع برای اولویت‌دهی مورد آزمون در نسخه‌های بعدی ارزشمند هستند ۲٫ اولویت‌های موارد آزمون که خطاهایی را در نسخه‌ی قبلی اخیر شناسایی می‌کنند بهتر است افزایش یابند ۳٫ افزایش تعریف‌شده در ۲ آگاه از نسخه نرم‌افزار است و به‌صورت خطی کاهش خواهد یافت درنتیجه برنامه تغییر می‌کند. اولویت آگاه از نسخه مورد آزمون مشخص در نسخه k م به‌صورت رابطه (۲-۵) ارزیابی می‌شود.
(۲-۵)
Vers تعداد نسخه‌های برنامه است Cnum تعداد انشعاب‌های پوشش داده‌شده توسط مورد آزمون است،hk اطلاعات خطای تاریخی است (۱ است اگر موارد آزمون یک خطا را در نسخه k-1 م شناسایی کند در غیر این صورت صفر است). در نسخه اولیه روش ارائه‌شده، فقط اولویت‌دهی مورد آزمون مبتنی بر پوشش کد را ارائه می‌دهد، برای بقیه نسخه‌ها، از نسخه قبلی اخیر اولویت را به ارث می‌برد و بر اساس نتیجه آزمون نسخه قبلی اخیر، پوشش کد مورد آزمون و تعداد نسخه برنامه تنظیم می‌شود.
Marijan و همکاران روش مبتنی بر پیشینه‌ی ارائه دادند که تعداد موارد آزمون بیشتری در زمان محدود اجرا می‌کند ]۵۱[. در سطح اصلی، هدف اولویت‌دهی مورد آزمون رگرسیون پیدا کردن ترتیب اجرا برای مجموعه مشخص موارد آزمون است که تابع هدف مشخص را بهینه می‌کند. تابع هدف در محیط یکپارچه صنعت موردنظر ۱٫ انتخاب موارد آزمون با بالاترین نرخ خطای متوالی برای تعداد اجرای مشخص است و ۲٫ بیشینه کردن تعداد موارد آزمون اجراشده در محدوده زمان آزمون مشخص است.
تابع هدف g است. مجموعه موارد آزمون S = {S1, S2, …., Sn} و حالت‌های خطا برای هر مورد آزمون در S روی m اجرای متوالی اخیر (اگر مورد آزمون قبلا اجراشده باشد)، FS = {{fs1,1, fs2,1, …, fsm,1} , {fs1,2, fs2,2, …, fsm,2}, …, {fs1,n, fs2,n, …, fsm,n}} ، اولویت مرکب برای هر مورد آزمون محاسبه می‌شود} P = {PS1, PS2 , …,PSn؛ و زمان اجرای مورد آزمون Te = {Te1, Te2, …., Ten} است تابع هدف به‌صورت رابطه (۲-۶) تعریف می‌شود.
g = (maximize (p), minimize (Te)) (2-6)
مشکل اولویت‌دهی مورد آزمون به‌عنوان پیدا کردن ترتیب موارد آزمون از S به صورت رابطه (۲-۷) تعریف می‌شود:
(∀Si)(i = 1..n)g(Si) ≥ (g(Si+1) (2-7)
یک ایده در مورد تابع هدف زمان اجرای آزمون کوتاه مشخص در طول آزمون رگرسیون است، معیار اولویت‌دهی مؤثر باید موارد آزمونی را انتخاب کند که رد شدن در اجراهای آزمون قبلی به ترتیب زمانی را ثابت کند. بالاترین وزن خطا با خطای آشکارشده در اجرای قبلی متناظر است و خطا در هر اجرای مقدم کم‌وزن‌تر است از خطا در اجرای بعدی. اجرای دوباره موارد آزمون که در اجرای مقدم رد شدند، در آزمون رگرسیون اجباری است، بیشتر خطاها اغلب در دومین یا سومین اجرای اخیر شناسایی می‌شوند و در انجام دوباره بعدی درست می‌شوند، به علت تعمیر عیب سریع یا تأثیرات سریع که از تشخیص خطا جلوگیری می‌کند. مشابها اجرای مقدم موفق برای موارد آزمون اثر خطایش (مثل اولویت) را پایین می‌آورد. ایده دیگر در مورد تابع هدف زمان اجرای آزمون کوتاه مشخص در طول آزمون رگرسیون است بعلاوه انتخاب مورد آزمون که اخیرا رد شدند، معیار اولویت‌دهی مؤثر باید مورد آزمونی را انتخاب کند که سریع اجرا می‌شود، بنابراین برای افزایش تعداد موارد آزمون اجراشده، هر مورد آزمون بالقوه می‌تواند خطاها را شناسایی کند. اگر مورد آزمون زمان زیادی برای اجرا صرف کند، حتی اگر خطاها را در اجرا مقدم آشکار کند، اجرای این مورد آزمون از مورد آزمون رد شده با تأثیر (وزن) خطای یکسان اما بازمان اجرای کوتاه‌تر برای اجرا جلوگیری خواهد کرد
آن‌ها الگوریتمی به نام ROCKET معرفی کردند. ورودی الگوریتم چهار لایه است: مجموعه n مورد آزمون برای اولویت‌دهی S = {S1, S2, …, Sn}، زمان اجرا برای هر مورد آزمون Te = {Te1, Te2, …, Ten}، حالت‌های خطا برای هر مورد آزمون در S روی m اجرای بعدی FS ={FS1, FS2, …, FSn} جایی که FSi = {fs1, fs2, …, fsm} و زمان اجرای آزمون در دسترس. الگوریتم توسط دادن مقدار صفر اولویت به همه موارد آزمون آغاز می‌شود. بعد بر اساس FS, ماتریس خطای MF با سایز m*n ایجاد می‌شود و به‌صورت رابطه (۲-۸) پر می‌شود
(۲-۸)
مقدار فیلد در ماتریس برای هر مورد آزمون از مجموعه آزمون با اندازه n نشان داده می‌شود چه مورد آزمون در طول m اجرای بعدی اخیر انجام‌شده باشد یا رد شده باشد. اگر مورد آزمون رد شود، MF[i, j] -1 است در غیر این صورت ۱ است. هر سطر i در ماتریس، فاصله اجرای مورد مجموعه آزمون را از اجرای جاری i=0 نشان می‌دهد. فاصله وزن ωi تعین می‌شود که اثر خطای اتفاق افتاده در اجرای آزمون را بازتاب کند که i مرحله دور از اجرای آزمون جاری است.
با ماتریس خطای مشخص MF و تاریخچه وزن فاصله اجرای مجموعه آزمون، الگوریتم اولویت مرکب را برای هر مورد آزمون PS = {pS1, pS2, …, pSn} به‌صورت رابطه (۲-۹) محاسبه می‌کند
(۲-۹)
بعد الگوریتم ماتریس MPs×t را ایجاد می‌کند که موارد آزمون را از S به t کلاس بر اساس مقدار اولویت محاسبه‌شده دسته‌بندی می‌کند. s اندازه بزرگ‌ترین کلاس مورد آزمون است. همه موارد آزمون در یک کلاس مقدار اولویت یکسانی دارند که به‌اندازه ۱ برای کلاس بعدی افزایش می‌یابند. همه موارد آزمون از کلاس یکسان به‌طور مساوی مرتبط هستند برای اجرای مجموعه آزمون جاری، آن‌ها در زمان اجرایشان متفاوت هستند. با ماتریس MPs×t و زمان اجرای موارد آزمون، الگوریتم برای هر مورد آزمون چک می‌کند آیا زمان اجرایش از زمان آزمون در دسترس کلی تجاوز می‌کند. اگر تجاوز کند مورد آزمون ارزش اولویتش t+1 تعیین می‌شود. در غیر این صورت الگوریتم اولویت مورد آزمون pSi را باارزش زمان اجرایش که به [۰, ۱] نرمال شده افزایش می‌دهد، با توجه به زمان اجرای مورد آزمون بیشینه Tmax در S به‌صورت رابطه (۲-۱۰) است.
(۲-۱۰)
تابع هدف این روش ۱٫ انتخاب موارد آزمون با بالاترین نرخ خطای متوالی برای تعداد اجرای مشخص است و ۲٫ بیشینه کردن تعداد موارد آزمون اجراشده در محدوده زمان آزمون مشخص است.
ضعف این روش این است که وابسته به تکرارهای قبلی هست که باید اطلاعات را نگه دارد و باعث زیادشدن حجم محاسبات می‌شود.
انسان و همکاران ]۵۲[ روشی را برای انتخاب و اولویت‌دهی ارائه کردند که از مدل خصوصیت و مدل هدف استفاده می‌کند. برای آزمون جامع مدل مشخصه با n خصوصیت،۲پیکربندی مدل خصوصیت (مورد آزمون) باید آزمون شود. اگر فرایند آزمون هر پیکربندی زمانی برابر با t نیاز داشته باشد، پیچیدگی زمانی آزمون جامع مدل خصوصیت O(2n*t) می‌شود که این پیچیدگی عملی نیست. برای بازده بهتر در آزمون، پیدا کردن نقطه مبادله قابل‌قبول بین پوشش اشتباه و تعداد موارد آزمون به کار گرفته‌شده مطلوب است. برای به دست آوردن این اهداف، روش دو مرحله برای کاهش تعداد موارد آزمون پیشنهاد شد. این روش مبنی بر فرضیاتی است که برای سهامدار مهم‌تر است. به همین دلیل این خصوصیات اولویت بالاتری در فرایند آزمون دارند. در مرحله اول این روش (انتخاب خصوصیت) فضای جستجوی خصوصیت مدل خصوصیت با انتخاب خصوصیت که با مهم‌ترین اهداف و واقعیت سهامداران همبسته است انتخاب می‌شود. سپس در مرحله دوم (اولویت‌دهی مورد آزمون) پیکربندی ممکن این مدل خصوصیت کاهش‌یافته اولویت‌دهی می‌شود. این اولویت‌دهی به مهندسان آزمون اجازه می‌دهد p تا از بالاترین موارد آزمون مبتنی بر منابع در دسترسشان را انتخاب و اولویت‌دهی کنند. نکته قابل‌ذکر این است که مدل‌های هدف استفاده‌شده در این مقاله برتری‌ها و اهداف سهامداران را باملاحظه دامنه هدف ارائه می‌کند و به کاربرد هدف مشخصان دامنه اشاره نمی‌کند.
مرحله اول این روش انتخاب خصوصیت است. هدف این مرحله کاهش اندازه مدل خصوصیت از n خصوصیت به تعداد کمتر m خصوصیت است. این نکته با یافتن ارتباط بین مدل‌های خصوصیت و مدل هدف سهامداران به دست می‌آید. این ارتباط انتخاب خصوصیاتی که به مهم‌ترین اهداف و واقعیت‌های سهامداران که در مدل هدف ارائه‌شده را مهیا می‌کند. مطمئن می‌شود که فرایند انتخاب خصوصیت، مبتنی بر دامنه اهداف و ترجیحات سهامداران است. با استفاده از روش انتخاب خصوصیت می‌توانیم اندازه مدل خصوصیت را کاهش دهیم. موضوع اصلی استفاده برچسب انتشار در مدل هدف برای شناسایی خصوصیات مهم‌تر در مدل خصوصیت است.
ورودی این مرحله تطابق بین دامنه مدل هدف سهامدار و مدل خصوصیتی که آزمون می‌شود، است. خروجی این مرحله مدل خصوصیت با کاهش به‌اندازه کافی با m خصوصیت است (۰<m<<n که مهندس آزمون تعیین می‌کند). مزیت اجرای این مرحله خصوصیاتی که از دید دامنه سهامداران کمتر مهم است و احتمال کمتری دارد تا در محصول نهایی خط تولید واقعی باشد از مدل خصوصیت حذف می‌شود و فضای آزمون به‌طور قابل‌ملاحظه کاهش می‌یابد.
مرحله دوم اولویت‌دهی مورد آزمون است. در مرحله اول می‌توانیم اندازه فضای آزمون را با حذف خصوصیات کم‌اهمیت از مدل خصوصیت کاهش دهیم. نتیجه این است که بجای آزمون ۲n مورد آزمون، فقط ۲m مورد آزمون نیاز است که خیلی کوچک‌تر است ۲n ۲m. به‌هرحال اگرچه مرحله انتخاب خصوصیت به‌طور قابل‌ملاحظه اندازه فضای آزمون را کاهش می‌دهد، ولی هنوز درجه‌دو است. می‌خواهیم مجموعه آزمون اندازه خطی داشته باشد. اولویت‌دهی برای ۲m مورد آزمون انجام می‌شود.
(α) Φ تابعی است که α مورد آزمون را می‌گیرد و آن‌ها را به ترتیب رتبه مشخص مرتب می‌کند. این تابع موارد آزمون مرتب‌شده را برمی‌گرداند. f(g)A[W] این تابع اهداف سهام‌داران را به‌عنوان ورودی می‌گیرد و اولویت ارتباطی بین آن‌ها تهیه می‌کند، G مدل هدف است که شامل اهدافی است که باید ارزیابی شود و A[W] ماتریس شامل اولویت ارتباط‌ها بین اهداف است. S-AHP ایده آل برای ارائه f(g) است و می‌تواند A[W] را بر اساس نظرات دامنه سهامداران گسترش دهد. اگر g=[G1,G2,…Gm] باشد f(g)=[Wij]m*m و ا . Wijبه وزن مربوط به هدف i با توجه به هدف j اشاره دارد. f(g) امکان ایجاد یک ترتیب جزی بین اهداف است. ارتباط این ترتیب جزی بین اهداف دامنه سهامداران می‌تواند برای تعریف اهمیت خصوصیاتی که در مدل خصوصیت متناظر در دسترس هستند استفاده شوند. اهمیت هر هدف با رتبه‌اش در ترتیب جزی تعیین می‌شود. هدف با بالاترین رتبه بالاترین اهمیت را دارد و هدف یا پایین‌ترین رتبه اهمیت ۱ دارد . اهمیت خصوصیت f ، eight(f) ، رتبه‌ی هدف متناظرش در مدل هدف است (خصوصیت وصل شده به بیش از یک هدف بر اساس مهم‌ترین هدفش وزن‌دار می‌شود) .دلیل اصلی برای رتبه تابع ترتیب (α) Φ کاملاً با ایده مرحله اول مشابه است .یعنی خصیوصیات اهداف دامنه سهامداران بااهمیت بالا احتمال بالاتری برای ظاهر شدن در محصولات نرم‌افزاری نهایی دارند و درنتیجه اولویت بالاتری در هنگام اجرای آزمون‌ها دارد. موارد آزمون که مجموعه خصوصیات مهم‌تر را دارد اولویت بالاتری دارد تا آزمون شود در مقایسه با موارد آزمونی که خصوصیات کم‌اهمیت‌تر دارند.

 

 
 
 
yle="box-sizing: inherit; width: 1104px;" width="531">