Chapter 1. Introduction
This chapter discusses an initial introduction to the research area by explaining the fundamentals of software testing, regression testing, and categorization of regression testing techniques. It also identifies the challenges and issues in regression testing like redundancy, limited resources and time budget, which becomes the motivation for researching the domain of regression testing. This chapter also briefs about the significance of nature-inspired algorithms, their classifications and applications in different areas. The problem definition tells about why nature-inspired based paradigms have been used for the study, followed by goals and objectives, and contributions of the thesis.
Chapter 2. Review of Literature
This chapter provides the study and review of the literature regarding regression testing techniques and nature-inspired algorithms. Firstly, it discusses the initial research which examines the status of nature-inspired algorithms for regression testing. It explains which nature-inspired algorithms used in which regression testing techniques, what kind of data sets used, objectives and other factors considered for the research. Exhaustive survey reveals that the test case prioritization and genetic algorithms are the popular candidates among regression testing techniques and nature-inspired algorithms, respectively.
Secondly, the results of the survey motivate to conduct a systematic literature review to conduct an in-depth study about how to map the test case prioritization problem to the genetic algorithm, types of operators, parameters used and fitness function design. It classified the studies into seven classes, namely research methodology, prioritization method, kind of GA used application specification, test suite size, performance metrics and validation criteria.
Thirdly, this chapter tells about the potential research gaps in the literature, e.g., lack of use of physics/chemistry inspired algorithms, hybrid algorithms, statistical validation of results, parameter tuning, which lead to the formation of subsequent chapters.
Chapter 3. Research Methodology
This chapter organized to discuss the research methodology, i.e., the selection of regression testing techniques, datasets, algorithms, performance metrics, validation criteria and programming tools. It also gives the theoretical foundations for mapping the test case prioritization problem to nature-inspired algorithms. It shows that the test case prioritization problem requires different population representation as compared to binary and real encoding. The genetic algorithms have special operators for this purpose, like a partially matched crossover and ordered crossover. Other nature-inspired algorithms have a few operators, which leads to the development of a new transfer function, which converts the real coded population to permutation coded population. This chapter discusses the working of this proposed transfer function. This transfer function used in all the proposed algorithms and the results show its success.
Furthermore, the chapter also provides the general prioritization framework for all the proposed algorithms. In the first step, for a fair comparison, the same initial population, generation size and population size and number of executions are fed into each proposed algorithm. The second step evaluates the fitness of the initial population and stores the local and global best fitness. The underlying difference in the different nature-inspired algorithms is the criteria for population update, and the third step performs this task. The best solution of the generation undergoes the minimization procedure, which truncates the redundant test cases and keeps the test cases which are sufficient enough to cover all the faults. The fourth step evaluated the fitness of the updated population and fed the best solutions to the new generation. The process continues to the maximum number of generations. Moreover, the quality of the solutions enhanced by tuning the parameters of the algorithms using the Taguchi method.
Chapter 4. Hybrid Genetic and Cuckoo Search Algorithms for Test Case Prioritization and Minimization
This chapter provides detailed information on the genetic algorithm, cuckoo search and hybrid version of genetic and cuckoo search for test case prioritization and minimization. In other words, it discusses their working, inputs, experimental settings and results and analysis. As per the literature study, most of the researchers used default parameter settings. This chapter starts with the experiment over a genetic algorithm to show that the parameter settings and operator selection have a significant impact on the quality of the solution. The performance of the algorithm compared with the well-known performance metric of test case prioritization, i.e., Average Percentage of Fault Detection (APFD). It found that the tournament selection scheme performed well than other selection schemes. The product of population size and generation size proportionate to the fitness function evaluations, so their values affect the final result and time overheads. Later in this chapter, the cuckoo search algorithm and the hybrid version of the genetic and cuckoo search algorithm are proposed with the help of a new transfer function. The case studies results reveal that the hybrid version performed better than the genetic algorithm and cuckoo search algorithm in terms of APFD and minimized suite size. In other words, the proposed hybrid algorithm works better than random search, cuckoo and genetic algorithms.
Chapter 5. Test Case Prioritization and Minimization using Bat algorithm and its improved version
This chapter discusses the bat algorithm and its improved version for test case prioritization and test case minimization. The preliminary experiment on a minor project of time table management system shows that the bat algorithm performs better than the random search and genetic algorithm. It inspires us to validate the results in more case studies. Though the proposed bat algorithm performed better than the random search still, the results are not satisfactory. It leads to the improvement of the bat algorithm. Detailed analysis and statistical validation on case studies from software benchmark repository proved that the enhanced bat algorithm performed better than the bat algorithm, genetic algorithm and random search both in terms of APFD and minimized suite size.
Chapter 6. Test Case Prioritization and Minimization using Gravitational Search and its Improved Version
This chapter discusses in detail the physics-inspired algorithm (unexplored category), i.e. gravitational search algorithms. The experimental results showed that the physics-inspired algorithms have the potential to solve the problem as the algorithm performs better than the genetic algorithm and random search. Furthermore, this chapter provides the improved version of the gravitational search algorithm for test case prioritization and minimization. It adds chaos theory to the gravitational constant of the gravitational search algorithm fed to the chaotic map as initial input. A small perturbation in initial input may lead to a significant change in the future. This non-linear phenomenon occurs due to the feedback mechanism. The statistical validation of case studies shows that the chaotic gravitational search algorithm performed better than the gravitational search algorithm and random search.
Chapter 7. Hybrid Particle Swarm and Gravitational Search Algorithm for Test Case Prioritization and Minimization
This chapter provides detailed information about working, experimental settings, results and statistical analysis of the test case prioritization and minimization using particle swarm optimization, gravitational search algorithm and a hybrid version of particle swarm and gravitational search algorithm. The hybrid particle swarm gravitational search algorithm is better the particle swarm optimization and gravitational search algorithm. Overall, this hybrid algorithm outperformed all the proposed algorithms.
Chapter 8. Conclusions and Future Work
This chapter summarizes the research contribution by highlighting conclusions, significance, limitations of the present study and future directions.