ارائه رویکردی برای شناسایی و طبقه بندی جهشها براساس ویژگیهای جهش ها با الگوریتم های یادگیری ماشین
محورهای موضوعی : فناوری اطلاعات و ارتباطاتزینب اصغری 1 , بهمن آراسته 2 , عباس کوچاری 3
1 - دانشگاه آزاد اسلامی واحد علوم و تحقیقات تهران
2 - دانشگاه آزاد اسلامی واحد تبریز
3 - دانشگاه آزاد اسلامی واحد علوم و تحقیقات تهران-تهران
کلید واژه: آزمون نرم افزار, آزمون جهش , جهش¬های معادل, کفایت آزمون , امتیاز جهش,
چکیده مقاله :
آزمون جهش نرم افزار، یکی از روش¬های موثر برای ارزیابی کیفیت کد و تشخیص خطاهای پنهان است. با این حال، این روش با چالش¬هایی مانند تولید جهش¬های معادل و زمان¬بر بودن فرایند مواجه است. موردآزمونهای طراحی شده برای آزمون نرم¬افزار باید از کفایت لازم برخوردار باشند. برای این کار از معیار امتیاز آزمون جهش استفاده می¬شود. یکی از مسائل اصلی مرتبط با آزمون جهش نرم افزار، تولید جهش¬های معادل است. جهش¬های معادل، جهش¬هایی هستند که باعث تغییر در رفتار برنامه نمی¬شوند و خروجی یکسانی با برنامه اصلی دارند. شناسایی این جهش¬ها می¬تواند فرایند آزمون جهش را زمان¬بر و هزینه¬بر کند. همچنین امکان دارد این جهش¬ها به اشتباه در دسته جهش¬های سرسخت قرار بگیرند. درحالی که جهش¬های سرسخت را میت¬وان با تغییر موردآزمونها و تقویت آنها پیدا کرد. در این مقاله، ما به بررسی روشی برای طبقه¬بندی جهش¬های برنامه برای شناسایی و جداسازی جهش¬های معادل از جهش¬های سرسخت می پردازیم. با استفاده از الگوریتم های یادگیری ماشین، ما قصد داریم که این فرایند را بهینه سازی کنیم و کارآمدی و کارایی روش را بهبود دهیم. این کار با استخراج ویژگی های مختلف از جهش ها و استفاده از آنها برای آموزش مدل های یادگیری ماشین انجام می شود.
Software mutation testing is one of the effective methods to evaluate code quality and detect hidden errors. However, this method faces challenges such as producing equivalent mutants and the process being time-consuming. The test cases designed for software testing must have the necessary sufficiency. For this purpose, the criterion of mutation test score is used. One of the main issues related to software mutation testing is the generation of equivalent mutants. Equivalent mutants are mutants that do not change the behavior of the program and have the same output as the original program. Identifying these mutants can make the mutation testing process time-consuming and costly. It is also possible that these mutants are mistakenly classified as hard to kill mutants. While hard to kill mutants can be rejected by changing the test items and strengthening them. In this paper, we present an efficient method for classifying program mutants to identify and separate equivalent mutations from hard to kill mutants. Using machine learning algorithms, we intend to optimize this process and improve the efficiency and effectiveness of the method. This is done by extracting different features from the mutants and using them to train machine learning models.