Efficient software mutation test by clustering the single-line redundant mutants

dc.authoridArasteh, Bahman/0000-0001-5202-6315
dc.contributor.authorArasteh, Bahman
dc.contributor.authorGhaffari, Ali
dc.date.accessioned2024-05-19T14:46:44Z
dc.date.available2024-05-19T14:46:44Z
dc.date.issued2024
dc.departmentİstinye Üniversitesien_US
dc.description.abstractPurposeReducing the number of generated mutants by clustering redundant mutants, reducing the execution time by decreasing the number of generated mutants and reducing the cost of mutation testing are the main goals of this study.Design/methodology/approachIn this study, a method is suggested to identify and prone the redundant mutants. In the method, first, the program source code is analyzed by the developed parser to filter out the effectless instructions; then the remaining instructions are mutated by the standard mutation operators. The single-line mutants are partially executed by the developed instruction evaluator. Next, a clustering method is used to group the single-line mutants with the same results. There is only one complete run per cluster.FindingsThe results of experiments on the Java benchmarks indicate that the proposed method causes a 53.51 per cent reduction in the number of mutants and a 57.64 per cent time reduction compared to similar experiments in the MuJava and MuClipse tools.Originality/valueDeveloping a classifier that takes the source code of the program and classifies the programs' instructions into effective and effectless classes using a dependency graph; filtering out the effectless instructions reduces the total number of mutants generated; Developing and implementing an instruction parser and instruction-level mutant generator for Java programs; the mutant generator takes instruction in the original program as a string and generates its single-line mutants based on the standard mutation operators in MuJava; Developing a stack-based evaluator that takes an instruction (original or mutant) and the test data and evaluates its result without executing the whole program.Competing interests: The authors declare that no funds, grants, or other support were received during the preparation of this manuscript. The authors have no relevant financial or nonfinancial conflict of interest.Authors' contribution statement: The proposed method was developed and discretized by the authors. The designed algorithm was implemented and coded by the authors. The implemented method was adapted and benchmarked by the authors. The data and results analysis were performed by the authors. The manuscript of the paper was written by the authors.Ethical and informed consent for data used: The data used in this research does not belong to any other person or third party and was prepared and generated by the researchers themselves during the research. The data of this research will be accessible to other researchers.Data availability access: The data relating to the current study is available in google.drive and can be freely accessed by the following link:https://drive.google.com/drive/folders/1d69XSBZ-ioInjPw9L4qp-3BBe2jlkkfv?usp=share_linkOriginality/valueDeveloping a classifier that takes the source code of the program and classifies the programs' instructions into effective and effectless classes using a dependency graph; filtering out the effectless instructions reduces the total number of mutants generated; Developing and implementing an instruction parser and instruction-level mutant generator for Java programs; the mutant generator takes instruction in the original program as a string and generates its single-line mutants based on the standard mutation operators in MuJava; Developing a stack-based evaluator that takes an instruction (original or mutant) and the test data and evaluates its result without executing the whole program. Competing interests: The authors declare that no funds, grants, or other support were received during the preparation of this manuscript. The authors have no relevant financial or nonfinancial conflict of interest.Authors' contribution statement: The proposed method was developed and discretized by the authors. The designed algorithm was implemented and coded by the authors. The implemented method was adapted and benchmarked by the authors. The data and results analysis were performed by the authors. The manuscript of the paper was written by the authors.Ethical and informed consent for data used: The data used in this research does not belong to any other person or third party and was prepared and generated by the researchers themselves during the research. The data of this research will be accessible to other researchers.Data availability access: The data relating to the current study is available in google.drive and can be freely accessed by the following link:https://drive.google.com/drive/folders/1d69XSBZ-ioInjPw9L4qp-3BBe2jlkkfv?usp=share_linkOriginality/valueDeveloping a classifier that takes the source code of the program and classifies the programs' instructions into effective and effectless classes using a dependency graph; filtering out the effectless instructions reduces the total number of mutants generated; Developing and implementing an instruction parser and instruction-level mutant generator for Java programs; the mutant generator takes instruction in the original program as a string and generates its single-line mutants based on the standard mutation operators in MuJava; Developing a stack-based evaluator that takes an instruction (original or mutant) and the test data and evaluates its result without executing the whole program.Competing interests: The authors declare that no funds, grants, or other support were received during the preparation of this manuscript. The authors have no relevant financial or nonfinancial conflict of interest.Authors' contribution statement: The proposed method was developed and discretized by the authors. The designed algorithm was implemented and coded by the authors. The implemented method was adapted and benchmarked by the authors. The data and results analysis were performed by the authors. The manuscript of the paper was written by the authors.Ethical and informed consent for data used: The data used in this research does not belong to any other person or third party and was prepared and generated by the researchers themselves during the research. The data of this research will be accessible to other researchers.Data availability access: The data relating to the current study is available in google.drive and can be freely accessed by the following link:https://drive.google.com/drive/folders/1d69XSBZ-ioInjPw9L4qp-3BBe2jlkkfv?usp=share_linkOriginality/valueDeveloping a classifier that takes the source code of the program and classifies the programs' instructions into effective and effectless classes using a dependency graph; filtering out the effectless instructions reduces the total number of mutants generated; Developing and implementing an instruction parser and instruction-level mutant generator for Java programs; the mutant generator takes instruction in the original program as a string and generates its single-line mutants based on the standard mutation operators in MuJava; Developing a stack-based evaluator that takes an instruction (original or mutant) and the test data and evaluates its result without executing the whole program. Competing interests: The authors declare that no funds, grants, or other support were received during the preparation of this manuscript. The authors have no relevant financial or nonfinancial conflict of interest.Authors' contribution statement: The proposed method was developed and discretized by the authors. The designed algorithm was implemented and coded by the authors. The implemented method was adapted and benchmarked by the authors. The data and results analysis were performed by the authors. The manuscript of the paper was written by the authors.Ethical and informed consent for data used: The data used in this research does not belong to any other person or third party and was prepared and generated by the researchers themselves during the research. The data of this research will be accessible to other researchers.Data availability access: The data relating to the current study is available in google.drive and can be freely accessed by the following link:https://drive.google.com/drive/folders/1d69XSBZ-ioInjPw9L4qp-3BBe2jlkkfv?usp=share_linkOriginality/valueDeveloping a classifier that takes the source code of the program and classifies the programs' instructions into effective and effectless classes using a dependency graph; filtering out the effectless instructions reduces the total number of mutants generated; Developing and implementing an instruction parser and instruction-level mutant generator for Java programs; the mutant generator takes instruction in the original program as a string and generates its single-line mutants based on the standard mutation operators in MuJava; Developing a stack-based evaluator that takes an instruction (original or mutant) and the test data and evaluates its result without executing the whole program.Competing interests: The authors declare that no funds, grants, or other support were received during the preparation of this manuscript. The authors have no relevant financial or nonfinancial conflict of interest.Authors' contribution statement: The proposed method was developed and discretized by the authors. The designed algorithm was implemented and coded by the authors. The implemented method was adapted and benchmarked by the authors. The data and results analysis were performed by the authors. The manuscript of the paper was written by the authors.Ethical and informed consent for data used: The data used in this research does not belong to any other person or third party and was prepared and generated by the researchers themselves during the research. The data of this research will be accessible to other researchers.Data availability access: The data relating to the current study is available in google.drive and can be freely accessed by the following link:https://drive.google.com/drive/folders/1d69XSBZ-ioInjPw9L4qp-3BBe2jlkkfv?usp=share_linken_US
dc.identifier.doi10.1108/DTA-05-2023-0152
dc.identifier.issn2514-9288
dc.identifier.issn2514-9318
dc.identifier.scopus2-s2.0-85191351759en_US
dc.identifier.scopusqualityQ2en_US
dc.identifier.urihttps://doi.org10.1108/DTA-05-2023-0152
dc.identifier.urihttps://hdl.handle.net/20.500.12713/5584
dc.identifier.wosWOS:001207578400001en_US
dc.identifier.wosqualityN/Aen_US
dc.indekslendigikaynakWeb of Scienceen_US
dc.indekslendigikaynakScopusen_US
dc.language.isoenen_US
dc.publisherEmerald Group Publishing Ltden_US
dc.relation.ispartofData Technologies and Applicationsen_US
dc.relation.publicationcategoryMakale - Uluslararası Hakemli Dergi - Kurum Öğretim Elemanıen_US
dc.rightsinfo:eu-repo/semantics/closedAccessen_US
dc.snmz20240519_kaen_US
dc.subjectSoftware Mutation Testingen_US
dc.subjectSingle-Line Mutantsen_US
dc.subjectRedundant Mutanten_US
dc.subjectMutant Clusteringen_US
dc.subjectCost Of Mutation Testen_US
dc.titleEfficient software mutation test by clustering the single-line redundant mutantsen_US
dc.typeArticleen_US

Dosyalar