Investigação de similaridade entre programas para apoiar o teste de mutação
Resumen
Context: The Mutation Analysis criterion – or, mutation testing – allows both the evaluation of test sets and the identification of faults present in the software. The criterion is considered effective, however has gaps in relation to its efficiency. Many cost reduction techniques have been presented however, the results yielded by these techniques are little generalizable to different groups of programs. Some studies in this context presented heuristics to calculate similarity between programs as a way to support cost reduction, but the calculation was not the central theme of the studies. Goals: This work investigated the similarity between programs, in the context of mutation testing of object-oriented programs, as primary information source to support the definition of a strategy to reduce the cost of the criterion. Methodology: The work included: (i) A literature research to characterize the similarity calculation in the presented context; (ii) The definition of a conceptual framework to apply similarity as a supportive technique for cost reduction strategies; and (iii) automation of the framework. The similarity is inferred through the clustering of CK metrics information. The tool also handles calculation and results from the employed cost reduction techniques; and (iv) An experiment and results analysis. Java classes were clustered and the values of mutation scores per operator of the classes and clusters were calculated. In the context of the One-Op cost reduction technique, the best candidate operators were compared between the generated groups and the classes individually. Results: As results, we have the description of similarity calculation in the presented context; a conceptual framework and respective support tool; and a experiment in 38 classes organized in 3 databases. Conclusion: The relevance of similarity was observed, thus allowing for further experiments involving operators obtained from similar programs to be applied to untested programs in the context of the criterion and strategy of cost reduction.