To read this content please select one of the options below:

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

Bahman Arasteh (Department of Software Engineering, Faculty of Engineering and Natural Science, Istinye University, Istanbul, Turkey) (Applied Science Research Center, Applied Science Private University, Amman, Jordan)
Ali Ghaffari (Department of Computer Engineering, Faculty of Engineering and Natural Science, Istinye University, Istanbul, Turkey)

Data Technologies and Applications

ISSN: 2514-9288

Article publication date: 25 April 2024

Issue publication date: 4 November 2024

88

Abstract

Purpose

Reducing 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/approach

In 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.

Findings

The 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/value

Developing 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.

Keywords

Citation

Arasteh, B. and Ghaffari, A. (2024), "Efficient software mutation test by clustering the single-line redundant mutants", Data Technologies and Applications, Vol. 58 No. 5, pp. 807-837. https://doi.org/10.1108/DTA-05-2023-0152

Publisher

:

Emerald Publishing Limited

Copyright © 2024, Emerald Publishing Limited

Related articles