Validating multi-objective search algorithms to predict faulty classes
摘要
A recent multi-objective optimization (MOO) problem in software engineering domain is the prediction of faulty classes in a software. It is essentially a trade-off between two conflicting objectives: (a) minimizing the number of classes to be recommended and (b) maximizing the relevance of Application Program Interface (API) document and the bug description. Evolutionary algorithms (EA) seem to be well suited to solve such MOO problems as they parallelly generate a set of solutions that can balance various constraints by effectively using the crossover operator. This study evaluates the use of two EA namely the Non-dominated Sorting Genetic Algorithm (NSGA II) and the Strength Pareto Evolutionary Algorithm 2 (SPEA 2) to predict faulty classes. The results are empirically validated on six open-source Java projects and indicated the effectiveness of both the investigated EA with average values up to 0.75 and 75% for g-mean and balance performance measures respectively. A further statistical analysis of the results indicates the superiority of the NSGA II algorithm over the SPEA 2 as well as mono-objective algorithms with an improvement of up to 22% in f-measure values.