Systematic Review of Empirical Literature in Search Based Test Case Optimization A Thesis Presented to Department of Computer Sciences Faculty of Basic &Applied Sciences By Beenish Fatima 293-FBAS/MSSE-F09 International Islamic University Islamabad (2013) 1 Abstract As the software is modified, new test cases are added to the test suite that is designed for initial version of software, the size of test suite grows and cost of regression testing increases. In order to decrease the cost of regression testing, researchers have focused on test case optimization (TCO) techniques, which identify a subset of test cases that provide same coverage of software as the original test suite. There are many techniques for test case optimization but there the main focus is on search based techniques as they find the optimal solutions for problems where analytical algorithms are either infeasible or too complex with huge solution space. The overall objective of performing systematic review is to identify the impact of search based algorithms on test case optimization approaches (prioritization, selection, reduction and optimized test case generation) by scope, performance and cost of software testing. This SLR is conducted on 62 articles, and find the algorithms used in each approach and group them according to their similarities. Also extract the factors that affect the performance of algorithms and the comparison of the algorithms on the bases of coverage of SUT, execution time, error finding rate, stability of results, and minimum resulted test suite produce, within each optimization approach. 2 Table of Content Chapter 1 1. Introduction……………………………………………………………………………...7 1.1. Test Case Optimization .................................................................................................8 1.1.1. Test Case Prioritization......................................................................................8 1.1.2. Test Case Selection ...........................................................................................9 1.1.3. Test Case Reduction ..........................................................................................9 1.1.4. Test Case Generation ......................................................................................10 1.2. Search Based Software Testing…………………………………………………….10 1.3. Aims and Objectives ……………………………………………………………….11 1.4. Expected outcome ………………………………………………………………….12 1.5. Research Methodology……………………………………………………………..12 Chapter 2 2. Protocol Definition..........................................................................................................14 2.1. Research Questions......................................................................................................14 2.2. Detail of Questions .....................................................................................................14 2.3. Search Strategy ...........................................................................................................15 2.3.1. Strategy for Search terms ................................................................................15 2.3.2. Resources to be searched .................................................................................17 2.3.3. Other sources to be searched ...........................................................................17 2.4. Study selection criteria ................................................................................................17 2.4.1. Study of inclusion and Exclusion Criteria .......................................................17 2.4.2. Quality Instrument for assessing validity.........................................................18 Chapter 3 3. Protocol Executions.........................................................................................................20 3.1. Search String Results..................................................................................................20 3.2. After Exclusion Filter 1...............................................................................................27 3.3. After Exclusion Filter 2...............................................................................................27 Chapter 4 4. Result for Research Question.........................................................................................33 4.1. Research Question 1....................................................................................................33 3 4.2. Research Question 2.....................................................................................................36 4.3. Research Question 3....................................................................................................37 Chapter 5 5. Analysis for Questions....................................................................................................43 5.1. Research Question 1.....................................................................................................43 5.2. Research Question 2.....................................................................................................48 5.3. Research Question 3....................................................................................................51 Chapter 6 6. Conclusion.......................................................................................................................57 References…………………………………………………………………………………..59 Appendix Appendix A…………………………………………………………………………………67 Appendix B…………………………………………………………………………………88 4 List of Figures Figure 1: Number of Algorithm used in each Approach…………………………………….43 Figure 2: Algorithms used in Prioritization ………………………………………………….44 Figure 3: Algorithms used in Selection……………………………………………………....45 Figure 4: Algorithms used in Reduction …………………………………………………….45 Figure 5: Algorithms used in Optimized Generation ………………………………………..46 5 List of Tables Table 1: Quality Instrument Checklist for Assessing the Articles…………………………...19 Table 2: Search string result of ACM………………………………………………………..20 Table 3: Search string result of IEEE………………………………………………………..22 Table 4: Search string result of Science Direct………………………………………………23 Table 5: Search string result of Springerlink…………………………………………………25 Table 6: Exclusion filter 1 result……………………………………………………………..27 Table 7: List of selected articles for SLR……………………………………………………27 Table 8: Detailed quality score of selected articles…………………………………………..31 Table 9: Algorithms used in each optimization approach……………………………………33 Table 10: List of factors affecting the performance of the algorithms……………………….36 Table 12: Performance Comparison of algorithms………………………………………......37 6 Chapter1: Introduction This chapter defines the background and introduction of important topics come in this systematic literature review 1. Introduction Software development is evolving in nature because requirements of customers change over time. To maintain the quality in software, testing is very important. Software testing is an investigation method conducted to provide stakeholders with information about the quality of the product or service under test [1]. Testing plays a vital role in every stage of software development life cycle (SDLC) and if not done properly, it can mess-up the software product. In integration of software product components and in modified software, where client suggests some modifications during maintenance period; regression testing is done to validate the correct working and to maintain quality of software after modifications. For quality we have to retest the whole software again with all test cases, as little change in code may affect some other parts of code which is pre-verified. This is regression testing which is time consuming to the extent that it may take several weeks and becomes costly. Normally, in practice there is not enough time to re-test the software in entirety with all test cases, for this purpose we apply test case optimization, to conduct major or critical testing first, that if either time is short or if we have to quit the testing because of resources then major objective of testing i.e. at least coverage of essential requirements or code should be achieved. This increases testing effectiveness in terms of time and cost. Test case optimization is a technique which minimizes the number of test cases to be executed by set criteria, which provides the same coverage as original test suite. For optimizing the test cases, two main approaches can be considered; generate the optimized test cases by using algorithms or to apply optimization strategy on already generated pool of test cases. Example if we have only 15 test cases then 15! = 1,307,647,368,000 different orders can develop. It is very difficult task to know the most efficient order (or subset) among this 7 solution space to choose for testing. In existing research studies there are many techniques/algorithms for automatic optimization. Classic techniques and Search based techniques are two approaches. Classical algorithms are straight forward deterministic algorithms which are often incapable in real world softwares because the problems have objectives that cannot be characterized by a set of liner equations because these problems are very complex. But in this research my main focus is on search based techniques. As by search based techniques we can achieve better results at lower cost, and freeing the testers to work on testing problems that require more imagination and creativity. This Systematic Literature Review (SLR) is on Search Based Techniques used for Test case optimization having empirical evidence in literature. The scope comprises of search based techniques used for test case prioritization, test case reduction, test case selection and optimized test case generation. 1.1. Test Case Optimization The Test case Optimization techniques are employed to decrease the number test cases to be tested by utilizing two methods. To acquire optimized test cases are generated by two different systems, either generate optimized test cases or apply optimization on already generated test cases. For already generated test suites optimization, the approaches used are test case selection, reduction and prioritization. Test case selection is to select some test cases in a subset from original test set according to some criteria. Test-suite reduction is to reduce test suite by removal of test cases and test-suite prioritization is an ordering of the test cases in the test suite according to the basis of coverage or fault detection rate but the original number of test cases remain same. These approaches are discussed in detail as follow: 1.1.1. Test Case Prioritization Test case prioritization typically sorts existing test cases according to pre-set performance goals. Prioritization is done either by coverage criteria or fault exposing rate. Coverage based prioritization techniques prioritize test cases according to the quantity of statements, branches, paths, or functions executed by the test cases. And fault exposing prioritization 8 techniques reorder test cases based on the capability of the test case in terms of exposing the faults. History-based test prioritization techniques sort the test cases in terms of the historical value, calculated from the test case execution history, such as covered program entities. In general, test case prioritization, given program P and test suite T, test cases in T are prioritized with the intent of finding an ordering of test cases that will be useful over a succession of subsequent modified version of P. The Test Case Prioritization Problem: Given: T a test suite; PT the set of permutations of T; f a function from PT to the real numbers. [63] Problem: Find T` ϵ PT Here, PT represents the set of all possible prioritizations (orderings) of T and f is a function that, applied to any such ordering, yields an award value for that ordering. 1.1.2. Test Case Selection Test case selection selects few test cases from test suite in a subset by a defined technique. This subset has same coverage as main large test suite. The problem of test case selection can be formalized as: “Given a test suite TS that detects a set of faults (F) in the system, our goal is to maximize FD(sn), where sn is a subset of TS of size n and FD(sn) is the percentage of F which is detected by sn” [51]. 1.1.3. Test Case Reduction When more than one test covers the same requirement, the tests have an overlap in coverage that suggests the possibility of removing some tests while maintaining test suite completeness. Even though test suite reduction maintains 100% coverage of the requirements, it does not guarantee the same fault detection capabilities as the original test suite. The formal definition of test suite reduction problem is as follows: Problem: Find minimal test suite T' from T which satisfies all ris covered by original suite T. 9 Given: {t1, t2,…, tm} is test suite T from m test cases and {r1, r2,…, rn} is set of test requirement that must be covered in order to provide desirable coverage of the program entities and each subsets {T1, T2,…, Tn} from T are related to one of ris such that each test case tj belonging to Ti satisfies ri. [39] 1.1.4. Test Case Generation Test Cases are generated by automated tools e.g. JUnit, by using UML models as input, Therefore at this level if a an optimized technique is used on UML model’s input, then optimized set of test cases can be generated. Genetic algorithm is widely used for this purpose. There is a lot of work in literature related to optimization of test cases, as Zehng Li [4] et al discussed and compared different search based algorithms for test case prioritization. And L. Camila [12] performed comparison between NSGA-II, MoCell, SPEA2 and Random algorithm. Here comparison is done on the bases of requirements coverage and execution time. On the base of Requirements coverage; Random is worst whereas, SPEA2 seems to have a better performance for smaller search spaces, while NSGA-II and MOCell have better performance for larger search spaces and on time bases; Random algorithm had the best lowest execution time. The second best execution time was obtained by MOCell, followed by NSGA-II. SPEA2 was slowest algorithm. 1.2. Search Based Software Testing Search based software engineering (SBSE) is a new system which was introduced by “Mark Harman and Jones” in 2001 [2]. “SBSE is an approach in which search based optimization algorithms are used to address problems in software engineering” [3]. This approach is most practical and adaptive now-a-days because it offers automated and semi-automated solutions for Software engineering problems having large and complex problems with multiple competing and conflicting objectives [3]. In 2007 [5], Mark Harman in his article gave an overview of current state of widely used search based optimization techniques and discussed the open areas, challenges and gaps for future work in SBSE. Later on in 2009 [3], he assisted by his companions conducted a complete systematic literature review on SBSE. In this SLR, he conferred the importance of search based techniques in every field of software engineering collectively and discussed trends and relationships between the techniques and the applications to which they have been applied. Leo Rela [11] also performed a study on 10 evolutionary algorithms used to solve different search and optimization problems in the area of software engineering. Most commonly used Search based techniques are hill climbing, simulated annealing, greedy algorithm, genetic algorithm, evolutionary algorithm, particle swarm optimization etc [8]. Previously used techniques were not providing good optimal and reliable solutions and were not cost effective as well. On the other hand search based technique provides cost effective, reliable and efficient solutions. 59% work of SBSE done on software testing [3][8]. Search based software testing is a unique testing which is useful for very large software, like real time applications where it is almost impossible to test all the numerous test cases in given period of time. There is a lot of search work done in Software testing by Search based techniques. McMinne [8] has surveyed the application of Meta heuristics search techniques to software test data generation. Ali et al, [6][7] conducted systematic literature review (SLR) on Search based test case generation (SB-TCG) in which he discussed the application of SB-TCG observed through empirical evidence present in literature. W. Afzal performed systematic mapping [9] and SLR [10] on search based software testing for non-functional system properties and pinpointed challenges in the application of search based techniques for testing the non-functional properties of the system. Cagatay Catal performs SLR on the application of Genetic Algorithm on TCP [14]. As mentioned, surveys and SLRs already had been done on search based software testing but not specifically cover Search based test case optimization (SB-TCO). A bundle of work on search based test case optimization techniques is present in literature in wide variation. But not all together on one place, so there is need to do a systematic literature review on SBTCO, which provides state-of-the-art on SB-TCO for future research and help to identify the gaps. 1.3. Aims and Objectives A bundle of work on search based test case optimization techniques is present in literature in wide variation. But not all together on one place, so there is need to do a systematic literature 11 review on SB-TCO, which provides state-of-the-art on SB-TCO for future research and help to identify the gaps. My aim is to identify the impact of search based test case optimization techniques on scope, performance and cost of software testing. And in this SLR my objective is to answer the following: What search based techniques are being used for test case optimization? o Group these techniques on the base of procedure they follow. o A comparison will be conducted within each approach of optimization to measure the performance of search based techniques on the following criteria: coverage effectiveness, response time, defect detection rate. o And find the factors that affect the performance of these techniques. 1.4. Expected outcome Expected outputs from my SLR are: List of grouped search based techniques used in TCO. List of factors affecting the performance of these techniques. Best search Based techniques for test case optimization approaches. 1.5. Research Methodology To answer my question I will conduct Systematic Literature Review (SLR) as research methodology. “A SLR is a means of evaluating and interpreting all available research relevant to a particular research question, topic area, or phenomena of interest. Systematic reviews aim to present a fair evaluation of a research topic by using a trustworthy, rigorous and auditable methodology” [13]. Systematic review consists of three phases planning the review, conducting the review, and reporting the review. In proposal document there was only the planning document called systematic review protocol. For SLR I followed the guidelines of Kitchenham and my Systematic review protocol consists of [13]: • Background. • The research questions that the review is intended to answer. 12 • The strategy that will be used to search for primary studies including search terms and resources to be searched. • Study selection criteria. Study selection criteria are used to determine which studies are included in, or excluded from, a systematic review. • Study selection procedures. • Study quality assessment checklists and procedures. • Data extraction strategy. • Synthesis of the extracted data. • Project timetable. Detail of my systematic review protocol is given in Appendix A. 13 Chapter: 2. Protocol Definition This chapter describes the procedure followed to conduct the Systematic Literature Review on search based test case optimization. 2. Protocol Definition 2.1. Research Questions One of the rationales for this SLR is to summarize the existing evidence concerning Search Based Test Case Optimization (TCO). So my evidence based investigation is mainly focused on this. To understand state-of-the-art empirical work in Search Based TCO, in terms of gaps, commonalities in existing empirical results and the comparison between Search Based techniques used for TCO, the following three research questions are being formulated. There is vast amount of variations in this context, and until now no clear guidance for applying the right evolutionary algorithm is in the right situation. The main driver for conducting the systematic review was to identify gaps, commonalities in empirical research related to Search Based Test Case Prioritization and sum up the existing practices to answer the questions: who, where, what, why and how in use of Search techniques. The research questions are formulated to form a baseline for state-of-the-art empirical work and hence the objective is that the systematic review should form a milestone for both future research and for practical use by practitioners. Thus my major concerns are as follows: RQ.1: Determine the Search Based Techniques being used for test case prioritization and group these techniques? RQ.2: What are different factors that are affecting the performance of these techniques? RQ.3: What is the performance comparison of selected Techniques? 2.2. Detail of Questions RQ.1: Determine the Search Based Techniques being used for test case optimization and group these techniques? The aim is to understand the existing research directions of test case optimization with the help of search based techniques and mainly the work is considered having some empirical work attached with it. There are many search based techniques are used for test case optimization such as Greedy algorithm, Genetic algorithm, particle swarm optimization, etc., and there versions. So from systematic literature review I have list down all techniques (algorithms) and group those according to their similarities. Grouping of techniques have been based on two different criteria. The first criteria is based on the versions of algorithm/heuristic being used i.e. different versions of Genetic Algorithm (GA) are considered as one group. Second grouping is based on the software 14 testing life cycle phase where algorithm or the technique is being applied i.e. Test Case generation, Test Case Reduction, Test Case Optimization etc. The solution to this question gives us the state-of-the-art empirical work of search based techniques used for test case optimization. RQ.2: What are different factors that are affecting the performance of these techniques? From listed techniques for all optimization approaches, I select some (not all) evolutionary algorithms. And from empirical work I have identify the factors that can affect the performance of these techniques such as size of the code, size of test suite, size of test cases, etc. The solution of this question consist of all factors on which the performance of these techniques be measured. RQ.3: What is the performance comparison of selected Techniques? In empirically study on search based TCO there is much diversity, hence conducting the performance comparison is difficult. In this SLR I have conduct the performance comparison of techniques with in each optimization approach on the bases of: coverage effectiveness, response time, defect detection rate. In the solution I’ll get performance of selected search based optimization techniques in comparison with each other. Structured Questions RQ.1: Determine the Search Based Techniques being used for test case optimization and group these techniques? Population: Empirical Literature for Search based test case optimization. Outcome: List of grouped search based techniques used in TCO. Intervention: SB-TCO. Comparison: On the bases of similarities. RQ.2: What are different factors that are affecting the performance of these techniques? Population: Data Regarding Performance of Search Algorithm for test case optimization. Outcome: List of factors affecting the performance of these techniques. Intervention: Search Based Test Case optimization Comparison: No. RQ.3: What is the performance comparison of selected Techniques? Population: selected search based techniques Outcome: Best search Based techniques for test case optimization approaches. Intervention: SB-TCO. Comparison: On the bases of coverage effectiveness, response time, defect detection rate. 15 2.3. Search Strategy 2.3.1. Strategy for Search terms In search strategy, the search process will be conducted according to the following decided steps: 1. Derive major search strings from my SLR topic. 2. Identify alternative spellings and synonyms for major terms; also alternative terms used in literature will be considered (e.g. prioritization, optimization) 3. When database allows, use the Boolean OR to incorporate alternative spellings and synonyms; and when database allows, use the Boolean AND to link the major terms from population, intervention and outcome. 4. Break down the strings so that it can be applied to different databases. Give unique ID to every segmented search string. And I will customize them for given resources to be applied for searches. 5. Tools used for automating the search process Step1: Major Search Terms: - Search Based techniques Test case Optimization Empirical Step 2: alternative spellings and synonyms for major terms - - Search Based optimization algorithm (Search Based Optimization Algorithm OR Genetic algorithm OR GA OR Particle swarm optimization OR PSO OR Evolutionary Algorithm OR metaheuristic) Test case (Test case OR Test suite OR Test data) Prioritization (Prioritization OR Optimization OR Reduction OR Selection OR Minimization OR optimized Generation) Empirical (Empirical study OR Case study OR Survey OR Technical Report OR Experiment) Step 3: Integrating Boolean <OR> and <AND> (Search Based Optimization Algorithm OR Genetic algorithm OR GA OR Particle swarm optimization OR PSO OR Evolutionary Algorithm OR metaheuristic) AND (Test Case OR Test Suit) AND (Prioritization OR Optimization OR Reduction OR Selection OR Minimization OR optimized Generation) AND (Empirical study OR Case study OR Survey OR Technical Report OR Experiment) Step 5: Tools used for automating the search process 16 To speed up the process of documenting my search results I will be using two tools which will help me in automating the process. These tools are as follows: - End notes [for documenting bibliography from searches]; I will retrieve search results in End notes and later, on the basis of titles and abstracts I will include or exclude papers. It will help me in documenting my search results for both primary searches and for primary studies. MS Access [to track the references]. - 2.3.2. Resources to be searched A range of data bases has been selected for rigorous search and to reduce the bias. Following data bases will be searched for the retrieval of primary studies: 1. 2. 3. 4. Springer link IEEE Explore ACM Digital library Science Direct 2.3.3. Other sources to be searched - Various databases are being selected to reduce the bias of study including published Technical Reports, Journal Papers and Conference Proceedings. Then I will go for secondary studies mentioned in the references of the each primary study by applying same procedures as applied for primary studies. - 2.4. Study selection criteria The initial selection is done on the basis of the TITLE and ABSTRACT of the paper. All data obtained from the search process are archived in database according to the journal from which it is retrieved. From database the duplicates originating from various search engines are removed after initial scan of results. Inclusion and exclusion criteria are applied on the remaining articles to sort out the accepted ones. On accepted papers detailed inclusion criteria is applied which is a Quality Instrument. Full papers of all studies that are not clearly ineligible to fit in the criteria, is discussed with supervisor for their final exclusion. The excluded papers and reasons for exclusion are recorded in a file, and the included papers and study type are recorded in another file. 17 2.4.1. Study of inclusion and Exclusion Criteria Various criteria are formulated with the intension to identify those studies that provide direct evidence for the research questions. Following are the inclusion and exclusion criteria for my research questions: Inclusion criteria: In order to answer the stated research questions, I have been searching for research articles by reading the abstracts that contain information about search based test case optimization having empirical work done in it. So the papers including a case study, an experiment, survey or industrial experience reports are focused. When it is confirmed after reading the abstract that article is relevant to my research, I have study the whole paper. The objective of the selection process was to identify the Articles relevant to the objectives of the systematic review. The search strings, are quite broad and hence it is expected that not all studies identified would find a place in the final phase of selection process. Only those studies are included that are empirical based and where the main focus is test case optimization with search based technique(s). Exclusion criteria: - Those studies are excluded that are based on personal expert opinion. One study can be reported in multiple papers so on the basis of validity score I included highest ranked journals and exclude others. Multiple studies can be reported in one paper; if any of them do not stand to our inclusion criteria and differ variably then only the irrelevant study is excluded. 2.4.2. Quality Instrument for assessing validity After initial selection of studies, a more detail criteria is required to judge the quality of study to see whether it is worth considering as evidence to answer our research question or not. Quality Instrument will be designed for assigning numerical values for factors in the checklist to be evaluated for each study. My main focus is on the study design (of the paper). The research questions and my inclusion/exclusion criteria will suggest me that I am going to include only empirical studies like Case studies, Industrial Experience Reports etc. If any paper is considered to be very poor in quality it will not be excluded at this stage and its record will be maintained. Quality assessment checklists for empirical data e.g. survey, case study, experiment and experience report etc will be used from guidelines of Kitchenham (2007) [13]. A Quality Instrument including check list for assessing the quality of study and assigning numerical values to the questions to rank the selected papers. 18 Table 1: Quality Instrument Checklist for Assessing the Articles Sr. Quality Assessment Questions No. General Paper Evaluation Do the author(s) clearly mention the issues 1 or hypothesis for the paper? Is the paper clearly describe/define the 2 design (procedure followed, treatments and all controls) of empirical study used? 3 Are the findings or results clearly stated? Does the case/data choose for analysis is 4 big enough to narrate with real life problem? Is the data used for analysis sufficiently 5 rigorous? Is the article written in a balanced and 6 understandable manner? 7 Are threats to validity described? According to Research Question Evaluation Relevant to my research question? 8 (Score 1 for each research question) Does the article include more than one 9 algorithm? Do the search based algorithm(s) described 10 in detail? Are the factors affecting the performance 11 stated? Is the performance comparison between 12 algorithms clearly presented? Total Scale Score Y=1/Partly=0.5/N=0 Y=1/Partly=0.5/N=0 Y=1/Partly=0.5/N=0 Y=1/Partly=0.5/N=0 Y=1/Partly=0.5/N=0 Y=1/Partly=0.5/N=0 Y=1/Partly=0.5/N=0 Strongest=3Lowest=0 Y=1/N=0 Y=1/Partly=0.5/N=0 Y=1/Partly=0.5/N=0 Y=1/Partly=0.5/N=0 14 19 Chapter: 3 Protocol Executions This chapter comprises of protocol execution, by which we get the result of search strings, apply inclusion/exclusion criteria on the result and get the final list of articles to include in SLR. 3. Protocol Execution 3.1. Search String Results Result of Search Strings on Digital library Databases: Search String Result of ACM As ACM does not allow that huge search string so it is divided into 7 small search strings and with filter find in abstract. Their results are given in the table below. Table 2: Search string result of ACM ACM (Abstract:"Particle swarm optimization" or Abstract: PSO or Papers Found 26 Abstract: swarm) and (Abstract:"test case" or Abstract:"test 1 suite") and (Abstract: prioritization or Abstract: optimization or Abstract: reduction or Abstract: selection or Abstract: minimization or Abstract:"optimized generation") (Abstract:"Genetic" or Abstract: GA) and (Abstract:"test 62 case" or Abstract:"test suite") and (Abstract: prioritization or 2 Abstract: optimization or Abstract: reduction or Abstract: selection or Abstract: minimization or Abstract:"optimized generation") ((Abstract:"ant colony optimization" or Abstract: ACO or 9 Abstract: colony) and (Abstract:"test case" or Abstract:"test 3 suite") and (Abstract: prioritization or Abstract: optimization or Abstract: reduction or Abstract: selection or Abstract: minimization or Abstract:"optimized generation")) 20 (Abstract:"Evolutionary Algorithm" or Abstract: Evolution 46 or Abstract: bacteria or Abstract: bacterial) and 4 (Abstract:"test case" or Abstract:"test suite") and (Abstract: prioritization or Abstract: optimization or Abstract: reduction or Abstract: selection or Abstract: minimization or Abstract:"optimized generation") (((Abstract:"Search Based" OR Abstract: "SBST" OR Abstract: metaheuristic OR Abstract: heuristic) AND 5 (Abstract: "test case" OR Abstract: "test suite") AND 65 (Abstract: "prioritization" OR Abstract: "optimization" OR Abstract: "reduction" OR Abstract: "selection" OR Abstract: "minimization" OR Abstract: optimized generation))) ((((Abstract:"neural network") and (Abstract:"test case" or Abstract:"test suite") and (Abstract: prioritization or 6 3 Abstract: optimization or Abstract: reduction or Abstract: selection or Abstract: minimization or Abstract:"optimized generation")))) ((((Abstract: greedy) and (Abstract:"test case" or Abstract:"test suite") and (Abstract: prioritization or 7 8 Abstract: optimization or Abstract: reduction or Abstract: selection or Abstract: minimization or Abstract:"optimized generation")))) TOTAL 219 After removing duplicates 167 Total of all search strings results are 219. And after removing duplicates remaining articles are 167. Search String Result of IEEE As IEEE does not allow that huge search string so it is divided into 7 small search strings and with filter find in abstract refined by Topic: Computing & Processing (Hardware/Software). Their results are given in the table below. Table 3: Search string result of IEEE 21 1 IEEE Results ((((("Abstract":"particle swarm optimization") OR 36 "Abstract":"PSO") OR "Abstract":swarm) AND (("Abstract":"test case") OR "Abstract":"test suite")) AND (((((("Abstract":optimization) OR "Abstract":prioritization) OR "Abstract":selection) OR "Abstract":optimized generation) OR "Abstract":reduction) OR "Abstract":minimization)) 2 (((("Abstract":Genetic) OR "Abstract":GA) AND 44 ((“Abstract”:"test case") OR "Abstract":"test suite")) AND ((((((“Abstract”:optimization) OR "Abstract":prioritization) OR "Abstract":selection) OR "Abstract":optimized generation) OR "Abstract":reduction) OR "Abstract":minimization)) 3 ((((("Abstract":"ant colony optimization") OR 11 "Abstract":"ACO") OR "Abstract":colony) AND (("Abstract":"test case") OR "Abstract":"test suite")) AND (((((("Abstract":optimization) OR "Abstract":prioritization) OR "Abstract":selection) OR "Abstract":optimized generation) OR "Abstract":reduction) OR "Abstract":minimization)) 4 (((((("Abstract":"Evolutionary Algorithm") OR 49 "Abstract":Evolution) OR "Abstract":bacteria) OR "Abstract":bacterial)AND (("Abstract":"test case") OR "Abstract":"test suite")) AND (((((("Abstract":optimization) OR "Abstract":prioritization) OR "Abstract":selection) OR "Abstract":optimized generation) OR "Abstract":reduction) OR "Abstract":minimization)) 5 (((((("Abstract":"Search Based") OR "Abstract":SBST) OR 37 "Abstract":metaheuristic) OR "Abstract":heuristic)AND (("Abstract":"test case") OR "Abstract":"test suite")) AND (((((("Abstract":optimization) OR "Abstract":prioritization) OR "Abstract":selection) OR "Abstract":optimized 22 generation) OR "Abstract":reduction) OR "Abstract":minimization)) 6 (((("Abstract":“neural network”) AND ((“Abstract”:"test 3 case") OR "Abstract":"test suite")) AND ((((((“Abstract”:optimization) OR "Abstract":prioritization) OR "Abstract":selection) OR "Abstract":optimized generation) OR "Abstract":reduction) OR "Abstract":minimization)) 7 ((((("Abstract":greedy) AND (("Abstract":"test case") OR 0 "Abstract":"test suite")) AND (((((("Abstract":optimization) OR "Abstract":prioritization) OR "Abstract":selection) OR "Abstract":optimized generation) OR "Abstract":reduction) OR "Abstract":minimization))) TOTAL 180 After Remove Duplicates 129 Total of all search strings results are 180. And after removing duplicates remaining articles are 129. Search String Result of Science Direct As Science Direct does not allow that huge search string so it is divided into 7 small search strings and with filter find in title and abstract refined by Topic: All Sources (Computer Science). Their results are given in the table below. Table 4: Search string result of Science Direct Science Direct 1 (TITLE-ABSTR-KEY("Particle swarm optimization") OR 21 TITLE-ABSTR-KEY(PSO) OR TITLE-ABSTR-KEY(swarm)) and (TITLE-ABSTR-KEY("test case") OR TITLE-ABSTRKEY("test suite")) and (TITLE-ABSTR-KEY(optimization) OR TITLE-ABSTR-KEY(prioritization)OR TITLE-ABSTRKEY(reduction) OR TITLE-ABSTR-KEY(minimization) OR TITLE-ABSTR-KEY(selection) OR TITLE-ABSTRKEY("optimized generation")) 23 2 (TITLE-ABSTR-KEY(Genetic) or TITLE-ABSTR-KEY(GA)) 35 and (TITLE-ABSTR-KEY("test case") or TITLE-ABSTRKEY("test suite")) and (TITLE-ABSTR-KEY(optimization) or TITLE-ABSTR-KEY(prioritization) or TITLE-ABSTRKEY(reduction) or TITLE-ABSTR-KEY(selection) or TITLEABSTR-KEY(minimization) or TITLE-ABSTR-KEY("optimized generation")) 3 (TITLE-ABSTR-KEY("ant colony optimization") OR TITLE- 4 ABSTR-KEY(ACO) OR TITLE-ABSTR-KEY(colony)) and (TITLE-ABSTR-KEY("test case") OR TITLE-ABSTRKEY("test suite")) and (TITLE-ABSTR-KEY(optimization) OR TITLE-ABSTR-KEY(prioritization)OR TITLE-ABSTRKEY(reduction) OR TITLE-ABSTR-KEY(minimization) OR TITLE-ABSTR-KEY(selection) OR TITLE-ABSTRKEY("optimized generation")) 4 (TITLE-ABSTR-KEY("Search Based") OR TITLE-ABSTR- 37 KEY(SBST) OR TITLE-ABSTR-KEY(metaheuristic) OR TITLE-ABSTR-KEY(heuristic)) and (TITLE-ABSTR-KEY("test case") OR TITLE-ABSTR-KEY("test suite")) and (TITLEABSTR-KEY(optimization) OR TITLE-ABSTRKEY(prioritization)OR TITLE-ABSTR-KEY(reduction) OR TITLE-ABSTR-KEY(minimization) OR TITLE-ABSTRKEY(selection) OR TITLE-ABSTR-KEY("optimized generation")) 5 (TITLE-ABSTR-KEY("Evolution") OR TITLE-ABSTR- 22 KEY("Evolutionary Algorithm") OR TITLE-ABSTRKEY(Bacteria) OR TITLE-ABSTR-KEY(bacterial)) and (TITLEABSTR-KEY("test case") OR TITLE-ABSTR-KEY("test suite")) and (TITLE-ABSTR-KEY(optimization) OR TITLE-ABSTRKEY(prioritization)OR TITLE-ABSTR-KEY(reduction) OR TITLE-ABSTR-KEY(minimization) OR TITLE-ABSTRKEY(selection) OR TITLE-ABSTR-KEY("optimized generation")) 24 6 (TITLE-ABSTR-KEY("neural network")) and (TITLE-ABSTR- 12 KEY("test case") or TITLE-ABSTR-KEY("test suite")) and (TITLE-ABSTR-KEY(optimization) or TITLE-ABSTRKEY(prioritization) or TITLE-ABSTR-KEY(reduction) or TITLE-ABSTR-KEY(selection) or TITLE-ABSTRKEY(minimization) or TITLE-ABSTR-KEY("optimized generation")) 7 (TITLE-ABSTR-KEY(greedy)) and (TITLE-ABSTR-KEY("test 4 case") or TITLE-ABSTR-KEY("test suite")) and (TITLEABSTR-KEY(optimization) or TITLE-ABSTRKEY(prioritization) or TITLE-ABSTR-KEY(reduction) or TITLE-ABSTR-KEY(selection) or TITLE-ABSTRKEY(minimization) or TITLE-ABSTR-KEY("optimized generation"))[All Sources(Computer Science)] TOTAL 135 After Remove Duplicates 93 Total of all search strings results are 135. And after removing duplicates remaining articles are 93. Search String Result of Springerlink As Springerlink does not allow that huge search string so it is divided into 13 small search strings and with filter find in abstract and with Topic Computer Science. Their results are given in the table below. Table 5: Search string result of Springerlink 1 Springerlink Results ab:(("Particle swarm optimization" or PSO or swarm) and ("test 9 case" or "test suite") and (optimization or prioritization or minimizationor selec tion)) ab:(("Particle swarm optimization" or PSO or swarm) and ("test 3 case" or "test suite") and (reduction or generation)) 25 2 ab:((genetic or GA) and ("test case" or "test 17 suite")and (optimization or prioritization or minimization or selec tion or reduction or generation)) 3 ab:(("ant colony optimization" or colony or ACO)and ("test 4 case" or "test suite") and (optimization or prioritization or minimization or selection or reduction)) ab:(("ant colony optimization" or colony or ACO)and ("test 2 case" or "test suite") and (generation)) 4 ab:(("search based" or SBST or metaheuristic or 5 heuristic) and ("test case" or "test suite") and (optimization or minimization or prioritization)) ab:(("search based" or SBST or metaheuristic or 16 heuristic) and ("test case" or "test suite") and (selection or reduction or generation)) 5 ab:((evolution or "evolutionary algorithm" or 10 bacteria or bacterial) and ("test case" or "test suite") and (optimization or minimization or prioritization)) ab:((evolution or "evolutionary algorithm" or 5 bacteria or bacterial) and ("test case" or "test suite") and (selection or reduction or generation)) 6 'ab:(("neural network") and ("test case" or "test 3 suite") and (optimization or prioritization or minimization or sele ction or reduction orgeneration))' with no filters 7 ab:((greedy) and ("test case" or "test 2 suite") and(optimization or prioritization or minimization or selec tion or reduction or generation)) TOTAL 76 After duplicates remove 54 Total of all search strings results are 76. And after removing duplicates remaining articles are 54. 26 3.2. After Exclusion Filter 1 In filter 1, papers are discarded after reading abstract. Discarding criteria was: Paper not related to software testing. Does not include in empirical study. Filter 1 results are in table given below Table 6: Exclusion filter 1 result 1st filter IEEE 60 Science Direct 23 Springerlink 30 ACM 84 Total 197 After removing duplicates 152 3.3. After Exclusion Filter 2 Inclusion/exclusion criteria described in protocol definition is applied as filter 2. And remaining articles are 60. And two articles are selected from secondary search. After filter 2, as a result, 62 articles selected are listed below: Table 7: List of selected articles for SLR Study Included Articles Reference s-1 Test Case Prioritization Technique based on Genetic Algorithm [63] s-2 A history-based cost-cognizant test case prioritization technique in [74] # regression testing s-3 Automated Test Case Prioritization with Reactive GRASP [59] s-4 Analyzing Test Case Selection & Prioritization using ACO [71] s-5 Applying Particle Swarm Optimization to Prioritizing Test Cases for [32] Embedded Real Time Software Retesting s-6 Building Prioritized Pairwise Interaction Test Suites with Ant Colony [41] 27 Optimization s-7 Design and Analysis of Cost-Cognizant Test Case Prioritization Using [57] Genetic Algorithm with Test History s-8 Test Case Filtering and Prioritization Based on Coverage of [35] Combinations of Program Elements s-9 Empirically Studying the Role of Selection Operators During Search- [55] Based Test Suite Prioritization s-10 Using Synthetic Test Suites to Empirically Compare Search-Based and [44] Greedy Prioritizers s-11 Time-Aware Test-Case Prioritization using Integer Linear [34] Programming s-12 Time-Aware Test Suite Prioritization [22] s-13 Automated Test Case Generation and Its Optimization for Path Testing [43] Using Genetic Algorithm and Sampling s-14 Automated Generation of Test Cases from Output Domain of an [70] Embedded System using Genetic Algorithms s-15 Java based Test case Generation and Optimization Using Evolutionary [26] Testing s-16 A Multi-Objective Particle Swarm Optimization for Test Case [65] Selection Based on Functional Requirements Coverage and Execution Effort s-17 An Enhanced Test Case Selection Approach for Model-Based [54] Testing: An Industrial Case Study s-18 An Industrial Investigation of Similarity Measures for Model-Based [51] Test Case Selection s-19 The Research of Test-Suite Reduction Technique [64] s-20 A Novel Chaos Discrete Particle Swarm Optimization Algorithm for [50] Test Suite Reduction s-21 A Technique to Reduce the Test Case Suites for Regression Testing [23] Based on a Self-Organizing Neural Network Architecture s-22 Test Case Reduction Based on Program Invariant and Genetic [45] Algorithm s-23 An Evolutionary Algorithm for Regression Test Suite Reduction [53] 28 s-24 Automated software test optimization framework – an artificial bee [60] colony optimization-based approach s-25 Evolutionary Testing of Object-Oriented Software [52] s-26 An Optimization Strategy for Evolutionary Testing Based on [49] Cataclysm s-27 Test Case Evaluation and Input Domain Reduction strategies for the [36] Evolutionary Testing of Object-Oriented software s-28 An experimental study of four typical test suite reduction techniques [29] s-29 Strongly-Typed Genetic Programming and Purity Analysis: Input [27] Domain Reduction for Evolutionary Testing Problems s-30 Search-Based Test Case Generation for Object-Oriented Java Software [28] Using Strongly-Typed Genetic Programming s-31 An Empirical Evaluation of Test Suite Reduction for Boolean [30] Specification-based Testing s-32 Test-Suite Reduction Using Genetic Algorithm [19] s-33 Black-box System Testing of Real-Time Embedded Systems Using [58] Random and Search-based Testing s-34 Multi-Objective Test Suite Minimization Using Quantum-Inspired [73] Multi-Objective Differential Evolution Algorithm s-35 A new heuristic for test suite reduction [15] s-36 Search Algorithms for Regression Test Case Prioritization [4] s-37 A Genetic Algorithm for Test-Suite Reduction [20] s-38 Automatic test case optimization using a bacteriological adaptation [18] model: application to .NET components s-39 A Case Study on the Use of Genetic Algorithms to Generate Test [69] Cases for Temporal Systems s-40 A non-pheromone based intelligent swarm optimization technique in [38] software test suite optimization s-41 A concept analysis inspired greedy algorithm for test suite [21] minimization s-42 An Empirical Study of Incorporating Cost into Test Suite Reduction [40] and Prioritization s-43 A New Algorithm to Test Suite Reduction Based on Cluster Analysis [39] 29 s-44 Study of Test Suite Reduction Based on Quantum Evolutionary [46] Algorithm s-45 Automated GUI Test Coverage Analysis using GA [61] s-46 An Improved Quantum Genetic Algorithm for Test Suite Reduction [66] s-47 Designing Better Fitness Functions for Automated Program Repair [56] s-48 Variable Strength Interaction Testing with an Ant Colony System [33] Approach s-49 Comparison of nearest point algorithms by genetic algorithms [68] s-50 A Simulation Study on Some Search Algorithms for Regression Test [47] Case Prioritization s-51 On the Value of Combining Feature Subset Selection with Genetic [37] Algorithms: Faster Learning of Coverage Models s-52 Search based constrained test case selection using execution effort [75] s-53 Genes and Bacteria for Automatic Test Cases Optimization in the [17] .NET Environment s-54 Automated test data generation using a scatter search approach [42] s-55 Quality Improvement and Optimization of Test Cases – A Hybrid [48] Genetic Algorithm Based Approach s-56 A variable strength interaction test suites generation strategy using [62] Particle Swarm Optimization s-57 Software Reliability Testing Covering Subsystem Interactions [72] s-58 Testing an Intentional Naming Scheme Using Genetic Algorithms [16] s-59 Automatic, evolutionary test data generation for dynamic software [31] testing s-60 Evolutionary mutation testing [67] s-61 Iterative automatic test generation method for telecommunication [25] protocols s-62 Scatter Search in software testing, comparison and collaboration with [24] Estimation of Distribution Algorithms There Quality Score detail is detailed in the table below 30 Table 8: Detailed quality score of selected articles Ref#\Q General Paper Evaluation 1 2 3 4 5 6 7 According to Research Questions 8 9 10 11 Total 1 0 1 0.5 0.5 0.5 0.5 0 1 1 1 1 1 8 2 1 1 1 1 1 1 0 3 1 1 1 1 13 3 1 1 1 1 1 1 0.5 2 1 0.5 0 1 11 4 1 0.5 1 1 1 1 0 2 0 0.5 1 0 9 5 1 1 1 0.5 0.5 1 0 1 1 1 0 1 9 6 1 1 1 0.5 0.5 1 0 3 1 1 0 1 11 7 1 1 1 1 1 1 0 3 1 1 1 1 13 8 1 1 1 1 1 1 0 2 1 1 0 0 10 9 1 1 1 0.5 1 1 1 3 1 1 1 1 13.5 10 0.5 0.5 0.5 0 1 0.5 0 1 1 0 0.5 0.5 6 11 1 1 1 0.5 1 1 1 0.5 1 0 0 0.5 8.5 12 0.5 1 1 0.5 0.5 1 1 2 0 1 1 1 11 13 0.5 0.5 0.5 0.5 0.5 0.5 0 1 0 0.5 0 0 4.5 14 0.5 1 1 0.5 0.5 1 0 1 0 1 0 0 6.5 15 0 1 0.5 0.5 0 1 0 1 0 1 0 0 5 16 1 1 1 1 1 1 0.5 2 1 1 0 1 11.5 17 1 1 1 1 1 1 1 1 1 0 0.5 0.5 10 18 1 1 1 0.5 1 1 1 1.5 1 0.5 1 1 11.5 19 1 0.5 0.5 0.5 0.5 1 0 1.5 1 1 0 0.5 8 20 1 1 1 0.5 0.5 1 0 2 1 1 1 1 11 21 1 0.5 1 1 0.5 1 0 1.5 1 0.5 0 0.5 8.5 22 0.5 1 1 0.5 0.5 1 0 1.5 1 1 0 0.5 8.5 23 0.5 0.5 1 1 1 1 0 1 0 0.5 0 0 6.5 24 1 1 1 1 1 1 0 3 1 1 1 1 13 25 1 1 1 1 1 0.5 0 2 1 0 1 0.5 10 26 1 0.5 0.5 0.5 1 0.5 0 2 1 0 1 0.5 8.5 27 1 0.5 0.5 1 0.5 1 0 0.5 0 0 0.5 0 5.5 28 1 0.5 1 0.5 1 1 1 2.5 1 0.5 1 1 12 29 1 0.5 0.5 0.5 0.5 0.5 0 0.5 0 0 0 0 4 12 Score 31 30 1 0.5 0.5 0.5 0 0.5 0 1 0 0.5 1 0 5.5 31 1 0.5 1 1 1 1 0 3 1 0 1 1 11.5 32 1 1 1 1 1 1 0 3 1 1 1 1 13 33 1 0.5 0.5 1 1 1 1 2.5 1 0 1 1 12 34 1 1 1 1 1 1 0 2 1 1 0 1 11 35 1 1 0.5 0.5 0.5 1 0 2 1 0.5 0 0.5 9.5 36 1 1 1 1 1 1 1 3 1 1 1 1 14 37 1 1 0.5 1 1 1 0 2 1 1 0 1 10.5 38 1 1 0.5 0.5 0.5 0.5 0 2.5 1 1 1 1 11 39 1 0.5 0.5 0.5 0.5 0.5 0 2 1 0.5 1 0.5 8.5 40 1 1 1 1 1 1 0 3 1 1 1 1 13 41 1 1 0.5 1 0.5 0.5 0 2 1 1 0 0.5 9 42 1 0.5 1 1 1 0.5 0 2 1 0.5 0.5 1 10 43 1 1 1 0.5 1 1 1 2 1 1 0 1 11.5 44 1 0.5 1 0.5 0.5 1 0 2.5 1 1 0.5 1 10.5 45 1 1 1 1 1 1 0 2 0 1 1 0 10 46 1 0.5 1 0.5 0.5 1 0 3 1 1 1 1 11.5 47 1 1 1 1 1 0.5 0 3 1 0 1 1 11.5 48 1 0.5 0.5 0.5 0 0.5 0 2.5 1 1 1 0.5 9 49 1 1 1 1 1 1 0 3 1 1 1 1 13 50 1 1 1 0 1 1 1 2 1 1 0 1 11 51 1 1 1 0.5 1 1 0 0.5 0 0.5 0 0 6.5 52 1 1 1 1 1 1 0 3 1 1 1 1 13 53 1 0.5 1 1 0.5 1 0 3 1 1 1 1 12 54 1 0.5 1 0.5 0.5 1 0 2 1 1 0 1 9.5 55 1 1 1 1 1 1 0 3 1 1 1 1 13 56 1 0.5 0.5 0.5 0.5 0.5 0 1 1 1 0 0 6.5 57 1 1 0.5 0.5 0.5 1 0 0.5 0 0.5 0 0 5.5 58 0.5 0.5 0.5 1 1 1 0 1 0 1 0 0 6.5 59 1 0.5 1 1 1 1 0 1.5 1 1 0 0.5 9.5 60 1 1 1 1 1 1 1 3 1 1 1 1 14 61 1 0.5 0.5 0.5 1 1 0 2.5 1 1 0.5 1 10.5 62 1 1 1 1 1 1 0.5 3 1 1 1 1 13.5 32 Chapter 4: Results This is the Chapter describing results of all research questions of this SLR and these results are based on selected articles which have been included in this SLR. Results are taken from general extraction derived from Articles attached in Appendix B. There are three tables as under to address research questions respectively. 4. Result for Research Questions 4.1. Research Question 1 Determine the Search Based Techniques being used for test case optimization and group these techniques? The solution to this question lists down all techniques (algorithms) used in literature for each approach. Table 9: Algorithms used in each optimization approach. Optimization Approach Prioritization Algorithms Random prioritization[s-2][s-5][ s-9][ s-11][ s-49] Genetic Algorithm[s-1][ s-3][ s-8][ s-9][ s-12][ s-36][ s-49][ s-50] GA-hist[s-2][ s-7] time-aware statement coverage prioritization via GA[s-11] time-aware method coverage prioritization via GA[s-11] Time-aware test suite prioritization (GA-fun)[ s-2][ s-7] Improved Genetic Algorithm[s-1] Greedy algorithm[s-3][ s-8][ s-9][ s-10][ s-36][ s-42] Additional Greedy algorithm[s-3][ s-36][ s-50] Total Greedy Algorithm [s-50] delayed greedy[s-42] 2-Optimal Greedy Algorithm[s-36][ s-42][ s-50] Reactive GRASP[s-3] Simulated annealing[s-3] Ant Colony Optimization (ACO)[ s-4] Ant System (AS)[s-6] Ant System with Elitist (ASelite)[ s-6] Ant Colony System (ACS)[s-6] Max-Min Ant System(MMAS)[ s-6] Particle Swarm Optimization[s-5] Nearest point algorithm[s-49] Hill Climbing[s-9][ s-10][ s-36][ s-50] Heuristics Harrold Gupta Soffa (HGS)[ s-42] hist-value[s-7] 33 Reduction Selection Optimal prioritization (optimal)[ s-2] Historical fault detection effectiveness prioritization (histfaultdetected)[ s-2][ s-7] Total function coverage prioritization (total-fun)[ s-2][ s-7] Cost-cognizant total function coverage prioritization (cctotal-fun) [s-2][ s-7] traditional total statement coverage prioritization[s-11] traditional additional statement coverage prioritization[s-11] traditional total method coverage prioritization[s-11] traditional additional method coverage prioritization[s-11] time-aware total statement coverage prioritization via ILP[s-11] time-aware additional statement coverage prioritization via ILP[s11] time-aware total method coverage prioritization via ILP[s-11] time-aware additional method coverage prioritization via ILP[s-11] Ant colony algorithm[s-19][ s-40] Artificial Bee Colony Optimization (ABC)[ s-40] Greedy algorithm, [s-19][ s-31][ s-41][ s-46] G`[ s-31] Greedy (MgrA)[ s-37] Greedy Algorithm (ADD-DELTA)[ s-32][ s-42] Delayed-Greedy heuristic (DelGreedy)[ s-41][ s-42] GRE algorithm[s-19][ s-20][ s-28][ s-31][ s-35][ s-44][ s-46] GRE`[ s-31] GE[s-20][ s-31][ s-35][ s-44] GE`[ s-31] 2-optimal greedy (2OPT)[ s-42] Heuristic algorithm,[ s-19][ s-20][ s-28][ s-31][ s-35][ s-43] HGS (Harrold, Gupta and Soffa)[ s-41][ s-42][ s-44][ s-46] SMSP[s-41] H`[ s-31] Coverage-based and distribution-based heuristic algorithm (clustering) [s-43] ART (Adaptive Resonance Theory) neural network with Clustering [s-21] ILP[s-28] Particle swarm optimization chaos discrete particle swarm optimization algorithm(CDPSO)[ s20] discrete particle swarm optimization (DPSO)[ s-20] Random Algorithm[s-21][ s-22][s-60] Genetic Algorithm [s-22][ s-23][ s-28][ s-32][ s-37][ s-44][ s-46][ s51][ s-53][ s-55][ s-60] Hybrid Genetic Algorithm (HGA)[ s-55] Quantum evolutionary Algorithm[s-44][ s-46] IQGA[s-46] Bacteriological algorithms[s-53][ s-55] Ant Colony Optimization (ACO)[ s-4] Genetic Algorithm[s-8][ s-17][ s-33][ s-47] 34 Generation NSGA-II[s-34] coverage-based GA selection (CovGA), [s-18] Quantum-inspired Multi-objective differential Evolution Algorithm[s-34] Greedy Algorithm[s-8][ s-17] coverage-based Greedy selection (CovGr),[ s-18] Random selection (Rnd),[ s-18][ s-33][ s-47][ s-52] Adaptive Random Testing (ART)[ s-33] HC (Hill-Climbing)[ s-52] Heuristics the state of the art in STCS (TransGr).[ s-18] FS (Forward Selection)[ s-52] BE (Backward Elimination)[ s-52] PSO BMOPSO[s-16] BMOPSO-CDR[s-16] BCPSO (Binary Constrained PSO)[ s-52] BCPSO-FS (hybrid algorithm)[ s-52] BCPSO-HC (hybrid algorithm)[ s-52] Ant Colony Optimization (ACO)[ s-40] Ant System (AS), [s-6] Ant System with Elitist (ASelite),[ s-6] Ant Colony System (ACS) and[s-6][ s-48] Max-Min Ant System(MMAS)[ s-6] Simulated annealing[s-48] Greedy algorithms [s-39] Density [s-48] ParaOrder[s-48] gradient descent[s-59] Genetic Algorithm[s-13][ s-14][ s-15][ s-24][ s-25][ s-33][ s-38][ s-45][ s-57][ s-58][ s-59] GA with Close-Up (CU) algorithm and Batch-Optimistic (BO) algorithm[s-59] Genetic Single point crossover/mutation[s-39] Genetic Multi point crossover/mutation[s-39] differential genetic (diffGA)[ s-59] Strongly-Typed Genetic Programming[s-27][ s-29][ s-30] Artificial Bee Colony Optimization (ABC)[ s-40] Sequential ABC[s-24] Parallel ABC[s-24] Random Search[s-24][ s-25][ s-33][ s-59] random trace test derivation algorithm[s-61] random event sequences[s-61] Adaptive Random Testing (ART)[ s-33] The proposed iterative test generation method[s-61] its enhancement with the immediate test selection[s-61] its extension with memory[s-61] Evolutionary Algorithm with Optimization Strategy Based on Cataclysm (OSBC) [s-26] 35 Evolutionary Algorithm with Dynamic Optimization of the possibility (DOMP) [s-26] Bacteriological[s-38] Particle Swarm Optimization[s-56] Estimation of Distribution Algorithms (EDA)[ s-62] Scatter search[s-62] TCSS (test coverage scatter search)[ s-54] TCSS-LS (test coverage scatter search-local search)[ s-54] Combination of Scatter Search and EDA (SS-EDA)[ s-62] 4.2. Research Question 2 What are different factors that are affecting the performance of these techniques? The solution to this research question lists down all the factors affecting the performance of algorithms from literature. Table 10: List of factors affecting the performance of the algorithms Algorithms Genetic Strongly-Typed Genetic Programming Quantum genetic Ant Colony Optimization Search Based Factors Local optima position No. of generations Fault severities Population size Cost of test cases vary Parameter values of GA Parallelization Can be interrupted during execution construct diverse test orderings time budget non-memorization prematurity of population time consuming Computational overhead fitness function non linear suboptimal solution Configuration of parameters Computational overhead maintain the population diversity full cross -interference Number of iterations Time Constraint(TC) value Sequential behaviour Solution selection is done at the end Computational overhead Memory limit problem Parameter setting inherited randomness in ACS Lack of uniformity in execution time In Studies 1,2,24,55 2,7,9,45,53,55 2,7 2,7 2,7 9,17,32,39,49,53,55,60 9 9,33 9 12,18,25,28 24,38,53 26 33 47 49 55 29 47 44,46 44,46 4 4,40 40 40 40 40 48 48 10 36 PSO Nearest point algorithm Greedy Effort Limits (time) fitness function genetic operators Initial set Time budget Time overheads Time overheads Time budget memorization of best test case No. of Test cases linear and optimal solutions Parallel behaviour Optimization is done at each iteration Computational overhead Memory limit issue Complexity of test cases Parameter value 2--optimal greedy DelGreedy Heuristic Bacteriological Artificial bee colony Iterative algorithms Scatter Search 52 49 49 20 31 42 42 31 38,53 53 55 40 40 40 40 61 62 4.3. Research Question 3 What is the performance comparison of selected Techniques? In solution to this research question a performance comparison of algorithms in each optimization approach is conducted. In empirically study on search based TCO there is much diversity, hence conducting the performance comparison is difficult. Following is the table of performance comparison of algorithms, extracting from appendix B. Table 12: Performance Comparison of algorithms. Comparison Base Algorithms Testing Cost GA IGA BMOPSO-CDR BMOPSO Coverage/Error finding Rate GA ADD-DELTA Modified GA Simple GA Modified Greedy IGA Greedy algorithm, genetic algorithm, simulated annealing Reactive GRASP GA Additional Greedy Hybrid Genetic Algorithm (HGA) QMDEA Genetic Algorithm (GA) Bacteriologic Algorithm (BA) NSGA-II Comparison IGA’s low[1] BMOPSO-CDR outperform BMOPSO[16] GA is better than ADDDELTA[32] Modified GA has smallest cost[37] IGA increases the rate[1] Additional greedy performed significantly better both for the four small and large programs[3] HGA out performs the other two in faults revealing and coverage [55] QMDEA out performs[34] 37 DelGreedy GA-hist HGS Greedy 2-opt GA-fun Clustering Heuristic H PSO AS Random MMAS ACS ASelite GA Greedy Hill Climbing Nearest point algorithm Iterative algorithm Random search Genetic algorithms Random ILP GA GA Random BMOPSO-CDR BMOPSO Combination of Scatter Search and EDA (SS-EDA) Estimation of Distribution Algorithms (EDA) Scatter Search (SS) BCPSO (Binary Constrained PSO) HC (Hill-Climbing) FS (Forward Selection) BE (Backward Elimination) Random Greedy Genetic Multi point crossover/mutation Random Greedy Coverage-based GA BCPSO-FS (hybrid algorithm) BCPSO-HC (hybrid algorithm) Genetic Single point crossover/mutation GA with Jac Index Greedy and 2-opt has highest coverage rate[42] GA-hist is more efficient in error finding[2][7] Clustering Heuristic has better percentage of fault detection[43] PSO is effective[5] ACS and MMAS has fastest coverage, AS hass lowest rate and ASelite is between them[6] GA is more effective[9] In some cases GA is good otherwise it worse[36] GA is worse[50] Nearest point has better performance[49] Iterative provides similar or slightly better results for fault coverage [61] ILP is more faster[11][28] GA perform better[12][22][25][47][60] Non is dominating[33][47] GA is worse because of computational overhead[47][49] BMOPSO-CDR outperform BMOPSO[16] SS-EDA is best whereas other two are also good in coverage[62] Both BCPSO-FS and BCPSO-HC were better than BCPSO, FS and HC[52] Genetic Single point crossover/mutation performs well[39] GA with Jac Index is better[18] 38 Ant Colony Algorithm Greedy algorithm, Heuristic algorithm, GRE algorithm DPSO H GRE GE Random AC is better[19] EA with OSBC EA with DOMP Greedy G’ GE, GE’ GRE, GRE’ H, H’ Additional greedy 2-optimal greedy ACO EA with OSBC works better than EA with DOMP, but not work well for Complicated Branch Conditions.[26] GRE’ is better and H’ is best[31] CDPSO ART (Adaptive Resonance Theory) neural network with Clustering Greedy ABC CDPSO is fastest[20] ART is better [21] Greedy is worse, 2optimal is best [36] ABC is more effective[40] TCSS (test coverage scatter search) Genetic algorithms with Close-Up (CU) algorithm and Batch-Optimistic (BO) algorithm No. of Generations GA-hist random gradient descent standard genetic and differential genetic Proposed technique has best coverage[59] GA-fun Population size GA-hist GA-fun Execution time GA-hist GA-fun Radom Optimal histfault-detected total-fun genetic algorithm, simulated annealing Reactive GRASP Additional greedy GE algorithm When no. of generation is greater than population size GA-hist provides higher fault detection rate[2][7] When size is too low GAhist’s fault detection rate is low[2][7] GA-hist has low execution time and more effective[2][7] Greedy quantum genetic Greedy algorithm performed more efficiently than all other algorithms.[3] Quantum genetic has 39 algorithm IQGA PSO GA AS Greedy Hill Climbing ILP GA ILP H GRE Greedy Greedy Genetic Single point crossover/mutation Genetic Genetic multi point crossover/mutation Parallel-ABC Sequential-ABC Genetic Random EA with OSBC EA with DOMP Genetic Random ART NSGA-II Genetic QMDEA Bacteriological ABC DelGreedy Historical GRE algorithm, HGS algorithm, genetic algorithm greedy algorithm HGS algorithm GRE algorithm Genetic algorithm and QGA separately Greedy GRE ILP H MMAS ACS ASelite GA-hist ACO HGS Greedy 2-opt GA-fun smallest execution time[44] IQGA and QGA has smallest[46] PSO is efficient[5] GA is worst[28] ILP is Best[28] AS has shortest, ASelite has longest and, MMAS and ACS is between them[6] HC lack uniformity in execution time, and greedy is much faster[10] GA is less effective than ILP[11][28] ILP GA is better[17] Genetic Multi point crossover/mutation is faster[39] Parallel-ABC takes least time GA has greatest time because of stuck in local optima and nonmemorization of best individual in each iteration[24] EA with OSBC’s testing cost is very high[26] GA more time consuming[33] QMDEA is faster[34] Bacteriological is far speedy[38][53] ABC is faster[40] Greedy and HGS are efficient [42] GA-hist provides high 40 information Bacteriological Genetic Test case cost GA-hist Fault severity GA-hist Initial Set DPSO GA-fun Radom Optimal histfault-detected total-fun GA-fun Radom Optimal histfault-detected total-fun H GE GRE Size of test suite GA Greedy Algorithm (ADD-DELTA) GRE’ G (greedy) and G’ GE and GE’ GRE H and H’ GE GRE GRE H GA Sequential ABC Random testing Genetic Algorithm Simple GA Modified Greedy H ILP Parallel ABC Modified GA DelGreedy DelGreedy Greedy HGS SMSP HGS Greedy 2-opt Clustering Heuristic H quantum genetic algorithm GE algorithm GRE algorithm, HGS algorithm, effectiveness [2][7] Bacteriological has memorization of best test case, so more effective [38][53] GA-hist is more effective in both cases when cost vary or equal[2][7] GA-hist is more effective in both cases when fault severity vary or equal[2][7] DPSO is stable as it has nothing to do with initial values, where as others have [20] Size of test suite achieved by GA is smaller than ADD-DELTA[32] GRE’ has minimum[31] H has largest[35] ILP has smallest[28] Parallel ABC has smallest[24] Modified GA’s sizes are significantly smaller than simple GA and modified greedy [37] DelGreedy has smallest [41] DelGreedy and HGS are best methods for minimizing the test suite size [42] Clustering Heuristic has less size [43] Genetic and quantum genetic algorithm has better minimized suite 41 genetic algorithm IQGA ACS greedy algorithm HGS algorithm GRE algorithm Genetic algorithm and QGA separately simulated annealing greedy algorithms Density and ParaOrder specially when original test suite is larger in size [44] IQGA has smallest[46] ACS has smaller But in some cases equal to simulated annealing [48] 42 Chapter 5: Analysis This Chapter gives analysis of research questions which describes algorithms used for each approach of test case optimisation, factors affecting the performance of these algorithms and the their performance based comparison. 5. Analysis for Questions. 5.1. Research Question 1 RQ.1: Determine the Search Based Techniques being used for test case optimization and group these techniques? The aim is to understand the existing research directions of test case optimization with the help of search based techniques and mainly the work is considered having some empirical work attached with it. This systematic literature review lists down all techniques (algorithms) and group those according to their similarities. Number of Articles After exclusion filter 2 finalized articles left are 62 and each optimization approach contains: in prioritization 16, in selection 9, in generation 23 and in reduction 20. 25 20 15 10 5 0 Prioritization Selection Reduction Optimized Generation Figure 1: Number of Algorithm used in each Approach It means there is more empirical work in test case optimized generation and least in test case selection. Algorithms used in each optimization approach Test Case Prioritization: 43 In prioritization, worked algorithms are 8 along their versions. Random algorithm is stated in 4 studies, Genetic Algorithm (GA) in 11 studies along with versions (GA-hist, time-aware statement coverage prioritization via GA, time-aware method coverage prioritization via GA, Time-aware test suite prioritization (GA-fun), Improved Genetic Algorithm(IGA)), Greedy(G) in 7 studies along with versions (Additional Greedy algorithm, Total Greedy Algorithm, delayed greedy, 2-Optimal Greedy Algorithm, Reactive GRASP), Simulated Annealing(SA) in 1 study, Ant Colony Optimization(ACO) in 2 studies along with versions (Ant System (AS), Ant System with Elitist (ASelite), Ant Colony System (ACS), Max-Min Ant System(MMAS)) , Particle Swarm Optimization (PSO) in 2 studies with version (Nearest point algorithm), Hill Climbing(HC) in 4 studies and Heuristics(H) in 4 studies with many versions. In this technique Genetic Algorithm is used most. 12 10 8 6 4 2 0 Random GA G SA ACO PSO HC H Figure 2: Algorithms used in Prioritization Test Case Selection In test case selection, worked algorithms are 7 with their versions. Random is used in 4 studies with its one adaptive version, GA in 6 studies with versions (NSGA-II, coveragebased GA selection (CovGA), Quantum-inspired Multi-objective differential Evolution Algorithm), G in 3 studies with version (coverage-based Greedy selection (CovGr)), ACO in 1 study, PSO in 2 studies with versions (BMOPSO, BMOPSO-CDR, BCPSO (Binary Constrained PSO), BCPSO-FS (hybrid algorithm), BCPSO-HC (hybrid algorithm)), HC in 1 study, H in 2 studies with versions. In this technique Genetic Algorithm is used most. 44 7 6 5 4 3 2 1 0 Random GA G ACO PSO HC H Figure 3: Algorithms used in Selection Test Case Reduction In test case Reduction, 8 algorithms have been applied. ACO is used in 2 studies, Artificial Bee Colony (ABC) in 1 study, G in 11 studies with versions (G`, Greedy (MgrA), ADDDELTA, Delayed-Greedy heuristic (DelGreedy), GRE algorithm, GRE`, GE, GE`, 2-optimal greedy (2OPT)), GA in 11 studies with versions (Hybrid Genetic Algorithm (HGA), Quantum evolutionary Algorithm(QGA), IQGA), Bacteriological algorithm(BA) in 2 studies, PSO in 1 study with two versions (DPSO,CDPSO), Random in 3 studies and H in 11 studies with versions. In this technique Genetic Algorithm, greedy algorithm and heuristics are used most. 12 10 8 6 4 2 0 Random GA G ACO PSO ABC H BA Figure 4: Algorithms used in Reduction Test Case Optimized Generation In optimized test case generation, total number of algorithms have been worked are 13. ACO is used in 3 studies with versions (AS, ASelite, ACS, MMAS), SA in 1 study, G in 3 studies with versions (Density, ParaOrder, gradient descent), GA in 15 studies with versions (GA with Close-Up (CU) algorithm and Batch-Optimistic (BO) algorithm, Genetic Single point crossover/mutation, Genetic Multi point crossover/mutation, differential genetic (diffGA), 45 Strongly-Typed Genetic Programming), ABC in 2 studies with versions (Sequential and parallel), Random in 5 with versions, G. Kovacs proposed iterative test generation method in 1 study with 2 variations, Evolutionary Algorithm with Optimization Strategy Based on Cataclysm (OSBC) in 1 study, Evolutionary Algorithm with Dynamic Optimization of the possibility (DOMP) in 1 study, BA in 1, PSO in 1 study, Estimation of Distribution Algorithms (EDA) in 1 study, and Scatter search (SS) in 2 with versions (TCSS (test coverage scatter search), TCSS-LS (test coverage scatter search-local search), Combination of Scatter Search and EDA (SS-EDA)). In this technique Genetic Algorithm is used most. 16 14 12 10 8 6 4 2 0 Figure 5: Algorithms used in Optimized Generation Grouping of Algorithms Random algorithm and heuristic algorithms are not part of this SLR, but as in many studies Search Based algorithms are compared with them. So they are discussed but not in detail. Algorithms are grouped according to their similarities and versions. Algorithms and their versions Random prioritization Genetic Algorithm GA-hist time-aware statement coverage prioritization via GA time-aware method coverage prioritization via GA Time-aware test suite prioritization (GA-fun) Improved Genetic Algorithm NSGA-II coverage-based GA selection (CovGA), Hybrid Genetic Algorithm (HGA) Quantum evolutionary Algorithm IQGA Quantum-inspired Multi-objective differential Evolution Algorithm 46 GA with Close-Up (CU) algorithm and Batch-Optimistic (BO) algorithm Genetic Single point crossover/mutation Genetic Multi point crossover/mutation differential genetic (diffGA) Strongly-Typed Genetic Programming Greedy algorithm Total Greedy Algorithm Additional Greedy algorithm delayed greedy 2-Optimal Greedy Algorithm Reactive GRASP G` Greedy (MgrA) Greedy Algorithm (ADD-DELTA) GRE algorithm and GRE` GE and GE` coverage-based Greedy selection (CovGr), Density ParaOrder gradient descent Simulated annealing Ant Colony Optimization (ACO) Ant System (AS) Ant System with Elitist (ASelite) Ant Colony System (ACS) Max-Min Ant System(MMAS) Particle Swarm Optimization (PSO) BMOPSO BMOPSO-CDR BCPSO (Binary Constrained PSO) BCPSO-FS (hybrid algorithm) BCPSO-HC (hybrid algorithm) Nearest point algorithm chaos discrete particle swarm optimization algorithm(CDPSO) discrete particle swarm optimization (DPSO) Bacteriological algorithms Artificial Bee Colony Optimization (ABC) Sequential ABC Parallel ABC Hill Climbing Scatter search TCSS (test coverage scatter search) TCSS-LS (test coverage scatter search-local search) Combination of Scatter Search and EDA (SS-EDA) Heuristics Grouping depend on Similarities 47 Search based algorithms are grouped into two main sub groups Genetic and Swarm intelligence. Genetic also include bacteriological Algorithm as they follow same steps and Swarm intelligence include Particle swarm optimization, Ant Colony optimization, Artificial Bee Colony Algorithm, they all belong to same group as they have some parameters to help in optimization. 5.2. Research Question 2 RQ.2: What are different factors that are affecting the performance of these techniques? The solution to this research question lists down all the factors which affects the performance of the algorithms. Following are the factors showing algorithms affected by them. Parameter setting Most important factor is parameter setting that affect about all techniques, setting of parameters directly affect the performance of algorithms. Techniques that affects by this are Genetic Algorithm [s-9][s-17][s-32][s-39][s-49][s-53][s-55][s-60], Strongly-Typed Genetic Programming [s-29], Ant Colony Optimization[s-48], Nearest point algorithm[s-49], Scatter Search[s-62]. Number of iterations Number of iterations are specified as a parameter in start, when set less genetic algorithm does not perform well[s-2][s-7][s-9][s-45][s-53][s-55], Ant Colony Optimization also perform good in large number of iterations[s-4]. Local optima position Genetic algorithm trapped in local optima positions so it is time consuming[s-1][s-2][s-24][s55], by giving similar solutions. Whereas IGA, has overcome this problem by adding baseline testing[s-1], GA-hist overcome it by apply diversity in mutation, ABC works in both local and global optima[s-24], BA also overcome this problem and provide rapid and optimal convergence[s-55], and HGA provides near global optimal solutions[s-55]. Fault severities Fault severity means how much critical the fault in some part of the program i.e., if some part of the program is are very crucial than the fault found in this part is payable. GA-hist performs good with both vary and equal fault severity or can say all algorithms with historical data performs good with vary fault severity[s-2][s-7]. Population size The size of the population defined affects the iterations to get the optimal results, when population size is greater less iterations are needed to get the optimal results by GA[s-2][s-7]. 48 Time budget Time budget is measured in terms of time taken by test cases to execute. As testing is major part in SDLC and it is very time consuming. Search based algorithms have lack of uniformity in execution time[s-10]. When time budget is allocated longer GA provides best results[s18][s-25], when execution time of test cases is known GA can order test cases in better way [s-12], whereas according to some studies GA is more time consuming to produce representative set [s-28][s-33], GA-Hist is more efficient as it calculates fitness of each chromosome to consume the time overhead [s-2][s-7]. GRE produce minimum size of test suites then greedy and heuristic; when time resources are enough[s-31]. 2-optimal greedy and delayed greedy are more time consuming then Harrold Gupta Soffa (HGS) and traditional greedy[s-42], ACO also performs well with greater time to run[s-4], BCPSO-FS also has good results[s-52]. Memorization In iterative algorithms, at each iteration algorithm has to calculate the fitness value of selected test cases which increases the computational overhead as in Genetic algorithm [s24][s-38][s-53]. GA-hist has partially overcome this problem by adding historical value of test cases(execution time, faults detected and detected fault’s severity) in historical information repository, it helps in optimizing test cases[s-2][s-7]. Bacteriological algorithm memorizes the best test cases and produces best results [s-38][s-53] Parallel/Sequential Behavior Parallel behavior i.e., multithreading helps algorithms work fast. ABC has parallel behavior that makes algorithm work fast to reach the near global optimal solution[s-40]. GA can also enable parallel behavior[s-9]. ACO works in sequential behavior which makes it time consuming due to computational overhead and can cause memory limit issue[s-40] Memory Limit Memory limit problem comes under available resources; due to much computation memory limit issue may occur as in ACO[s-40], which is handled in ABC by applying parallel behavior[s-40]. Computational Overhead Algorithms have lots of calculations to choose the best to fit test case, if this calculation is done repeatedly called computational overhead. ACO is a sequential behavior algorithm, its solution selection is done at which causes computational overhead[s-40]. This issue is lessened by ABC a parallel behavior algorithm which selects solution at each iteration [s-40]. GA has also much overhead because of its sample selection at each iteration behavior [s-47]. Population Diversity 49 It is better to use different test orderings, to cover the same requirements that it can ensure product reliability; may be one same test ordering can miss the fault. Greedy with same time and CE value produces same test orderings whereas GA produces diverse test orderings [s-9]. QEA[s-44] and QGA[s-46] also produce population diversity. ACS achieves this by pseudorandom proportional rule[s-48]. Population Prematurity GA may get stuck into a local optimal solution, which shows the population of GA is premature[s-26]. Interrupted In Execution When resources reach the limit in ART and SBT (GA) test case execution can be stopped without any side effect[s-33][s-9]. Fitness Function Fitness functions are used to evaluate the relative superiority of different solution candidates and to determine the direction of the search, explicitly or implicitly[s-49]. Fitness function gives criteria to algorithm to judge whether the algorithm gives desired results. When fitness function’s criteria is fulfilled, means desired outcome has been achieved and iterations should be stop now. Different fitness functions are proposed to compare the GA and Nearest point algorithm[s-49]. Linear/Non Linear Solutions Generating test cases is a linear process, but automatically improving their efficiency from time to time is a non linear process. GA produces non linear suboptimal solutions as it could strikes up in local optima. Whereas HGA and BA have linear optimal solutions.[s-55] Initial Set Initial Set is the first sub-population chosen by the Algorithm to start for optimization. Greedy and heuristics may produce different results with different initial set [s-20]. Full Cross–Interference In full-interference crossover operation, all chromosomes in the population are involved in crossover; it takes the advantage of all chromosomes information as much as possible and brings a new evolutionary force even if premature population. By using full cross interference in QGA, it is easy to maintain the population diversity with a good convergence speed [s44][s-46]. Solution Selection Stage 50 Solution selection in ACO is done at the end of all iterations because of sequential behavior of algorithm, whereas in ABC solution selection is done at each iteration as its behavior is parallel [s-40] Complexity of Test Cases Complexity of test cases depends on the number of input/output variables and number of decision branches in code. Iterative algorithm takes more time with simple test cases then random algorithm, where as best with complex programs [s-61]. 5.3. Research Question 3 RQ.3: What is the performance comparison of selected Techniques? In solution to this research question a performance comparison of algorithms in each optimization approach is conducted. In empirically study on search based TCO there is much diversity, hence conducting the performance comparison is difficult. Following are the test case optimization approaches having algorithms and their comparison on the bases of coverage, execution time, error finding rate, stability of results, and minimum resulted test suite produce. Test Case Selection Genetic Algorithm Coverage GA compared to greedy has better results [s-17]. Execution time GA compared to greedy has better results [s-17]. GA compared to greedy and random, give best results when execution time is more [s-18]. In [s-33][s-47] none is dominating the other; in GA and random on the base of fault detection rate where is GA is more time consuming because of computational overhead. Quantum-inspired Multi-objective Differential Evolution Algorithm (QMDEA) compared to NSGA II, has faster convergence speed[s-34]. Particle Swarm Optimization Requirement coverage and execution effort Binary Multi-Objective PSO (BMOPSO), Binary Multi-Objective PSO using Crowding Distance and Roulette Wheel (BMOPSO-CDR) and Random search are compared, BMOPSO-CDR outperforms the both [s-16]. BCPSO compared with two hybrid algorithms integrated in BCPSO (BCPSO-HC and BCPSO-FS), Hill Climbing and random Search, both Hybrid techniques give promising results [s-52]. 51 Test Case prioritization Genetic Algorithm Execution Time Improved GA is more rapid than GA[s-1]. GA-hist is faster than GA-fun[s-2][s-7]. Additional Greedy is more efficient than greedy, genetic, simulated annealing and Reactive GRASP [s-3]. ILP requires less analysis time than GA but greater than traditional techniques [s-11]. Coverage There is no significant difference in coverage performance between Additional Greedy, greedy, genetic, simulated annealing and Reactive GRASP [s-3]. GA is more effective than greedy and Hill climbing [s-9], in some cases GA may not perform well [s-36]. When time budget is not concern traditional prioritization techniques outperform the ILP and GA [s-11]. Nearest point algorithm has better performance then greedy and GA, whereas GA has worse because of computational overhead [s49]. Additional Greedy Algorithm and 2-Optimal Greedy Algorithm perform better, Greedy and hill climbing performs weaker, and GA is worse [s-50]. Error finding rate GA-hist has best fault detection rate, in comparison to random, hist-fault-detect, histvalue, GA-fun, total-fun, cc-total-fun[s-2][s-7]. Fault detection rate of ILP is much better than GA and traditional prioritization techniques [s-11]. GA has better APFD than random search [s-12]. Stable Results Greedy, additional greedy and 2-optimal show same results when performs repeatedly, whereas hill climbing and genetic have vary results with each experiment [s-36]. Ant Colony Optimization Coverage ACS and MMAS has fastest coverage rate, AS has lowest rate and ASelite is between them [s-6]. Particle Swarm Optimization Execution Time 52 PSO is more efficient than random search [s-5]. Coverage PSO is more effective then random search [s-5]. Greedy Execution Time Greedy algorithm is faster than hill climbing [s-10]. Greedy and HGS are efficient than Delayed greedy and 2-optimal [s-42]. Coverage In comparison of greedy, additional greedy and 2-optimal greedy; greedy is worse and 2-optimal greedy is best [s-36]. Greedy and 2-opt has highest coverage rate and the Delayed greedy does better than HGS [s-42]. Test Case Generation Genetic Coverage Evolutionary Algorithm with Optimization Strategy Based on Cataclysm (OSBC) is better than Evolutionary Algorithm with Dynamic Optimization of the possibility (DOMP) [s-26]. Genetic Single point crossover/mutation performs well than Greedy and Genetic Multi point crossover/mutation [s-39]. Genetic algorithm with Close-Up (CU) algorithm and Batch-Optimistic (BO) algorithm has best coverage than random, gradient descent, standard genetic and differential genetic [s-59]. Execution Time In GA and random none is dominating, but GA is time consuming [s-33]. GA is speedy than Bacteriological algorithm in convergence [s-38]. Genetic Multi point crossover/mutation is faster than Greedy and Genetic Single point crossover/mutation [s-39]. Evolutionary Algorithm with Optimization Strategy Based on Cataclysm (OSBC) testing cost is high than Evolutionary Algorithm with Dynamic Optimization of the possibility (DOMP) [s-26]. Iterative algorithms decreases the total test case generation time [s-61]. Fault Detection GA has better fault detection rate than random [s-25]. Iterative algorithms provide similar or better results than random [s-61]. 53 Minimized test Suite Iterative algorithm has smaller number of final test cases than random [s-61]. Artificial Bee Colony and Ant Colony Optimization Execution Time AS has shortest execution time, ASelite has longest and, MMAS and ACS are between them [s-6]. Parallel-ABC takes least time, GA has greatest time and Sequential-ABC and Random lie between them [s-24]. ABC is fast and attains coverage 100% in few runs [s-40]. Coverage ABC has better coverage than ACO [s-40]. Minimized Test Suite Parallel-ABC has smallest generated test suite than sequential-ABC, GA and Random [s-24]. ACS generates smaller size of test suites than simulated annealing and greedy, but in some cases similar to simulated annealing [s-48]. Scatter Search Coverage Combination of Scatter Search and EDA (SS-EDA) is best, whereas Estimation of Distribution Algorithms (EDA) and Scatter Search (SS) are also good in coverage [s62]. TCSS-LS (test coverage scatter search-local search) outperforms than TCSS (test coverage scatter search) [s-54]. Test Case Reduction Genetic Coverage GA is better than random search [s-22][s-60]. Execution Time Genetic performs worst among H, ILP and GRE, whereas H is fastest [s-28]. GA has less execution time than greedy (ADD-DELTA) [s-32]. Modified GA is faster than simple GA and modified greedy [s-37]. Quantum genetic algorithm has least execution time than genetic algorithm, GE, GRE and HGS [s-44]. Improved QGA and 54 QGA have small execution time than GA [s-46]. Bacteriological Algorithm is speedy than GA [s-53]. Minimized Test Suite ILP has smallest representative set in Genetic, H and GRE, and Genetic not perform well [s-28]. GA has smaller reduced test suite than greedy (ADD-DELTA) [s-32]. Modified GA has smallest size than simple GA and Modified greedy [s-37]. Quantum Genetic algorithm and GA have better minimized test suite than GE, GRE and HGS [s-44]. IQGA has smallest than QGA, GA, HGS, GRE and greedy [s-46]. Fault detection ILP considers the fault detection capability [s-28]. Hybrid GA has better fault revealing percentage than GA and BA [s-55]. Ant Colony Optimization Coverage Ant colony algorithm is better than greedy, heuristic and GRE [s-19]. Particle Swarm Optimization Coverage CDPSO is best than DPSO, GE, H and GRE [s-20]. Execution time Convergence speed of CDPSO is faster as compared to DPSO, GE, H and GRE [s20]. Stable Results In different initial conditions GE, H and GRE may produce different results. Whereas CDPSO and DPSO are stable as they have nothing to do with initial values [s-20]. Neural Network Coverage ART (Adaptive Resonance Theory) neural network with Clustering is better than Random Algorithm [s-21]. Greedy and Heuristic 55 Coverage Advance GRE and advance H are best than GRE, H, G, GE, G’ and GE’ [s-31]. Fault Detection Clustering Heuristic has better fault detection rate than simple heuristic[s-43]. Minimized Test Suite Advance GRE has minimum reduced test Suite [s-31]. Heuristic has larger representative set than GRE and GE [s-35]. DelGreedy has smallest test suite than greedy, HGS and SMPS [s-41]. DelGreedy and HGS are best for minimizing the test suite than 2-optimal and greedy [s-42]. Clustering Heuristic has smaller reduced test suite than Heuristic [s-43]. Artificial Bee Colony Execution Time ABC is fast and attains coverage 100% in few runs [s-40]. Coverage ABC has better coverage than ACO [s-40]. Consistency in Result ABC provides Consistent Results. 56 Chapter 6: Conclusion In order to decrease the cost of regression testing, researchers have emphasized and shown importance to test case optimization (TCO) techniques, which identifies a subset of test cases that provide same coverage of software as the original test suite. There are many techniques for test case optimization but their main focus is on search based techniques as they find the optimal solutions for the problems. For optimizing the test cases, two main approaches can be considered; either generate the optimized test cases by using algorithms or to apply optimization approaches on already generated pool of test cases. There are three approaches for optimizing the already generated pool of test cases; which are prioritization, selection and reduction. There are many techniques for optimizing the test suite but it is focused on search based algorithms in this SLR. By search based techniques one can achieve better results at lower cost, and freeing the testers to work on testing problems that require more imagination and creativity. The aim of this SLR is to find the State-of-the-Art in search-based test case optimization and find which search-based algorithms are used for each optimization approach, factors affecting the performance of these algorithms and their performance comparison within each optimization approach. For this SLR research questions (RQ) are:RQ.1: Determine the Search Based Techniques being used for test case optimization and group these techniques? RQ.2: What are different factors that are affecting the performance of these techniques? RQ.3: What is the performance comparison of selected Techniques? The string results by all data bases are 443 articles. After exclusion filter 1 and removing the duplicates; 152 articles are selected. And after applying filter 2 final selected articles are 60 and 2 articles are added from reference scanning. It means 62 papers are finalized. The papers are distributed in optimized approaches as: prioritization (16 papers), selection (9 papers), reduction (20 papers) and optimized generation (23 papers). From table 1 number of algorithms in each approach are:- prioritization: 8 and their versions, selection: 7 with their versions, Reduction: 8 with their versions, and in optimized test case 57 generation: 13 with their versions. The used algorithms are genetic algorithm, greedy algorithm, ant colony optimization, Bacteriological algorithm, artificial bee colony, particle swarm optimization, heuristics, simulated annealing, hill climbing and scatter search algorithm. Factors which affect the performance of algorithms are Parameter setting, Number of iterations, Local optima position, Fault severities, Population size, Time budget, Memorization, Parallel/Sequential Behavior, Memory Limit, Computational Overhead, Population Diversity, Population Prematurity, Interrupted In Execution, Fitness Function, Linear/Non Linear Solutions, Initial Set, Full Cross–Interference, Solution Selection Stage, Complexity of Test Cases. These have been extracted from literature. And the performance of the Algorithms are compared on the bases of coverage, execution time, error finding rate, stability of results, and minimum resulted test suite produce, within each approach. By this SLR, researchers will find the gaps for their research. Researchers mostly haven’t applied real world data for validating their research, so it should be applied more for gaining more confidence on the algorithms. There should be more work on the performance comparisons of algorithms to find best algorithm for the purpose. 58 References 1. http://en.wikipedia.org/wiki/Software_testing 13 May, 2011. 2. Mark Harman, Bryan F. Jones, “Search-Based Software Engineering”, Information and Software Technology, vol-43, pg. 833-839, 2001. 3. M. Harman, A. Mansouri, and Y. Zhang, “Search based software engineering: A comprehensive analysis and review of trends techniques and applications”, Technical Report TR-09-03, Department of Computer Science, King's College London, April 2009. 4. Zheng Li, Mark Harman, and Robert M. Hierons, “Search Algorithms for Regression Test Case Prioritization”, IEEE Transactions on Software Engineering, Vol. 33, No. 4, p. 225237, April 2007. 5. Mark Harman, “The Current State and Future of Search Based Software Engineering”, Future of Software Engineering, 2007. 6. S. Ali, L.C. Briand, H. Hemmati, and R.K. Panesar-Walawege, “A Systematic Review of the Application and Empirical Investigation of Evolutionary Testing”, Technical Report Simula.SE.293, Simula Research Laboratory, 2008. 7. S. Ali, L.C. Briand, H. Hemmati, and R.K. Panesar-Walawege, “A Systematic Review of the Application and Empirical Investigation of Search based test case generation”, IEEE Transactions on Software Engineering, vol 36, No. 6, 2010. 8. Phil McMinn, “Search based software test data generation: A survey”, Software Testing, Verification and Reliability, 14(2), pp. 105-156, 2004. 9. W. Afzal, R. Torkar, R. Feldt, “A systematic mapping study on non-functional search- based software testing”, 20th International Conference on Software Engineering and Knowledge Engineering (SEKE), 2008. 10. W. Afzal, R. Torkar, R. Feldt, “A systematic review of search based software testing for non-functional system properties”, Information and software technology, 2009. 11. Leo Rela, “MS thesis Evolutionary computing in search based software engineering”, Lappeenranta university of technology, department of Information Technology, 2003. 12. Camila Loiola Brito Maia, et al, “Applying Search-Based Techniques for Requirements- Based Test Case Prioritization”, Proceedings of the Brazilian Workshop on Optimization in Software Engineering (WOES '10), 2010. 13. B. Kitchenham, “Guidelines for performing Systematic Literature Reviews in Software Engineering”, Version 2.3, EBSE Technical Report EBSE-2007-01, Keele University and University of Durham, 2007. 59 14. Cagatay Catal, “On the Application of Genetic Algorithms for Test Case Prioritization: A Systematic Literature Review”, EAST’12, Lund, Sweden, ACM, 2012. 15. T.Y. Chen, and M.F. Lau, “A new heuristic for test suite reduction”. Information and Software Technology, 40: p. 347-354, 1998. 16. S. Khurshid, T. Margaria, and W. Yi, “Testing an Intentional Naming Scheme Using Genetic Algorithms”, Tools and Algorithms for the Construction and Analysis of Systems, Springer Berlin / Heidelberg, p. 358-372, 2001. 17. B. Baudry, et al., “Genes and bacteria for automatic test cases optimization in the .NET environment”, 13th International Symposium on Software Reliability Engineering, ISSRE 2003. 18. B. Baudry, et al., “Automatic test case optimization using a bacteriological adaptation model: application to .NET components”, 17th IEEE International Conference on Automated Software Engineering, ASE 2002. 19. M. Xue-ying, S. Bin-kui, and Y. Cheng-qing, “Test-Suite reduction using genetic algorithm”, in Proceedings of the 6th international conference on Advanced Parallel Processing Technologies, Springer-Verlag: Hong Kong, China, 2005. 20. M.A. Xue-ying, et al., “A genetic algorithm for test-suite reduction”. International Conference on Systems, Man and Cybernetics, IEEE, 2005. 21. T. Sriraman and G. Neelam, “A concept analysis inspired greedy algorithm for test suite minimization”, Proceedings of the 6th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, ACM: Lisbon, Portugal, 2005. 22. R.W. Kristen, et al., “Time Aware test suite prioritization”, Proceedings of the 2006 international symposium on Software testing and analysis, ACM: Portland, Maine, USA, 2006. 23. Adenilso da Silva, S., M. Rodrigo Fernandes de, and S. Luciano Jose, “A Technique to Reduce the Test Case Suites for Regression Testing Based on a Self-Organizing Neural Network Architecture”, Proceedings of the 30th Annual International Computer Software and Applications Conference, IEEE Computer Society, Volume 02. 2006. 24. R.N. Sagarna, and J.A. Lozano, “Scatter Search in software testing, comparison and collaboration with Estimation of Distribution Algorithms”, European Journal of Operational Research, 169(2): p. 392-412, 2006. 25. G. KovÃcs, et al., “Iterative automatic test generation method for telecommunication protocols”, Computer Standards & Interfaces, 28(4): p. 412-427, 2006. 60 26. C.S.S. Dharsana, et al., “Java Based Test Case Generation and Optimization Using Evolutionary Testing”, Proceedings of the International Conference on Computational Intelligence and Multimedia Applications (ICCIMA 2007) - Volume 01, IEEE Computer Society, 2007. 27. Jos, et al., “Strongly-typed genetic programming and purity analysis: input domain reduction for evolutionary testing problems”, Proceedings of the 10th annual conference on Genetic and evolutionary computation, ACM: Atlanta, GA, USA, 2008. 28. Jos and R. Carlos Bregieiro, “Search-based test case generation for object-oriented java software using strongly-typed genetic programming”, Proceedings of the 2008 GECCO conference companion on Genetic and evolutionary computation, ACM: Atlanta, GA, USA, 2008. 29. H. Zhong, L. Zhang, and H. Mei, “An experimental study of four typical test suite reduction techniques”, Information and Software Technology, 50(6): p. 534-546, 2008. 30. Z. Xiaofang, et al., “An Empirical Evaluation of Test Suite Reduction for Boolean Specification-Based Testing”, Proceedings of the 2008 The Eighth International Conference on Quality Software, IEEE Computer Society, 2008. 31. A.A. Sofokleous, and A.S. Andreou, “Automatic, evolutionary test data generation for dynamic software testing”, Journal of Systems and Software, 81(11): p. 1883-1898, 2008. 32. K.H.S. Hla, C. YoungSik, and P. Jong Sou. “Applying Particle Swarm Optimization to Prioritizing Test Cases for Embedded Real Time Software Retesting”, IEEE 8th International Conference on Computer and Information Technology Workshops, CIT Workshops, 2008. 33. C. Xiang, et al., “Variable Strength Interaction Testing with an Ant Colony System Approach”, Proceedings of the 2009 16th Asia-Pacific Software Engineering Conference, IEEE Computer Society, 2009. 34. Z. Lu, et al., “Time-aware test-case prioritization using integer linear programming”, Proceedings of the eighteenth international symposium on Software testing and analysis, ACM: Chicago, IL, USA, 2009. 35. M. Wes, and E.G. Marwa, “Test case filtering and prioritization based on coverage of combinations of program elements”, Proceedings of the Seventh International Workshop on Dynamic Analysis, ACM: Chicago, Illinois, 2009. 36. J.C.B. Ribeiro, et al., “Test Case Evaluation and Input Domain Reduction strategies for the Evolutionary Testing of Object-Oriented software”, Information and Software Technology, 51(11): p. 1534-1548, 2009. 61 37. H.A. James, and M. Tim, “On the value of combining feature subset selection with genetic algorithms: faster learning of coverage models”, Proceedings of the 5th International Conference on Predictor Models in Software Engineering, ACM: Vancouver, British Columbia, Canada, 2009. 38. D.J. Mala, et al., “A non-pheromone based intelligent swarm optimization technique in software test suite optimization”, International Conference on Intelligent Agent & MultiAgent Systems, IAMA 2009. 39. S. Parsa, A. Khalilian, and Y. Fazlalizadeh, “A new algorithm to Test Suite Reduction based on cluster analysis”, 2nd IEEE International Conference on Computer Science and Information Technology, ICCSIT 2009. 40. M.S. Adam, and M.K. Gregory, “An empirical study of incorporating cost into test suite reduction and prioritization”, Proceedings of the 2009 ACM symposium on Applied Computing, ACM: Honolulu, Hawaii, 2009. 41. C. Xiang, et al., “Building Prioritized Pairwise Interaction Test Suites with Ant Colony Optimization”, 9th International Conference on Quality Software, QSIC '09, 2009. 42. R. Blanco, J. Tuya, and B. Adenso-DÃaz, “Automated test data generation using a scatter search approach”, Information and Software Technology, 51(4): p. 708-720, 2009. 43. D. Mohapatra, P. Bhuyan, and D.P. Mohapatra, “Automated Test Case Generation and Its Optimization for Path Testing Using Genetic Algorithm and Sampling”, WASE International Conference on Information Engineering, ICIE '09, 2009. 44. D.W. Zachary, and M.K. Gregory, “Using synthetic test suites to empirically compare search-based and greedy prioritizers”, Proceedings of the 12th annual conference companion on Genetic and evolutionary computation, ACM: Portland, Oregon, USA, 2010. 45. P. Nenggang, Z. FanPing, and H. Yu-Han, “Test Case Reduction Based on Program Invariant and Genetic Algorithm”, 6th International Conference on Wireless Communications Networking and Mobile Computing (WiCOM), 2010. 46. Z. Yi-kun, et al., “Study of Test Suite Reduction Based on Quantum Evolutionary Algorithm”, International Conference on Artificial Intelligence and Computational Intelligence (AICI), 2010. 47. L. Sihan, et al., “A Simulation Study on Some Search Algorithms for Regression Test Case Prioritization”, Proceedings of the 2010 10th International Conference on Quality Software, IEEE Computer Society, 2010. 62 48. D.J. Mala, and V. Mohan, “Quality improvement and optimization of test cases: a hybrid genetic algorithm based approach”, SIGSOFT Softw. Eng. Notes, 35(3): p. 1-14, 2010. 49. W. Meng, et al., “An Optimization Strategy for Evolutionary Testing Based on Cataclysm”, Proceedings of the 2010 IEEE 34th Annual Computer Software and Applications Conference Workshops, IEEE Computer Society, 2010. 50. S. Jia-ze, and W. Shu-yan, “A novel chaos discrete particle swarm optimization algorithm for test suite reduction”, 2nd International Conference on Information Science and Engineering (ICISE), 2010. 51. H. Hemmati, and L. Briand, “An Industrial Investigation of Similarity Measures for Model-Based Test Case Selection”, IEEE 21st International Symposium on Software Reliability Engineering (ISSRE), 2010. 52. S. Lucas Serpa, and S. Maarten van, “Evolutionary testing of object-oriented software”, Proceedings of the 2010 ACM Symposium on Applied Computing, ACM: Sierre, Switzerland, 2010. 53. S. Nachiyappan, A. Vimaladevi, and C.B. SelvaLakshmi, “An evolutionary algorithm for regression test suite reduction”, International Conference on Communication and Computational Intelligence (INCOCCI), 2010. 54. H. Hadi, et al., “An enhanced test case selection approach for model-based testing: an industrial case study”, Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering, ACM: Santa Fe, New Mexico, USA, 2010. 55. P.C. Alexander, S.R. Robert, and M.K. Gregory, “Empirically studying the role of selection operators during search-based test suite prioritization”, Proceedings of the 12th annual conference on Genetic and evolutionary computation, ACM: Portland, Oregon, USA, 2010. 56. F. Ethan, et al., “Designing better fitness functions for automated program repair”, Proceedings of the 12th annual conference on Genetic and evolutionary computation, ACM: Portland, Oregon, USA, 2010. 57. H. Yu-Chi, et al., “Design and Analysis of Cost-Cognizant Test Case Prioritization Using Genetic Algorithm with Test History”, Computer Software and Applications Conference (COMPSAC), IEEE 34th Annual, 2010. 58. A. Arcuri, et al., “Black-Box System Testing of Real-Time Embedded Systems Using Random and Search-Based Testing”, Testing Software and Systems, Springer Berlin / Heidelberg. p. 95-110, 2010. 63 59. M. Camila Loiola Brito, et al., “Automated test case prioritization with reactive GRASP”, Adv. Soft. Eng., p. 1-13, 2010. 60. D. Jeya Mala, V. Mohan, and M. Kamalapriya, “Automated software test optimisation framework - an artificial bee colony optimization-based approach”, Software, IET, 4(5): p. 334-348, 2010. 61. R. Abdul, et al., “Automated GUI Test Coverage Analysis Using GA”, Proceedings of the 2010 Seventh International Conference on Information Technology: New Generations, IEEE Computer Society, 2010. 62. B.S. Ahmed, and K.Z. Zamli, “A variable strength interaction test suites generation strategy using Particle Swarm Optimization”, Journal of Systems and Software, 84(12): p. 2171-2185, 2011. 63. J. Wang, Y. Zhuang, and C. Jianyun, “Test Case Prioritization Technique Based on Genetic Algorithm”, Proceedings of the 2011 International Conference on Internet Computing and Information Services, IEEE Computer Society, 2011. 64. D. Cui, and W. Yin, “The research of test-suite reduction technique”, International Conference on Consumer Electronics, Communications and Networks (CECNet), 2011. 65. S.d.S. Luciano, et al., “A Multi-objective Particle Swarm Optimization for Test Case Selection Based on Functional Requirements Coverage and Execution Effort”, Proceedings of the 2011 IEEE 23rd International Conference on Tools with Artificial Intelligence, IEEE Computer Society, 2011. 66. Z. Yi-kun, et al., “An improved quantum genetic algorithm for test suite reduction” IEEE International Conference on Computer Science and Automation Engineering (CSAE), 2011. 67. J.J. Dom, et al., “Evolutionary mutation testing”, Information and Software Technology, 53(10): p. 1108-1123, 2011. 68. J. Koljonen, “Comparison of nearest point algorithms by genetic algorithms”, Expert Systems with Applications, 38(8): p. 10303-10311, 2011. 69. K. Derderian, et al., “A Case Study on the Use of Genetic Algorithms to Generate Test Cases for Temporal Systems”, Advances in Computational Intelligence, Springer Berlin / Heidelberg, p. 396-403, 2011. 70. C.P. Vudatha, et al., “Automated generation of test cases from output domain of an embedded system using Genetic algorithms”, 3rd International Conference on Electronics Computer Technology (ICECT), 2011. 64 71. S. Bharti, and S. Shweta, “Analyzing test case selection & prioritization using ACO”, SIGSOFT Softw. Eng. Notes, 36(6): p. 1-5, 2011. 72. M. Matthias, and S. Francesca, “Software reliability testing covering subsystem interactions”, Proceedings of the 16th international GI/ITG conference on Measurement, Modeling, and Evaluation of Computing Systems and Dependability and Fault Tolerance, Springer-Verlag: Kaiserslautern, Germany, 2012. 73. A.C. Kumari, K. Srinivas, and M.P. Gupta, “Multi-objective test suite minimization using Quantum-inspired Multi-objective Differential Evolution Algorithm”, IEEE International Conference on Computational Intelligence & Computing Research (ICCIC), 2012. 74. H. Yu-Chi, P. Kuan-Li, and H. Chin-Yu, “A history-based cost-cognizant test case prioritization technique in regression testing”, J. Syst. Softw., 85(3): p. 626-637, 2012. 75. L.S. de Souza, et al., “Search based constrained test case selection using execution effort”, Expert Systems with Applications, 40(12): p. 4887-4896, 2013. 65 Appendix 66 Appendix A: Protocol P ROTOCOL Protocol of Systematic Review of Empirical Literature in Search Based Test Case Prioritization Beenish Fatima 293-FBAS/MSSE-F09 Protocol Version 1.2 May, 2011. Department of Software Engineering Faculty of Basic and Applied Sciences International Islamic University Islamabad http://iiu.edu.pk 67 Protocol of Systematic Review of Empirical Literature in Search Based Test Case Prioritization Preamble Software is evolving in nature because requirements of customers change over time. To maintain the quality in software, testing is very important. For testing purpose, test cases are designed for initial version of software, but by modifications in software more test cases are added to test suit which make test suit large. But for quality we have to retest the whole software again with all test cases, as little change in code may affect some other part of code which is pre-verified, this is regression testing which is time consuming and may take several weeks. Normally, in practice there is not enough time to retest the software with all test suits, for this we apply test case optimization, to do major or critical testing first, that if due to time shortage, and if we have to quit the testing for saving the time then major objective of testing should be achieved. Test case optimization is minimizing the number of test cases to be executed by some criteria, which provide the same coverage as original test suite and to save the cost of test case execution. For optimizing the test cases two main approaches can be considered; generate the optimized test cases or to apply optimization strategy on already generated pool of test cases. For already generated test suites optimization the approaches used are test case selection, reduction and prioritization. Test case selection is to select some test cases in a subset from original test set according to some criteria. Test-suite reduction is to reduced test suite by removal of test cases and test-suite prioritization is an ordering of the test cases in the test suite according to some criteria or goals. In existing research studies there are many techniques/algorithms for each approach of optimization. But in this research my main focus is on search based techniques. Search based software engineering (SBSE) is a new terminology which was introduced by Mark Harman and Jones in 2001 [1]. “SBSE is an approach to software engineering in which search based optimization algorithms are used to address problems in software engineering” [2]. This approach is most adaptive now-a-days because it offers automated and semi automated solutions for Software engineering problems having large and complex problems spaces with multiple competing and conflicting objectives [2]. My focus here is to systematically review those empirical studies on the search based techniques for test case prioritization, as a number of empirical studies for this topic exist in literature. The protocol for my SLR is developed based on the guidelines of Kitchenham (2007) [21]. Background Testing is the most important and critical part of software life cycle development. But this is the most expensive phase to apply, so it is not recommendable to test rigorously due to short of resources such as time and cost. For example, “one of our industrial partner reports that for one of 68 its products of about 20,000 lines of code, for this test suite requires seven weeks to run” [3]. For this purpose test case optimization techniques selection, prioritization and reduction are being used to enhance the efficiency of testing [3][4]. In test case reduction there is possibility to skip major test case, which tests the important portion of the system under test, if the technique used is not good. Whereas in test case prioritization; test cases are arranged by some priority criteria which are of importance to the testers. Prioritization is majorly done on the criteria of coverage and cost. Coverage consist of requirement’s coverage, statement coverage, branch coverage, block coverage, etc. and cost consist of execution time [5][6] and financial cost associated with the running of test cases [3]. A test suite is typically developed for the initial version of evolving software, later on it is reused and embed to test each subsequent version. With the integration of additional functionality in software increases the test suit, and it is not feasible for regression testing because of big test suit, and this is not efficient. To increase the efficiency of testing performance test suit should be optimized. There are many techniques for test case prioritization and test case reduction [2][3][4][7]. But in this research my main focus is on search based techniques. Search Based Software Engineering is approach of software engineering in which search based techniques are used to address the problems in Software Engineering [7]. These algorithms are frequently in use since after 2001, in different fields of software engineering. The most commonly used techniques are local search, simulated annealing, genetic algorithms [2][6][7][8][9], and genetic programming. Other techniques are also in use for example greedy algorithm [10], random algorithm [11], particle swarm optimization [12], ant colony, etc and there different versions. Genetic algorithm is commonly in practice and more prefer on other algorithms [13][14]. But in some scenarios, Additional greedy algorithm [14] and particle swarm optimization [12] are preferred. The major flaw of genetic algorithm is big list of parameters that are difficult to handle [12]. These techniques use artificial intelligence which is human competitive i.e. these algorithm can produce solutions without involving humans and these test suit are more efficient [15]. Several authors have provided comparative studies on the performance of several Search based techniques regarding test case optimization approaches [6, 12, 13, 14, 15, 16]. In [14], there is comparison between NSGA-II, MoCell, SPEA2 and Random algorithm. Here comparison is done on the bases of requirements coverage and execution time. On the base of Requirements coverage; Random is worst whereas, SPEA2 seems to have a better performance for smaller search spaces, while NSGA-II and MOCell have better performance for larger search spaces and on time bases; Random algorithm had the best lowest execution time. The second best execution time was obtained by MOCell, followed by NSGA-II. SPEA2 was slowest algorithm. 59% work of SBSE done on software testing [7][17]. Hence, there is a lot work in Software testing. McMinne [17] has surveyed the application of Meta heuristics search techniques to software test data generation. Ali et al, [18] conducted systematic literature review (SLR) on Search based test case generation (SB-TCG) in which he discussed the application of SB-TCG through empirical evidence present in literature. W. Afzal performed systematic mapping [19] and SLR [20] on search 69 based software testing for non functional system properties and pin-point challenges in the application of search based techniques for testing the non-functional properties of the system. As mentioned, surveys and SLRs already had been done on search based software testing but not specifically cover Search based test case optimization (SB-TCO). A bundle of work on search based test case optimization techniques is present in literature in wide variation. But not all together on one place, so there is need to do a systematic literature review on SB-TCO, which provides stateof-the-art on SB-TCO for future research and help to identify the gaps. Research Questions One of the rationales for this SLR is to summarize the existing evidence concerning Search Based Test Case Optimization (TCO). So my evidence based investigation is mainly focused on this. To understand state-of-the-art empirical work in Search Based TCO, in terms of gaps, commonalities in existing empirical results and the comparison between Search Based techniques used for TCO approaches, the following three research questions are being formulated. There is vast amount of variations in this context, and until now no clear guidance for applying the right evolutionary algorithm is in the right situation. The main driver for conducting the systematic review was to identify gaps, commonalities in empirical research related to Search Based Test Case Prioritization and sum up the existing practices to answer the questions: who, where, what, why and how in use of Search techniques. The research questions are formulated to form a baseline for state-of-theart empirical work and hence the objective is that the systematic review should form a milestone for both future research and for practical use by practitioners. Thus my major concerns are as follows: RQ.1: Determine the Search Based Techniques being used for test case prioritization and group these techniques? RQ.2: What are different factors that are affecting the performance of these techniques? RQ.3: What is the performance comparison of selected Techniques? Detail of Questions RQ.1: Determine the Search Based Techniques being used for test case optimization and group these techniques? The aim is to understand the existing research directions of test case optimization with the help of search based techniques and mainly the work is considered having some empirical work attached with it. There are many search based techniques are used for test case optimization such as Greedy algorithm, Genetic algorithm, particle swarm optimization, etc., and there versions. So from systematic literature review I will list down all techniques (algorithms) and group those according to their similarities i.e. versions of any algorithm such as greedy algorithm and additional greedy algorithm, or genetic algorithm and NSGA etc. The solution to this question gives us the 70 state-of-the-art empirical work of search based techniques used for test case optimization. RQ.2: What are different factors that are affecting the performance of these techniques? From listed techniques for all optimization approaches, I select some (not all) evolutionary algorithms. And from empirical work I will identify the factors that can affect the performance of these techniques such as size of the code, size of test suite, size of test cases, etc. The solution of this question consist of all factors on which the performance of these techniques be measured. RQ.3: What is the performance comparison of selected Techniques? In empirically study on search based TCO there is much diversity, hence conducting the performance comparison is difficult. In this SLR I will conduct the performance comparison of techniques with in each optimization approach on the bases of: coverage effectiveness, response time, defect detection rate. In the solution I’ll get performance of selected search based optimization techniques in comparison with each other. Structured Questions RQ.1: Determine the Search Based Techniques being used for test case optimization and group these techniques? Population: Empirical Literature for Search based test case optimization. Outcome: List of grouped search based techniques used in TCO. Intervention: SB-TCO. Comparison: On the bases of similarities. RQ.2: What are different factors that are affecting the performance of these techniques? Population: Data Regarding Performance of Search Algorithm for test case optimization. Outcome: List of factors affecting the performance of these techniques. Intervention: Search Based Test Case optimization Comparison: No. RQ.3: What is the performance comparison of selected Techniques? Population: selected search based techniques Outcome: Best search Based techniques for test case optimization approaches. Intervention: SB-TCO. Comparison: On the bases of coverage effectiveness, response time, defect detection rate. 71 Search Strategy Strategy for Search terms In search strategy, the search process will be conducted according to the following decided steps: 6. I will derive major search strings from my SLR topic. 7. Identify alternative spellings and synonyms for major terms; also alternative terms used in literature will be considered (e.g. prioritization, optimization) 8. When database allows, use the Boolean OR to incorporate alternative spellings and synonyms; and when database allows, use the Boolean AND to link the major terms from population, intervention and outcome. 9. Break down the strings so that it can be applied to different databases. Give unique ID to every segmented search string. And I will customize them for given resources to be applied for searches. 10. Tools used for automating the search process Step1: Major Search Terms: - Search Based techniques Test case Optimization Empirical Step 2: alternative spellings and synonyms for major terms - - Search Based optimization algorithm (Search Based Optimization Algorithm OR Genetic algorithm OR GA OR Particle swarm optimization OR PSO OR Evolutionary Algorithm OR metaheuristic) Test case (Test case OR Test suite OR Test data) Prioritization (Prioritization OR Optimization OR Reduction OR Selection OR Minimization OR optimized Generation) Empirical (Empirical study OR Case study OR Survey OR Technical Report OR Experiment) Step 3: Integrating Boolean <OR> and <AND> (Search Based Optimization Algorithm OR Genetic algorithm OR GA OR Particle swarm optimization OR PSO OR Evolutionary Algorithm OR metaheuristic) AND (Test Case OR Test Suit) AND (Prioritization OR Optimization OR Reduction OR Selection OR Minimization OR optimized Generation) AND (Empirical study OR Case study OR Survey OR Technical Report OR Experiment) Step 5: Tools used for automating the search process 72 To speed up the process of documenting my search results I will be using two tools which will help me in automating the process. These tools are as follows: - - End notes [for documenting bibliography from searches]; I will retrieve search results in End notes and later, on the basis of titles and abstracts I will include or exclude papers. It will help me in documenting my search results for both primary searches and for primary studies. MS Access [to track the references]. Resources to be searched A range of data bases has been selected for rigorous search and to reduce the bias. Following data bases will be searched for the retrieval of primary studies: Springer link IEEE Explore ACM Digital library Science Direct Other sources to be searched - Various databases are being selected to reduce the bias of study including published Technical Reports, Journal Papers and Conference Proceedings. I will also contact key authors directly to check for any new works that have been accepted for publication, but these are still in printing process. Then I will go for secondary studies mentioned in the references of the each primary study by applying same procedures as applied for primary studies. Study selection criteria The initial selection will be on the basis of the TITLE and ABSTRACT of the paper. All data obtained from the search process will be archived in database according to the journal from which it is retrieved. From database the duplicates originating from various search engines will be removed after initial scan of results. Inclusion and exclusion criteria will be applied on the remaining articles to sort out the accepted ones. On accepted papers detailed inclusion criteria will be applied which is a Quality Instrument for studies to see whether these qualify to be included or not. Full papers of all studies that are not clearly ineligible to fit in the criteria, will then be discussed with supervisor for their final exclusion. The excluded papers and reasons for exclusion will be recorded in a file, and the included papers and study type will be recorded in another file. 73 Study of inclusion and Exclusion Criteria Various criteria are formulated with the intension to identify those studies that provide direct evidence for the research questions. Following are the inclusion and exclusion criteria for my research questions: Inclusion criteria: In order to answer the stated research questions, I have been searching for research articles by reading the abstracts that contain information about search based test case optimization with some empirical work done in it. So the papers including a case study, an experiment, survey or industrial experience reports are focused. When it will be confirmed after reading the abstract that article is relevant to my research, I will study the whole paper. The objective of the selection process was to identify the Articles relevant to the objectives of the systematic review. The search strings, are quite broad and hence it is expected that not all studies identified would find a place in the final phase of selection process. Only those studies will be included that are empirical based and where the main focus is test case optimization with search based technique(s). Exclusion criteria: - Those studies will be excluded that are based on personal expert opinion. One study can be reported in multiple papers so on the basis of validity score I will include highest ranked journals and exclude others. Multiple studies can be reported in one paper; if any of them do not stand to our inclusion criteria and differ variably then only the irrelevant study will be excluded. Quality Instrument for assessing validity After initial selection of studies, a more detail criteria is required to judge the quality of study to see whether it is worth considering as evidence to answer our research question or not. Quality Instrument will be designed for assigning numerical values for factors in the checklist to be evaluated for each study. My main focus is on the study design (of the paper). The research questions and my inclusion/exclusion criteria will suggest me that I am going to include only empirical studies like Case studies, Industrial Experience Reports etc. If any paper is considered to be very poor in quality it will not be excluded at this stage and its record will be maintained. Quality assessment checklists for empirical data e.g. survey, case study, experiment and experience report etc will be used from guidelines of Kitchenham (2007) [21]. A Quality Instrument including check list for assessing the quality of study and assigning numerical values to the questions to rank the selected papers. 74 Quality Instrument Checklist for Assessing the Articles Sr. No. Quality Assessment Questions General Paper Evaluation Do the author(s) clearly mention the issues or 1 hypothesis for the paper? Is the paper clearly describe/define the design 2 (procedure followed, treatments and all controls) of empirical study used? 3 Are the findings or results clearly stated? Does the case/data choose for analysis is big 4 enough to narrate with real life problem? Is the data used for analysis sufficiently 5 rigorous? Is the article written in a balanced and 6 understandable manner? 7 Are threats to validity described? According to Research Question Evaluation Relevant to my research question? 8 (Score 1 for each research question) Does the article include more than one 9 algorithm? Do the search based algorithm(s) described in 10 detail? Are the factors affecting the performance 11 stated? Is the performance comparison between 12 algorithms clearly presented? Total Scale Score Y=1/Partly=0.5/N=0 Y=1/Partly=0.5/N=0 Y=1/Partly=0.5/N=0 Y=1/Partly=0.5/N=0 Y=1/Partly=0.5/N=0 Y=1/Partly=0.5/N=0 Y=1/Partly=0.5/N=0 Strongest=3-Lowest=0 Y=1/N=0 Y=1/Partly=0.5/N=0 Y=1/Partly=0.5/N=0 Y=1/Partly=0.5/N=0 14 Search Process Documentation Primary Search Documentation The customized search strings will be applied to the databases according to decided strategy. As the process will go on, the results will be saved by the following decided strategy. i. ii. iii. iv. v. Main folder by name of RQ.1 will be created. Within folder further sub folders by the name of specified database or journal will be created. Within each folder for different search string terms different folders will be created by the name of their IDs. All records will be maintained for one search string in library of reference manager software (endnotes). Results of that specific search strings will be placed in that folder created by the name of that search string. 75 vi. vii. viii. ix. x. xi. Duplicates (in papers and studies in papers) will be removed from data base after scanning the records. After applying inclusion/exclusion criteria within the folder by the name of journal, I will create two folders for included and excluded papers. This will also give indication that which journal gave more evidence then others. Data base will be updated for included and excluded papers. Reasons for exclusion will be recorded in a file. All included papers will be moved to one folder. Conflicts for papers where inclusion or exclusion is ambiguous will be consulted according to the decided rules, another file will be created to record these activities, the decisions will be recorded accordingly and papers will either be accepted or rejected. Secondary Search Documentation From accepted primary studies, secondary searches will be made and same procedure will be followed as followed for the documentation of primary searches. Data Extraction Data-Extraction form will be applied it to all the accepted papers and differences between results will be resolved by returning to the relevant literature, discussion, and when necessary consultation with supervisors. The data-extraction forms will be entered into the Data base for results. Duplicate publication will be identified by cross-checking the study population and location for all studies reporting same results. When duplicates are identified, the paper that reports the most recent results of the study will be prefer. Data extraction will be performed only for that decided paper. For each paper I will give an ID to the study. For one paper having multiple studies I will give separate Study ID to each study. The form will first obtain general information about the paper and then data extraction procedure will be applied related to the research questions. General Information required for a single Paper Reference No. Title Authors Published In Year Abstract Algorithms Optimization Approach Selection/Reduction/Prioritization/Generation Issues Type of research Experiment/Survey/Case Study/Industrial Report 76 Experiment Research Methodology Quality Score Optimization Approach Prioritization Factors limiting the performance 2 instances, A 30 test case and B 90 test cases. Requirement coverage Optimization Based on criteria NSGA-II, MoCell, SPEA2 Algorithms Based on requirement coverage and execution time Comparison Any Comparison? Procedure followed Factors effecting the performance Results Remarks Yes/No (if yes) Extraction Data Table 77 s-3 s-2 [14] s-1 . . . Paper Reference Study ID Validation of Review Process The final version of the protocol will be formed after performing two steps; Protocol Evaluation and Pilot testing. Protocol Evaluation Following strategy will be applied for evaluation; o o o The protocol will be initially given for peer review. Then will be evaluated from supervisor. It would then be sent for external evaluation to selected panel of independent reviewers. Protocol will be updated into final version after comments from external reviewers and pilot testing. Pilot testing For pilot testing, I run the atomic search strings on IEEE search engine only and results are: Sr. No. Search Engine: IEEE Explorer Search String Refined By St-1.1 (("test case optimization") AND genetic) St-1.2 (("test case prioritization") AND genetic) St-1.3 (("test suite prioritization") AND genetic) St-1.4 (("test suite optimization") AND genetic) St-1.5 (("test suite reduction") AND genetic) St-1.6 (("test case reduction") AND Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Date Results 02-05-11 4 02-05-11 5 02-05-11 0 02-05-11 1 02-05-11 2 02-05-11 1 78 genetic) St-1.7 (("test suite generation") AND genetic) St-1.8 (("test case generation") AND genetic) St-1.9 (("test suite generation") AND evolution) St-1.10 (("test case generation") AND evolution) St-1.11 (("test case optimization") AND evolution) St-1.12 (("test suite optimization") AND evolution) St-1.13 (("test suite prioritization") AND evolution) St-1.14 (("test case prioritization") AND evolution) St-1.15 (("test case reduction") AND evolution) St-1.16 (("test suite reduction") AND evolution) St-1.17 ((("particle swarm optimization") OR "PSO") AND "test suite reduction") ((("particle swarm optimization") OR "PSO") AND "test case reduction") ((("particle swarm optimization") OR "PSO") AND "test case prioritization") ((("particle swarm optimization") OR "PSO") AND "test suite prioritization") ((("particle swarm optimization") OR "PSO") AND "test suite optimization") ((("particle swarm optimization") OR "PSO") AND "test case optimization") ((("particle swarm St-1.18 St-1.19 St-1.20 St-1.21 St-1.22 St-1.23 Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & 02-05-11 2 02-05-11 49 02-05-11 0 02-05-11 9 02-05-11 0 02-05-11 1 02-05-11 0 02-05-11 3 02-05-11 0 02-05-11 2 02-05-11 1 02-05-11 0 02-05-11 1 02-05-11 0 02-05-11 1 02-05-11 0 02-05-11 0 79 St-1.24 St-1.25 optimization") OR "PSO") AND "test case generation") ((("particle swarm optimization") OR "PSO") AND "test suite generation") ((("ant colony") OR "ATO") AND "test suite generation") St-1.26 ((("ant colony") OR "ATO") AND "test case generation") St-1.27 ((("ant colony") OR "ATO") AND "test case prioritization") St-1.28 ((("ant colony") OR "ATO") AND "test suite prioritization") St-1.29 ((("ant colony") OR "ATO") AND "test suite optimization") St-1.30 ((("ant colony") OR "ATO") AND "test case optimization") St-1.31 ((("ant colony") OR "ATO") AND "test case reduction") St-1.32 ((("ant colony") OR "ATO") AND "test suite reduction") St-1.33 Search based") AND "test suit reduction") St-1.34 (("Search based") AND "test case reduction") St-1.35 (("Search based") AND "test case optimization") St-1.36 (("Search based") AND "test suite optimization") St-1.37 (("Search based") AND "test suite prioritization") St-1.38 (("Search based") AND "test case prioritization") St-1.39 (("Search based") AND "test case generation") St-1.40 (("Search based") AND "test Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & 02-05-11 0 02-05-11 0 02-05-11 0 02-05-11 0 02-05-11 0 02-05-11 1 02-05-11 0 02-05-11 0 02-05-11 0 03-05-11 0 03-05-11 0 03-05-11 0 03-05-11 0 03-05-11 0 03-05-11 0 03-05-11 8 03-05-11 0 80 suite generation") St-1.41 ((Bacteriological) AND "test suite generation") St-1.42 ((Bacteriological) AND "test case generation") St-1.43 ((Bacteriological) AND "test case optimization") St-1.44 ((Bacteriological) AND "test suite optimization") St-1.45 ((Bacteriological) AND "test suite prioritization") St-1.46 ((Bacteriological) AND "test case prioritization") St-1.47 ((Bacteriological) AND "test case reduction") St-1.48 ((Bacteriological) AND "test suite reduction") St-1.49 ((Bacteriological) AND "test suite selection") St-1.50 ((Bacteriological) AND "test case selection") Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) Subject: Computing & Processing (Hardware/Software) 03-05-11 0 03-05-11 0 03-05-11 2 03-05-11 0 03-05-11 0 03-05-11 0 03-05-11 0 03-05-11 0 03-05-11 13 03-05-11 75 And the results of integrated queries are: Sr. No. St-IEEE1 St-IEEE2 Search Engine: IEEE Explorer Search String Refined By ((((Abstract:Genetic) OR Abstract:GA) AND (((Abstract:"test case") OR Abstract:“test suite”) OR Abstract:“test data”)) AND ((((((Abstract:optimization) OR Abstract:prioritization) OR Abstract:selection) OR Abstract:optimized generation) OR Abstract:reduction) OR Abstract:minimization)) (((((Abstract:"Particle swarm optimization") OR Abstract: "PSO") OR Abstract: swarm) AND Date Results Subject: Computing & Processing (Hardware/Software) 08-07-11 318 Subject: Computing & Processing (Hardware/Software) 08-07-11 175 81 St-IEEE3 St-IEEE4 St-IEEE5 (((Abstract:"test case") OR Abstract:“test suite”) OR Abstract:“test data”)) AND ((((((Abstract:optimization) OR Abstract:prioritization) OR Abstract:selection) OR Abstract:optimized generation) OR Abstract:reduction) OR Abstract:minimization)) (((((Abstract:"ant colony optimization") OR Abstract:ACO) OR Abstract:"ant colony") AND (((Abstract:"test case") OR Abstract:“test suite”) OR Abstract:“test data”)) AND ((((((Abstract:optimization) OR Abstract:prioritization) OR Abstract:selection) OR Abstract:optimized generation) OR Abstract:reduction) OR Abstract:minimization)) ((((((Abstract:"Search Based") OR Abstract:SBST) OR Abstract:"metaheuristic") OR Abstract:heuristic) AND (((Abstract:"test case") OR Abstract:“test suite”) OR Abstract:“test data”)) AND ((((((Abstract:optimization) OR Abstract:prioritization) OR Abstract:selection) OR Abstract:optimized generation) OR Abstract:reduction) OR Abstract:minimization)) ((((Abstract:"Evolutionary Algorithm") OR Abstract:Evolution) AND (((Abstract:"test case") OR Abstract:“test suite”) OR Abstract:“test data”)) AND ((((((Abstract:optimization) OR Abstract:prioritization) OR Abstract:selection) OR Abstract:optimized generation) OR Abstract:reduction) OR Abstract:minimization)) Subject: Computing & Processing (Hardware/Software) 08-07-11 39 Subject: Computing & Processing (Hardware/Software) 08-07-11 149 Subject: Computing & Processing (Hardware/Software) 08-07-11 139 12-07-11 30 Search Engine: ACM StACM-1 ((Abstract:"Particle swarm optimization" OR Abstract: "PSO" OR Abstract: swarm) AND (Abstract: "test case" OR Abstract: "test suite" OR Abstract: "test data") AND (Abstract: The ACM Guide to Computing Literature 82 StACM-2 StACM-3 StACM-4 StACM-5 "prioritization" OR Abstract: "optimization"OR Abstract: "reduction" OR Abstract: "selection" OR Abstract: "minimization" OR Abstract: optimized generation)) ((Abstract:"Genetic" OR Abstract: "GA") AND (Abstract: "test case" OR Abstract: "test suite" OR Abstract: "test data") AND (Abstract: "prioritization" OR Abstract: "optimization" OR Abstract: "reduction" OR Abstract: "selection" OR Abstract: "minimization" OR Abstract: optimized generation)) ((Abstract:"ant colony optimization" OR Abstract: "ACO" OR Abstract: "ant colony") AND (Abstract: "test case" OR Abstract: "test suite" OR Abstract: "test data") AND (Abstract: "prioritization" OR Abstract: "optimization" OR Abstract: "reduction" OR Abstract: "selection" OR Abstract: "minimization" OR Abstract: optimized generation)) ((Abstract:"Search Based" OR Abstract: "SBST" OR Abstract: metaheuristic OR Abstract: heuristic) AND (Abstract: "test case" OR Abstract: "test suite" OR Abstract: "test data") AND (Abstract: "prioritization" OR Abstract: "optimization" OR Abstract: "reduction" OR Abstract: "selection" OR Abstract: "minimization" OR Abstract: optimized generation)) ((Abstract:"Evolution" OR Abstract: "Evolutionary Algorithm") AND (Abstract: "test case" OR Abstract: "test suite" OR Abstract: "test data") AND (Abstract: "prioritization" OR Abstract: "optimization" OR Abstract: "reduction" OR Abstract: "selection" OR Abstract: "minimization" OR Abstract: optimized generation)) The ACM Guide to Computing Literature 12-07-11 37 The ACM Guide to Computing Literature 14-07-11 2 The ACM Guide to Computing Literature 14-07-11 44 The ACM Guide to Computing Literature 14-07-11 18 Search Engine: Science Direct 83 St-SD-1 St-SD-2 St-SD-3 St-SD-4 St-SD-5 (TITLE-ABSTR-KEY(genetic) OR TITLE-ABSTR-KEY(GA)) and (TITLEABSTR-KEY("test case") OR TITLEABSTR-KEY("test suite") OR TITLEABSTR-KEY("test data")) and (TITLEABSTR-KEY(optimization) OR TITLEABSTR-KEY(prioritization)OR TITLEABSTR-KEY(reduction) OR TITLEABSTR-KEY(minimization) OR TITLEABSTR-KEY(selection) OR TITLEABSTR-KEY(optimized generation)) (TITLE-ABSTR-KEY(“Particle swarm optimization”) OR TITLE-ABSTRKEY(PSO) OR TITLE-ABSTRKEY(swarm)) and (TITLE-ABSTRKEY("test case") OR TITLE-ABSTRKEY("test suite") OR TITLE-ABSTRKEY("test data")) and (TITLE-ABSTRKEY(optimization) OR TITLE-ABSTRKEY(prioritization)OR TITLE-ABSTRKEY(reduction) OR TITLE-ABSTRKEY(minimization) OR TITLE-ABSTRKEY(selection) OR TITLE-ABSTRKEY(optimized generation)) (TITLE-ABSTR-KEY("ant colony optimization") OR TITLE-ABSTRKEY(ACO) OR TITLE-ABSTR-KEY("ant colony")) and (TITLE-ABSTRKEY("test case") OR TITLE-ABSTRKEY("test suite") OR TITLE-ABSTRKEY("test data")) and (TITLE-ABSTRKEY(optimization) OR TITLE-ABSTRKEY(prioritization)OR TITLE-ABSTRKEY(reduction) OR TITLE-ABSTRKEY(minimization) OR TITLE-ABSTRKEY(selection) OR TITLE-ABSTRKEY(optimized generation)) (TITLE-ABSTR-KEY("Search Based") OR TITLE-ABSTR-KEY(SBST) OR TITLEABSTR-KEY(metaheuristic) OR TITLEABSTR-KEY(heuristic)) and (TITLEABSTR-KEY("test case") OR TITLEABSTR-KEY("test suite") OR TITLEABSTR-KEY("test data")) and (TITLEABSTR-KEY(optimization) OR TITLEABSTR-KEY(prioritization)OR TITLEABSTR-KEY(reduction) OR TITLEABSTR-KEY(minimization) OR TITLEABSTR-KEY(selection) OR TITLEABSTR-KEY(optimized generation)) (TITLE-ABSTR-KEY("Evolutionary Algorithm") OR TITLE-ABSTR- All Sources(Computer Science) 14-07-11 43 All Sources(Computer Science) 25-07-11 18 All Sources(Computer Science) 25-07-11 3 All Sources(Computer Science) 25-07-11 45 All Sources(Computer Science) 25-07-11 35 84 KEY(Evolution)) and (TITLE-ABSTRKEY("test case") OR TITLE-ABSTRKEY("test suite") OR TITLE-ABSTRKEY("test data")) and (TITLE-ABSTRKEY(optimization) OR TITLE-ABSTRKEY(prioritization)OR TITLE-ABSTRKEY(reduction) OR TITLE-ABSTRKEY(minimization) OR TITLE-ABSTRKEY(selection) OR TITLE-ABSTRKEY(optimized generation)) Schedule of Activities Activity Starting Date Completion Date 4th March 2011 13th April 2011 15th April 2011 25th April 2011 26th April 2011 20th May 2011 Pilot Testing 21st May 2011 15th August 2011 Analysis 16th August 2011 15th September 2011 Documentation of Results 15th September 2011 25th October 2011 Comments Protocol development Version V1.1 Protocol Evaluation Protocol Documentation version 1.2 References 76. Mark Harman, Bryan F. Jones, “Search-Based Software Engineering”, Information and Software Technology, vol-43, pg. 833-839, 2001. 85 2. Zheng Li, Mark Harman, and Robert M. Hierons, “Search Algorithms for Regression Test Case Prioritization”, IEEE Transactions On Software Engineering, Vol. 33, No. 4, April 2007. 3. James A. Jones, Mary Jean Harrold, “Test-Suite Reduction and Prioritization for Modified Condition/Decision Coverage”, Software Engineering, IEEE Transactions, 2003. 4. Saif ur Rehman Khan, et al, “The Impact of Test Case Reduction and Prioritization on Software Testing Effectiveness”, International Conference on Emerging Technologies, IEEE, 2009. 5. Lu Zhang, et al, “Time-Aware Test-Case Prioritization using Integer Linear Programming”, ISSTA’09, Chicago, Illinois, USA, 2009. 6. Kristen R. Walcott, Gregory M. Kapfhammer, “Time Aware Test Suite Prioritization”, ISSTA’06, July 17–20, 2006. 7. M. Harman, A. Mansouri, and Y. Zhang, “Search based software engineering: A comprehensive analysis and review of trends techniques and applications”, Technical Report TR-09-03, Department of Computer Science, King's College London, April 2009. 8. Mark Harman, Afshin Mansouri, “Search Based Software Engineering: Introduction to the Special Issue of the IEEE Transactions on Software Engineering”, IEEE Transactions on Software Engineering, Vol. 36, No. 6, November/December 2010. 9. Alexander P. Conrad, Robert S. Roos, “Empirically Studying the Role of Selection Operators during Search-Based Test Suite Prioritization”, GECCO’10, July 7.11, 2010. 10. Camila Loiola Brito Maia, et al, “Automated Test Case Prioritization with Reactive GRASP”, Hindawi Publishing Corporatio, Advances in Software Engineering, Volume 2010. 11. Bo Jiang, et al, “Adaptive Random Test Case Prioritization”, 24th IEEE/ACM International Conference on Automated Software Engineering, 2009. 12. K. H.Saw Hla; Y. Choi; Jong Sou Park;, “Applying Particle Swarm Optimization to Prioritizing Test Cases for Embedded Real Time Software Retesting”, IEEE 8th International Conference on Computer and Information Technology Workshops, 2008. 13. S. Praveen Ranjan, Tai-hoon Kim, “Application of Genetic Algorithm in Software Testing”, International Journal of Software Engineering and Its Applications, Vol. 3, No.4, October 2009. 14. Camila Loiola Brito Maia, et al, “Applying Search-Based Techniques for Requirements-Based Test Case Prioritization”, Proceedings of the Brazilian Workshop on Optimization in Software Engineering (WOES '10), 2010. 15. Jerffeson Teixeira de Souza, et al, “The Human Competitiveness of Search Based Software Engineering”, 2nd International Symposium on Search Based Software Engineering, IEEE 2010. 16. Yu-Chi Huang, et al, “Design and Analysis of Cost-Cognizant Test Case Prioritization Using Genetic Algorithm with Test History”, IEEE 34th Annual Computer Software and Applications Conference, 2010. 17. Phil McMinn, “Search based software test data generation: A survey”, Software Testing, Verification and Reliability, 14(2), pp. 105-156, 2004. 86 18. S. Ali, L.C. Briand, H. Hemmati, and R.K. Panesar-Walawege, “A Systematic Review of the Application and Empirical Investigation of Search based test case generation”, IEEE Transactions on Software Engineering, vol 36, No. 6, 2010. 19. W. Afzal, R. Torkar, R. Feldt, “A systematic mapping study on non-functional search-based software testing”, 20th International Conference on Software Engineering and Knowledge Engineering (SEKE), 2008. 20. W. Afzal, R. Torkar, R. Feldt, “A systematic review of search based software testing for nonfunctional system properties”, Information and software technology, 2009. 21. B. Kitchenham, “Guidelines for performing Systematic Literature Reviews in Software Engineering”, Version 2.3, EBSE Technical Report EBSE-2007-01, Keele University and University of Durham, 2007. 22. M. Höst, P. Runeson, “Checklists for Software Engineering Case Study Research”, In Proceedings First International Symposium on Empirical Software Engineering and Measurement, pp 479–481, 2007. 87 Appendix B: General Extraction Reference No. 1 Title Test Case Prioritization Technique based on Genetic Algorithm Authors Wang Jun, Zhuang Yan, Jianyun Chen Published In 2011 International Conference on Internet Computing and Information Services IEEE Year 2011 Abstract With the rapid development of information technology, software testing, as a software quality assurance, is becoming more and more important. In the software life cycle, each time the code has changed need to be regression testing. The huge test case library makes running a full test case library being challenged. To this end, we designed a genetic algorithmbased test case prioritization algorithm and improved the genetic algorithm proposed software test case prioritization algorithm. Algorithms Optimization Approach Genetic Algorithm Improved Genetic Algorithm Prioritization Issues -- Type of research Experiment Any Comparison? Yes The improved algorithm based on baseline testing is more rapid. It can increase the finding rate of test sequence errors, and more quickly to identify the system’s reliability, reduce software testing costs. Fitness metrics Block coverage Factors effecting performance the Trapping in Local optima position Quality Instrument score 8 Reference No. 2 Title A history-based cost-cognizant test case prioritization technique in regression testing Authors Yu-Chi Huang, Kuan-Li Peng, Chin-Yu Huang Published In The Journal of Systems and Software 85 (2012) 626– 637 88 Year 2012 Abstract Software testing is typically used to verify whether the developed software product meets its requirements. From the result of software testing, developers can make an assessment about the quality or the acceptability of developed software. It is noted that during testing, the test case is a pair of input and expected output, and a number of test cases will be executed either sequentially or randomly. The techniques of test case prioritization usually schedule test cases for regression testing in an order that attempts to increase the effectiveness. However, the cost of test cases and the severity of faults are usually varied. In this paper, we propose a method of cost-cognizant test case prioritization based on the use of historical records. We gather the historical records from the latest regression testing and then propose a genetic algorithm to determine the most effective order. Some controlled experiments are performed to evaluate the effectiveness of our proposed method. Evaluation results indicate that our proposed method has improved the fault detection effectiveness. It can also been found that prioritizing test cases based on their historical information can provide high test effectiveness during testing. Algorithms • Optimal prioritization (optimal) • Random prioritization • Historical fault detection effectiveness prioritization (histfault-detected) • Time-aware test suite prioritization (GA-fun) • GA-hist • Total function coverage prioritization (total-fun) • Cost-cognizant total function coverage prioritization (cctotal-fun) Prioritization Optimization Approach Issues The cost of test cases and the severity of faults are usually varied. In this paper, we propose a method of cost-cognizant test case prioritization based on the use of historical records Type of research Experiment Any Comparison? Yes Fitness metrics Average percentage of faults detected per cost (APFDc) Factors effecting performance the Results have shown that on average, the proposed technique can significantly improve the effectiveness in comparison with three coverage-based techniques and two other history-based techniques. It also performed well when test case costs and fault severities were equal. In contrast to the other GA-produced prioritization technique used in the experiment, the proposed technique provided higher efficiency because the number of faults was far fewer than the number of functions. According to the experimental results, we verify that the proposed technique is useful. We also confirm that prioritizing test cases based on their historical information can provide high effectiveness. Test case costs(time) and faults severities vary 89 GA stuck in local optima Impact of generations and population size Quality Instrument score 13 Reference No. 3 Title Automated Test Case Prioritization with Reactive GRASP Authors Camila Loiola Brito Maia, Rafael Augusto Ferreira do Carmo, Fabr´ıcio Gomes de Freitas, Gustavo Augusto Lima de Campos, and Jerffeson Teixeira de Souza Published In Hindawi Publishing Corporation Advances in Software Engineering Volume 2010, Article ID 428521, 18 pages Year 2010 Abstract Modifications in software can affect some functionality that had been working until that point. In order to detect such a problem, the ideal solution would be testing the whole system once again, but there may be insufficient time or resources for this approach. An alternative solution is to order the test cases so that the most beneficial tests are executed first, in such a way only a subset of the test cases can be executed with little lost of effectiveness. Such a technique is known as regression test case prioritization. In this paper, we propose the use of the Reactive GRASP metaheuristic to prioritize test cases. We also compare this metaheuristic with other search-based algorithms previously described in literature. Five programs were used in the experiments. The experimental results demonstrated good coverage performance with sometime overhead for the proposed technique. It also demonstrated a high stability of the results generated by the proposed approach. Algorithms Greedy algorithm Additional Greedy algorithm Genetic algorithm Simulated annealing Reactive GRASP Prioritization Optimization Approach Issues In this paper, we propose the use of the Reactive GRASP metaheuristic to prioritize test cases. We also compare this metaheuristic with other search-based algorithms previously described in literature. Type of research Experiment Any Comparison? Yes The Greedy algorithm performed the worst The Reactive GRASP algorithm had the second best performance. Additional Greedy algorithm had the best performance in effectiveness of all tests. 90 Genetic algorithm approach performed the fourth best in our evaluation. Simulated Annealing is the 3rd best Reactive GRASP had the minor difference in performance between the best and the worst coverage criterion, which demonstrates an interesting characteristic of this algorithm: its stability. APBC, APDC, and APSBC Fitness metrics Factors effecting performance the -- Quality Instrument score 11 Reference No. 4 Title Analyzing Test Case Selection & Prioritization using ACO Authors Bharti Suri, Shweta Singhal Published In ACM SIGSOFT Software Engineering Notes, November 2011 Volume 36 Number 6 Year 2011 Abstract Regression testing is primarily a maintenance activity that is performed frequently to ensure the validity of the modified software. In such cases, due to time and cost constraints, the entire test suite cannot be run. Thus, it becomes essential to select or prioritize the tests in order to cover maximum faults in minimum time. Recently, Ant Colony Optimization (ACO), which is a new way to solve time constraint prioritization problem, has been utilized. This paper presents the analysis of the regression test prioritization technique to reorder test suites in time constraint environment along with the sample runs on various programs. Our analysis concluded that the ACO finds better orderings at higher values of the time constraint (TC). The correctness of the technique has also been recorded to be near optimal at an average. Algorithms Ant Colony Optimization (ACO) Optimization Approach Selection Prioritization Issues Time and cost analysis for TCP by ACO Type of research Experiment Any Comparison? No It can now be summarized that higher the value of the TC, more is the number of iterations and hence, more correct is the final outcome. ACO is a strong & robust heuristic approach involving positive feedback and parallel computations and hence, leads to 91 the best or near best solutions in optimum time. Fitness metrics Optimal path found Factors effecting performance the Number of iterations Time Constraint(TC) value Quality Instrument score 9 Reference No. 5 Title Applying Particle Swarm Optimization to Prioritizing Test Cases for Embedded Real Time Software Retesting Authors Khin Haymar Saw Hla, YoungSik Choi, Jong Sou Park Published In IEEE 8th International Conference on Computer and Information Technology Workshops Year 2008 Abstract In recent years, complex embedded systems are used in every device that is infiltrating our daily lives. Since most of the embedded systems are multi-tasking real time systems, the task interleaving issues, deadlines and other factors needs software units retesting to follow the subsequence changes. Regression testing is used for the software maintenance that revalidates the old functionality of the software unit. Testing is one of the most complex and time-consuming activities, in which running of all combination of test cases in test suite may require a large amount of efforts. Test case prioritization techniques can take advantage that orders test cases, which attempts to increase effectiveness in regression testing. This paper proposes to use particle swarm optimization (PSO) algorithm to prioritize the test cases automatically based on the modified software units. Regarding to the recent investigations, PSO is a multi-object optimization technique that can find out the best positions of the objects. The goal is to prioritize the test cases to the new best order, based on modified software components, so that test cases, which have new higher priority, can be selected in the regression testing process. The empirical results show that by using the PSO algorithm, the test cases can be prioritized in the test suites with their new best positions effectively and efficiently. Algorithms Particle Swarm Optimization Greedy random Prioritization Optimization Approach Issues The goal is to prioritize the test cases to the new best order, based on modified software components, so that test cases, which have new higher 92 priority, can be selected in the regression testing process. Type of research Experiment Any Comparison? Yes By using the PSO algorithm, the test cases can be prioritized in the test suites with their new best positions effectively and efficiently. PSO is better in coverage criteria and time execution Fitness metrics Nil –100 iterations to stop Factors effecting performance the --- Quality Instrument score 9 Reference No. 6 Title Building Prioritized Pairwise Interaction Test Suites with Ant Colony Optimization Authors Xiang Chen, Qing Gu, Xin Zhang, Daoxu Chen Published In Ninth International Conference on Quality Software Year 2009 Abstract Interaction testing offers a stable cost-benefit ratio in identifying faults. But in many testing scenarios, the entire test suite cannot be fully executed due to limited time or cost. In these situations, it is essential to take the importance of interactions into account and prioritize these tests. To tackle this issue, the biased covering array is proposed and the Weighted Density Algorithm (WDA) is developed. To find a better solution, in this paper we adopt ant colony optimization (ACO) to build this prioritized pairwise interaction test suite (PITS). In our research, we propose four concrete test generation algorithms based on Ant System, Ant System with Elitist, Ant Colony System and Max-Min Ant System respectively. We also implement these algorithms and apply them to two typical inputs and report experimental results. The results show the effectiveness of these algorithms. Algorithms Ant colony optimization Ant System (AS), Ant System with Elitist (ASelite), Ant Colony System (ACS) and Max-Min Ant System(MMAS) Prioritization Generation (1) The importance of interactions is taken into account and these tests are prioritized. (2) The strength of different factors may not be fixed, but a variable. (3) In many situations, there are constraints between specific Optimization Approach Issues 93 factors that render certain interactions invalid. Type of research Experiment Any Comparison? Yes Fitness metrics -- Factors effecting performance the Randomness inherent in this algorithm. ACS and MMAS generally produce the fastest rate of coverage of first 10 tests, AS has the slowest rate of coverage, and ASelite is between these strategies. The generation time is longer than WDA, and the generation time of ASelite is longest while the generation time of AS is shortest, MMAS and ACS is between these two. -- Quality Instrument score 11 Reference No. 7 Title Design and Analysis of Cost-Cognizant Test Case Prioritization Using Genetic Algorithm with Test History Authors Yu-Chi Huang, Chin-Yu Huang, Jun-Ru Chang and Tsan-Yuan Chen Published In IEEE 34th Annual Computer Software and Applications Conference Year 2010 Abstract During software development, regression testing is usually used to assure the quality of modified software. The techniques of test case prioritization schedule the test cases for regression testing in an order that attempts to increase the effectiveness in accordance with some performance goal. The most general goal is the rate of fault detection. It assumes all test case costs and fault severities are uniform. However, those factors usually vary. In order to produce a more satisfactory order, the cost-cognizant metric that incorporates varying test case costs and fault severities is proposed. In this paper, we propose a cost-cognizant test case prioritization technique based on the use of historical records and a genetic algorithm. We run a controlled experiment to evaluate the proposed technique’s effectiveness. Experimental results indicate that our proposed technique frequently yields a higher Average Percentage of Faults Detected per Cost (APFDc). The results also show that our proposed technique is also useful in terms of APFDc when all test case costs and fault severities are uniform. Algorithms GA-hist, hist-value hist-fault-detected (historical fault detection effectiveness prioritization) cc-total-fun (cost-cognizant total function coverage prioritization), total-fun (total function coverage prioritization) GA-fun 94 Optimization Approach Prioritization Issues Which techniques frequently yields a higher Average Percentage of Faults Detected per Cost (APFDc). The proposed technique is to search for an order of the existing test suite which has the greatest effectiveness in terms of cost-cognizant test case prioritization in the preceding regression testing. Type of research Experiment Any Comparison? Yes Condition 1: When variety of test case costs and fault severities. GA-hist has a greater mean APFDc value than the other techniques. Comparing GA-hist with random, GA-hist is a significant improvement on mean APFDc. GA-hist also performs well in comparison to history-based prioritization techniques such as hist-fault-detect and hist-value. In contrast with coverage-based prioritization techniques such as GA-fun, totalfun, and cc-total-fun, on average, GA-hist improves 2% to 4%, but is a significant improvement in comparison to total-fun. Condition 2: the cost and total detected fault severity of the test cases are uniform. GA-hist also provides higher effectiveness than the other techniques. The proposed technique prioritizes test cases according to their various test costs and fault severities without analyzing the source code. Fitness metrics APFDc Quality Instrument score 13 Reference No. 8 Title Test Case Filtering and Prioritization Based on Coverage of Combinations of Program Elements Authors Wes Masri, Marwa El-Ghali Factors effecting performance Published the Number of generations Population size Fault severities Cost of test cases vary In WODA ’09, July 20, 2009, Chicago, Illinois, USA. ACM Year 2009 95 Abstract Test case filtering is concerned with selecting from a test suite T a subset T’ that is capable of revealing most of the defects revealed by T. A smaller T’ is desirable since it translates to fewer test runs to be audited manually. Test case prioritization, a related technique, aims at scheduling the tests in T so that the defects are revealed as early as possible when T gets executed. We propose techniques that are based on coverage of combinations of program elements of different types. Clearly, exploring all possible combinations induced at runtime is infeasible, which calls for the use of an approximation algorithm. In this paper we investigate the use of a genetic algorithm to select a number of suitable combinations of program elements to be covered. We compared our technique to other coverage based techniques that consider program elements of the same type and that do not take into account their combinations; our preliminary results were promising. For example, after filtering the original test suite T for JTidy, the resulting T’ revealed all the defects in T and was only 14.1% its size. Algorithms Genetic Algorithm Greedy Algorithm Selection Prioritization Existing coverage-based test case filtering and prioritization techniques seek to cover program elements of varying granularity, e.g., methods, statements, branches, def-use pairs, slice pairs and information flow pairs. Combinations of these program elements are more likely to characterize complex failures, i.e., failures induced by defects involving multiple program interactions. Optimization Approach Issues Type of research Experiment Any Comparison? No Fitness metrics Coverage of faults Factors effecting performance the -- Quality Instrument score 10 Reference No. 9 Title Empirically Studying the Role of Selection Operators During Search-Based Test Suite Prioritization Authors Alexander P. Conrad, Robert S. Roos Published Abstract In GECCO’10, July 7.11, 2010, Portland, Oregon, USA. ACM Year 2010 Regression test suite prioritization techniques reorder test cases so that, 96 on average, more faults will be revealed earlier in the test suite's execution than would otherwise be possible. This paper presents a genetic algorithm-based test prioritization method that employs a wide variety of mutation, crossover, selection, and transformation operators to reorder a test suite. Leveraging statistical analysis techniques, such as tree model construction through binary recursive partitioning and kernel density estimation, the paper's empirical results highlight the unique role that the selection operators play in identifying an effective ordering of a test suite. The study also reveals that, while truncation selection consistently outperformed the tournament and roulette operators in terms of test suite effectiveness, increasing selection pressure consistently produces the best results within each class of operator. After further explicating the relationship between selection intensity, termination condition, fitness landscape, and the quality of the resulting test suite, this paper demonstrates that the genetic algorithm-based prioritizer is superior to random search and hill climbing and thus suitable for many regression testing environments. Algorithms Random Search Genetic Algorithm Greedy Algorithm Hill Climbing Prioritization Optimization Approach Issues To highlight the unique role that the selection operators (mutation, crossover, and selection operators) in identifying an effective ordering of a test suite. Type of research Experiment Any Comparison? Yes GA has three additional advantages over greedy algorithm 1. Parallelization 2. Can be interrupted during execution 3. Can construct diverse test orderings that achieve equivalent coverage effectiveness scores GA produce greater amount of variable and effective test orderings than greedy and hill climbing in given execution time. High selection intensity is important for producing good test orderings. Coverage Effectiveness Fitness metrics Factors effecting performance the Execution time Number of generations Selection operator values of GA Quality Instrument score 13.5 Reference No. 10 97 Title Using Synthetic Test Suites to Empirically Compare Search-Based and Greedy Prioritizers Authors Zachary D. Williams, Gregory M. Kapfhammer Published In GECCO'10, July 7.11, 2010, Portland, Oregon, USA. ACM Year 2010 Abstract The increase in the complexity of modern software has led to the commensurate growth in the size and execution time of the test suites for these programs. In order to address this alarming trend, developers use test suite prioritization to reorder the test cases so that faults can be detected at an early stage of testing. Yet, the implementation and evaluation of greedy and search-based test prioritizers requires access to case study applications and their associated test suites, which are often difficult to find, configure, and use in an empirical study. This paper presents two types of synthetically generated test suites that support this process of experimentally evaluating prioritization methods. Using synthetic test suites affords greater control over test case characteristics and supports the identification of empirical trends that contradict the established wisdom about search-based and greedy prioritization. For instance, we find that the hill climbing algorithm often exhibits a lower time overhead than the greedy test suite prioritizer while often producing test orderings with comparable effectiveness scores. Algorithms Optimization Approach Greedy Hill-climbing Prioritization Issues Emperically compare serach-based and greedy algorithm Type of research Experiment Any Comparison? Yes Fitness metrics Cost and coverage effectiveness Factors effecting performance the greedy algorithms are faster than search-based methods by showing that HC's arithmetic means for prioritization time are lower than those of GRD. searched-based methods may lack uniformity in their execution times and construct prioritizations with modest effectiveness ratings Quality Instrument score 6 Reference No. 11 Title Time-Aware Test-Case Prioritization using Integer Linear Programming Authors Lu Zhang, Shan-Shan Hou, Chao Guo, Tao Xie, Hong Mei 98 Published In ISSTA’09, July 19–23, 2009, Chicago, Illinois, USA. Year 2009 Abstract Techniques for test-case prioritization re-order test cases to increase their rate of fault detection. When there is a fixed time budget that does not allow the execution of all the test cases, time-aware techniques for testcase prioritization may achieve a better rate of fault detection than traditional techniques for test-case prioritization. In this paper, we propose a novel approach to time-aware test-case prioritization using integer linear programming. To evaluate our approach, we performed experiments on two subject programs involving four techniques for our approach, two techniques for an approach to time-aware test-case prioritization based on genetic algorithms, and four traditional techniques for test-case prioritization. The empirical results indicate that two of our techniques outperform all the other techniques for the two subjects under the scenarios of both general and version-specific prioritization. The empirical results also indicate that some traditional techniques with lower analysis time cost for test-case prioritization may still perform competitively when the time budget is not quite tight. Algorithms Optimization Approach random prioritization traditional total statement coverage prioritization traditional additional statement coverage prioritization traditional total method coverage prioritization traditional additional method coverage prioritization time-aware statement coverage prioritization via GA time-aware method coverage prioritization via GA time-aware total statement coverage prioritization via ILP time-aware additional statement coverage prioritization via ILP time-aware total method coverage prioritization via ILP time-aware additional method coverage prioritization via ILP Prioritization Issues Mostly techniques does not consider time budget Type of research Experiment Any Comparison? Yes -uFitness metrics APFD Factors effecting performance the Quality Instrument score GA techniques are less effective then proposed ILP techniques in terms of time budget Fault detection rate of ILP is much better than GA and traditional prioritization techniques ILP requires less analysis time than GA but greater traditional techniques --- 8.5 99 Reference No. 12 Title Time-Aware Test Suite Prioritization Authors Kristen R. Walcott, Mary Lou Soffa, Gregory M. Kapfhammer, Robert S. Roos Published In ISSTA’06, July 17–20, 2006, Portland, Maine, USA. ACM Year 2006 Abstract Regression test prioritization is often performed in a time constrained execution environment in which testing only occurs for a fixed time period. For example, many organizations rely upon nightly building and regression testing of their applications every time source code changes are committed to a version control repository. This paper presents a regression test prioritization technique that uses a genetic algorithm to reorder test suites in light of testing time constraints. Experiment results indicate that our prioritization approach frequently yields higher average percentage of faults detected (APFD) values, for two case study applications, when basic block level coverage is used instead of method level coverage. The experiments also reveal fundamental trade-offs in the performance of time-aware prioritization. This paper shows that our prioritization technique is appropriate for many regression testing environments and explains how the baseline approach can be extended to operate in additional time constrained testing circumstances. Algorithms Random Genetic Algorithm Optimization Approach Prioritization Issues This paper shows that if the maximum time allotted for execution of the test cases is known in advance, a more effective prioritization can be produced. Type of research Experiment Any Comparison? Yes Fitness metrics APFD Factors effecting performance the GA prioritization perform better then random prioritization Time budget Quality Instrument score 10.5 Reference No. 13 Title Automated Test Case Generation and Its Optimization for Path Testing 100 Using Genetic Algorithm and Sampling Authors Published Debasis Mohapatra, Prachet Bhuyan, Durga P. Mohapatra In 2009 WASE International Conference on Information Engineering Year 2009 Abstract Software testing is an important activity of the software development process, and automated test case generation contributes to reduce cost and time efforts. In this paper, we have used genetic algorithm to optimize the test cases that are generated using the category-partition and test harness patterns. In order to investigate the effectiveness of the approach, a graph is derived using category-partition and genetic algorithm is used to optimize the test cases to cover the entire possible path. The optimal test suites are devised by the method of sampling statistics. Algorithms Genetic Algorithm Optimization Approach Generation Issues We have used genetic algorithm to optimize the test cases that are generated using the category-partition and test harness patterns. In order to investigate the effectiveness of the approach, a graph is derived using category-partition and genetic algorithm is used to optimize the test cases to cover the entire possible path. Type of research Experiment Any Comparison? No Fitness metrics Path coverage Factors effecting performance the -- -- Quality Instrument score 4.5 Reference No. 14 Title Automated Generation of Test Cases from Output Domain of an Embedded System using Genetic Algorithms Authors Chandra Prakash Vudatha, Dr. Sastry KR Jammalamadaka, Sateesh Nalliboena, Bala Krishna Kamesh Duvvuri Published Abstract In 3rd International Conference on Electronics Computer Technology (ICECT) Year 2011 A primary issue in black-box testing is how to generate adequate test cases from input domain of the system under test on the basis of user’s requirement specification. However, for some types of systems including 101 embedded systems, developing test cases from output domain is more suitable than developing from input domain, especially, when the output domain is smaller. This approach ensures better reliability of the system under test. In this paper, the authors present a new approach to automate the generation of test cases from output domain of a pilot project ‘Temperature Monitoring and Controlling of Nuclear Reactor System” (TMCNRS) which is an embedded system developed using modified Cleanroom Software Engineering methodology. An Automated Test Case Generator (ATCG) that uses Genetic algorithms (GAs) extensively and generates test cases from output domain is proposed. The ATCG generates test cases which are useful to conduct pseudo- exhaustive testing to detect single, double and several multimode faults in the system. The generator considers most of the combinations of outputs, and finds the corresponding inputs while optimizing the number of test cases generated. In order to investigate the effectiveness of this approach, test cases were generated by ATCG and the tests were conducted on the target embedded system at a minimum cost and time. Experimental results show that this approach is very promising. Algorithms Genetic Algorithm Optimization Approach Generation Issues The authors present a new approach to automate the generation of test cases from output domain of a pilot project ‘Temperature Monitoring and Controlling of Nuclear Reactor System” (TMCNRS) which is an embedded system developed using modified Cleanroom Software Engineering methodology. Type of research Experiment Any Comparison? No Fitness metrics Requirement coverage Factors effecting performance the -- Quality Instrument score 6.5 Reference No. 15 Title Java based Test case Generation and Optimization Using Evolutionary Testing Authors C.S.Siva Dharsana, Ms.A.Askarunisha, D.Nithila Jennifer, Dr.N.Ramaraj 102 Publish ed In International Conference on Computational Intelligence and Multimedia Applications Year 2007 Abstract Testing is an iterative process of both validating functionality and even more important attempting to break the software Test case is used for testing which is a set of test data and test programs (test scripts) and their expected results. This paper details on the tool TCGOJ, Test Case Generation and Optimization for Java Programs, that generates test cases for any Java programs and produces an optimized result of test cases. Genetic Algorithm is used to create and optimize chromosomes which describe the test cases. Mutation and crossover are done for gaining maximum coverage. Algorithms Genetic Algorithm Optimization Approach Generation Issues -- Type of research Experiment Any Comparison? No Fitness metrics Path coverage Factors effecting performance the -- Quality Instrument score 5 Reference No. 16 Title A Multi-Objective Particle Swarm Optimization for Test Case Selection Based on Functional Requirements Coverage and Execution Effort Authors Luciano S. de Souza, Pericles B. C. de Miranda, Ricardo B. C. Prudencio, Flavia de A. Barros Published Abstract In 2011 23rd IEEE International Conference on Tools with Artificial Intelligence Year 2011 Although software testing is a central task in the software lifecycle, it is sometimes neglected due to its high costs. Tools to automate the testing process minor its costs, however they generate large test suites with redundant Test Cases (TC). Automatic TC Selection aims to reduce a test suite based on some selection criterion. This process can be treated as an optimization problem, aiming to find a subset of TCs which optimizes one or more objective functions (i.e., selection criteria). The majority of search- 103 based works focus on single-objective selection. In this light, we developed a mechanism for functional TC selection which considers two objectives simultaneously: maximize requirements’ coverage while minimizing cost in terms of TC execution effort. This mechanism was implemented as a multiobjective optimization process based on Particle Swarm Optimization (PSO). We implemented two multi-objective versions of PSO (BMOPSO and BMOPSO-CDR). The experiments were performed on two real test suites, revealing very satisfactory results (attesting the feasibility of the proposed approach). We highlight that execution effort is an important aspect in the testing process, and it has not been used in a multi-objective way together with requirements coverage for functional TC selection. Algorithms BMOPSO BMOPSO-CDR Optimization Approach Selection Issues Search based techniques widely focus on single-objective optimization and rarely focus on cost of test cases execution Type of research Experiment Any Comparison? Yes Fitness metrics Maximum Requirement coverage BMOPSO-CDR outperform BMOPSO as it covered a wider region of the search space Minimum test case running cost Factors effecting performance the -- Quality Instrument score 11.5 Reference No. 17 Title An Enhanced Test Case Selection Approach for Model-Based Testing: An Industrial Case Study. Authors Hadi Hemmati, Lionel Briand, Andrea Arcuri, Shaukat Ali Published Abstract In 18th ACM International Symposium on Foundations of Software Engineering (FSE) Year 2010 In recent years, Model-Based Testing (MBT) has attracted an increasingly wide interest from industry and academia. MBT allows automatic generation of a large and comprehensive set of test cases from system models (e.g., state machines), which leads to the systematic testing of the system. However, even when using simple test strategies, applying MBT in 104 large industrial systems often leads to generating large sets of test cases that cannot possibly be executed within time and cost constraints. In this situation, test case selection techniques are employed to select a subset from the entire test suite such that the selected subset conforms to available resources while maximizing fault detection. In this paper, we propose a new similarity-based selection technique for state machinebased test case selection, which includes a new similarity function using triggers and guards on transitions of state machines and a Genetic algorithm-based selection algorithm. Applying this technique on an industrial case study, we show that our proposed approach is more effective in detecting real faults than existing alternatives. We also assess the overall benefits of model-based test case selection in our case study by comparing the fault detection rate of the selected subset with the maximum possible fault detection rate of the original test suite. Algorithms Optimization Approach Greedy Genetic Selection Issues -- Type of research Case Study Any Comparison? Yes Fitness metrics Execution time Factors effecting performance the GA is better Parameter tuning of GA can produce better results Quality Instrument score 10 Reference No. 18 Title An Industrial Investigation of Similarity Measures for Model-Based Test Case Selection Authors Hadi Hemmati and Lionel Briand Published Abstract In IEEE 21st International Symposium on Software Reliability Engineering Year 2010 Applying model-based testing (MBT) in practice requires practical solutions for scaling up to large industrial systems. One challenge that we have faced while applying MBT was the generation of test suites that were too large to be practical, even for simple coverage criteria. The goal of test case selection techniques is to select a subset of the generated test suite that satisfies resource constraints while yielding a maximum fault detection rate. One interesting heuristic is to choose the most diverse test cases based on a pre-defined similarity measure. In this paper, we 105 investigate and compare possible similarity functions to support similaritybased test selection in the context of state machine testing, which is the most common form of MBT. We apply the proposed similarity measures and a selection strategy based on genetic algorithms to an industrial software system. We compare their fault detection rate based on actual faults. The results show that applying Jaccard Index on test cases represented as a set of trigger-guards is the most cost-effective similarity measure. We also discuss the overall benefits of our test selection approach in terms of test execution savings. random selection (Rnd), coverage-based Greedy selection (CovGr), coverage-based GA selection (CovGA), the state of the art in STCS (TransGr). Selection Algorithms Optimization Approach Issues One challenge that we have faced while applying MBT was the generation of test suites that were too large to be practical, even for simple coverage criteria. Type of research Experiment Any Comparison? Yes Fitness metrics Average fault detection rate (AFDR) Factors effecting performance the GA with jac index perform best GA can perform best in coverage when longer stopping time (1 sec instead of 175ms) Quality Instrument score 11.5 Reference No. 19 Title The Research of Test-Suite Reduction Technique Authors Cui Donghua, Yin Wenjie Published Abstract In IEEE Year 2011 Ant colony algorithm is a bionic optimization algorithm, it can solve combinatorial problems effectively. For the problem of the test suite reduction, this algorithm could find the balance point between the speed and the accuracy of solution. Unlike other existing algorithms, this algorithm used test cost criteria, as well as the test coverage criteria. Finally, the paper presented the results, the results is given by the others classical algorithms compared with this algorithms. The results show that this algorithm can significantly reduce the size and the cost of the testsuite, and achieved higher effectiveness of test-suite minimization. 106 Algorithms Ant colony algorithm Greedy algorithm, Heuristic algorithm, GRE algorithm Reduction Optimization Approach Issues This article will research how to generate the lowest cost of test suite and can meet all needs. Type of research Experiment Any Comparison? Ant colony algorithm can get optimal solution. Fitness metrics Requirement coverage Factors effecting performance the -- Quality Instrument score 8 Reference No. 20 Title A Novel Chaos Discrete Particle Swarm Optimization Algorithm for Test Suite Reduction Authors Jia-ze Sun, Shu-yan Wang Published In IEEE Year 2010 Abstract Aiming at providing the more measure of coverage with the least number of test cases for software regression testing, this paper presents a novel chaos discrete particle swarm optimization algorithm(CDPSO) for test suite reduction, which combines discrete particle swarm optimization (DPSO) with a chaos searching strategy. In the algorithm, particle swarm is initialized by chaotic series, and the position of the particle is produced by stochastic algorithm. Moreover, it introduces chaos to DPSO, making every particle select a suitable search direction from PSO search mechanism and chaos search mechanism, to avoid PSO getting into local best and appearing premature convergence. Finally, the classic example is used to illustrate the performance of the proposed algorithm. The experimental results indicate that the CDPSO algorithm can achieve higher performance, faster speed than PSO, GE, H and GRE, and has nothing to do with the initial value. Algorithms chaos discrete particle swarm optimization algorithm(CDPSO) discrete particle swarm optimization (DPSO) GE H GRE Reduction Optimization Approach 107 Issues A novel chaotic discrete particle swarm optimization algorithm (CDPSO) is proposed, which can avoid slow search speed and premature convergence. Type of research Experiment Any Comparison? Yes The convergence speed of CDPSO is faster as attain full coverage and the lowest redundancy, so it is stable and best. GE, H, GRE algorithms; in different initial conditions may produce different results. Whereas DPSO has nothing to do with initial values, so it is stable. Requirement Coverage Fitness metrics Factors effecting performance the Initial set Quality Instrument score 11 Reference No. 21 Title A Technique to Reduce the Test Case Suites for Regression Testing Based on a Self-Organizing Neural Network Architecture Authors Adenilso da Silva Simao, Rodrigo Fernandes de Mello, Luciano Jose Senger Published In Proceedings of the 30th Annual International Computer Software and Applications Conference (COMPSAC'06) Year 2006 Abstract This paper presents a technique to select subsets of the test cases, reducing the time consumed during the evaluation of a new software version and maintaining the ability to detect defects introduced. Our technique is based on a model to classify test case suites by using an ART2. Self-organizing neural network architecture. Each test case is summarized in a feature vector, which contains all the relevant information about the software behavior. The neural network classifies feature vectors into clusters, which are labeled according to software behavior. The source code of a new software version is analyzed to determine the most adequate clusters from which the test case subset will be selected. Experiments compared feature vectors obtained from all-uses code coverage information to a random selection approach. Results confirm the new technique has improved the precision and recall metrics adopted. Algorithms ART (Adaptive Resonance Theory) neural network with Clustering Random Algorithm Reduction Optimization Approach Issues The mean precision of the new model is higher than random, what implies in more quality to select test cases. Type of research Experiment 108 Any Comparison? Yes Fitness metrics all-uses coverage Factors effecting performance the Proposed method is better than random -- Quality Instrument score 8.5 Reference No. 22 Title Test Case Reduction Based on Program Invariant and Genetic Algorithm Authors Nenggang Pan, FanPing Zeng, Yu-Han Huang Published In IEEE Year 2010 Abstract Test case reduction is the focus of the field of software testing. In this paper, we integrate random testing methods, invariant technology and genetic algorithms for test case reduction. Program invariant here refers to the properties at some points of program, it can reveal the extent of program data coverage and other valuable information. We evaluate the parent program invariants to filter corresponding set of test cases, and keep the better ones on the offspring. Generation by generation, we can get the final reduced set of test cases. This method is easy to automate. Experimental results and analysis show that compared to similar methods, at the same coverage conditions, the method proposed in this paper have higher efficiency and can get better set of test cases. Algorithms Optimization Approach Random Genetic Reduction Issues Random test has some drawbacks Type of research Experiment Any Comparison? Yes Fitness metrics Branch coverage Factors effecting performance the Proposed optimization is more affective and efficient -- Quality Instrument score 8.5 Reference No. 23 109 Title An Evolutionary Algorithm for Regression Test Suite Reduction Authors S.Nachiyappan, A.Vimaladevi, C.B.SelvaLakshmi Published In Proceedings of the International Conference on Communication and Computational Intelligence – 2010 Year 2010 Abstract As the software is modified and new test cases are added to the test-suite, the size of the test-suite grows and the cost of regression testing increases. In order to decrease the cost of regression testing, researchers have focused on the use of test-suite reduction techniques, which identify a subset of test cases that provides the same coverage of the software, according to some criterion, as the original test-suite. This paper investigates the use of an evolutionary approach, called genetic algorithms, for test-suite reduction. The proposed model builds the initial population based on test history, calculates the fitness value using coverage and run time of test case, and then selectively breeds the successive generations using genetic operations and allows only the fit tests to the reduced suite. This generational process is repeated until an optimized test-suite is found. Algorithms Genetic Algorithm Optimization Approach Reduction Issues A mathematical model to reduce the cost of regression testing by minimizing the size of the test-suite using an evolutionary algorithm called Genetic Algorithm. Generally a limited time is allotted for testing. Type of research Experiment Any Comparison? No Fitness metrics Time and block coverage Factors effecting performance the Quality Instrument score -- 6.5 Reference No. 24 Title Automated software test optimization framework – an artificial bee colony optimization-based approach Authors D. Jeya Mala, V. Mohan, M. Kamalapriya Published In IET Softw., 2010, Vol. 4, Iss. 5, pp. 334–348 Year 2010 110 Abstract Software test suite optimization is one of the most important problems in software engineering research. To achieve this optimization, a novel approach based on artificial bee colony (ABC) optimization is proposed here. The work applied in this approach is motivated by the intelligent behavior of honey bees. Since the ABC system combines local search methods carried out by employed and onlooker bees with global search methods managed by scouts, the approach attains global or near-global optima. Here, the parallel behavior of the three bees is used to reach the solution generation faster. The performance of the proposed approach is investigated based on coveragebased test adequacy criteria by comparing it with sequential ABC, random testing and genetic algorithm-based approaches. Based on the experimental results, it has been proved that the proposed parallel ABC approach outperforms the other approaches in test suite optimization. Algorithms Sequential ABC Parallel ABC Random testing Genetic Algorithm Generation Optimization Approach Issues The objective of the proposed approach is to generate an efficient test suite that can cover the SUT with less time and cost by applying intelligent search through the SUT using the parallel behavior of a group of three bees. Type of research Experiment Any Comparison? Yes Fitness metrics Factors effecting the performance Parallel ABC is higher when compared to the other three approaches In some cases, random testing performs better than GA. In some other cases, GA performs better than sequential ABC and random testing. The number of test cases needed to test the SUT with 100% coverage is very less in parallel ABC. In case of GA, for some problems, even after the number of generations is increased, the path coverage% reaches only 50% due to strike up at local optimal solution. Even after increasing the number of runs/generations, random testing and GA-based approaches achieved only 87.5 and 57.14% of coverage, respectively. In Parallel ABC: efficiency of the test cases in terms of their path coverage measure is steadily improving Whereas in GA, the test cases improvement is non-linear and usually strikes up at local optima. Parallel ABC-based approach takes less number of cycles to achieve optimal or near-optimal solutions due to the parallel behavior of the three agents. Parallel ABC takes least time in finishing the optimization task, where as GA takes even more time than random due to nonmemorization of best individual in each iteration Path Coverage Parallel working and sequential working in local and global optimization. GA strikes up at local optima. GA has non-memorization of best individuals in 111 each iteration. Quality score Instrument 13 Reference No. 25 Title Evolutionary Testing of Object-Oriented Software Authors Lucas Serpa Silva, Maarten van Someren Published In SAC’10, March 22-26, 2010, Sierre, Switzerland Year 2010 Abstract It is estimated that 80% of software development cost is spent on detecting and fixing defects. To tackle this issue, a number of tools and testing techniques have been developed to improve the existing testing framework. Although techniques such as static analysis, random testing and evolutionary testing have been used to automate the testing process, it is not clear what is the best approach. Previous research on evolutionary testing has mainly focused on procedural programming languages with code coverage as the main optimization parameter. In this work, we present an approach that combines a genetic algorithm with static analysis to automatically test Eiffel classes using the number of faults found as the optimization parameter. A total of 115 experiments on 22 Eiffel classes were executed to evaluate the effectiveness of evolutionary testing compared to the results obtained by running a random test case generator for 15, 30 and 60 minutes. The results show a genetic algorithm combined with static analysis can considerably increase the number of faults found compared to a random testing approach. In some cases, evolutionary testing found more faults in 15 minutes than a random testing strategy found in 60 minutes. Algorithms Optimization Approach Random Random with Static Analysis Genetic Algorithm Generation Issues Evolutionary testing finds more faults and in less time than random testing Type of research Experiment Any Comparison? Yes Fitness metrics Fault detection rate Factors effecting the performance In GA time is an important element in effecting the performance Quality 10 Instrument Random perform worst, where as evolutionary algorithm (GA) performs 25% better results 112 score Reference No. 26 Title An Optimization Strategy for Evolutionary Testing Based on Cataclysm Authors Meng Wang, Bixin Li, Zhengshan Wang, Xxiaoyuan Xie Published th In 34 Annual IEEE Computer Software and Applications Conference Workshops Year 2010 Abstract Evolutionary Testing (ET) is an effective test case generation technique which uses some meta-heuristic search algorithm, especially genetic algorithm, to generate test cases automatically. However, the prematurity of the population may decrease the performance of ET. To solve this problem, this paper presents a novel optimization strategy based on cataclysm. It monitors the diversity of population during the evolution process of ET. Once the prematurity is detected, it will use the operator, cataclysm, to recover the diversity of the population. The experimental results show that the proposed strategy can improve the performance of ET evidently. Algorithms Optimization Approach Evolutionary Algorithm with Optimization Strategy Based on Cataclysm(OSBC) Evolutionary Algorithm with Dynamic Optimization of the possibility(DOMP) Generation Issues The prematurity of the population may decrease the performance of ET. Type of research Experiment Any Comparison? Yes Fitness metrics Branch Coverage Factors effecting the performance Prematurity of Population Quality score 8.5 Instrument OSBC works better than DOMP, but not work well for Complicated Branch Conditions. Reference No. 27 Title Test Case Evaluation and Input Domain Reduction strategies for the Evolutionary Testing of Object-Oriented software Authors José Carlos Bregieiro Ribeiro, Mário Alberto Zenha-Rela, Francisco Fernández de Vega 113 Published In Information and Software Technology 51 (2009) 1534–1548 Year 2009 Abstract In Evolutionary Testing, meta-heuristic search techniques are used for generating test data. The focus of our research is on employing evolutionary algorithms for the structural unit-testing of Object-Oriented programs. Relevant contributions include the introduction of novel methodologies for automation, search guidance and Input Domain Reduction; the strategies proposed were empirically evaluated with encouraging results. Test cases are evolved using the Strongly-Typed Genetic Programming technique. Test data quality evaluation includes instrumenting the test object, executing it with the generated test cases, and tracing the structures traversed in order to derive coverage metrics. The methodology for efficiently guiding the search process towards achieving full structural coverage involves favouring test cases that exercise problematic structures. Purity Analysis is employed as a systematic strategy for reducing the search space. Algorithms Strongly-Typed Genetic Programming Optimization Approach Generation Issues The focus of research is on employing evolutionary algorithms for the structural unit-testing of object-oriented programs. Relevant contributions include the introduction of novel methodologies for automation, search guidance and input domain reduction. Type of research Experiment Any Comparison? No Fitness metrics Structural coverage Factors effecting the performance -- Quality score 6 Instrument Reference No. 28 Title An experimental study of four typical test suite reduction techniques Authors Hao Zhong, Lu Zhang, Hong Mei Published Abstract In Information and Software Technology, vol-50, pg 534-546. Year 2007 In software development, developers often rely on testing to reveal bugs. Typically, a test suite should be prepared before initial testing, and new test 114 cases may be added to the test suite during the whole testing process. This may usually cause the test suite to contain more or less redundancy. In other words, a subset of the test suite (called the representative set) may still satisfy all the test objectives. As the redundancy can increase the cost of executing the test suite, quite a few test suite reduction techniques have been brought out in spite of the NP-completeness of the general problem of finding the optimal representative set of a test suite. In the literature, there have been some experimental studies of test suite reduction techniques, but the limitations of these experimental studies are quite obvious. Recently proposed techniques are not experimentally compared against each other, and reported experiments are mainly based on small programs or even simulation data. This paper presents a new experimental study of the four typical test suite reduction techniques, including Harrold et al.’s heuristic, and three other recently proposed techniques such as Chen and Lau’s GRE heuristic, Mansour and El-Fakin’s genetic algorithm-based approach, and Black et al.’s ILP-based approach. Based on the results of this experimental study, we also provide a guideline for choosing the appropriate test suite reduction technique and some insights into why the techniques vary in effectiveness and efficiency. Algorithms GRE H ILP GA Optimization Approach Reduction Issues Recently proposed techniques are not experimentally compared against each other, and reported experiments are mainly based on small programs or even simulation data. Type of research Experiment Any Comparison? Yes Fitness metrics Fault detection Factors effecting the performance Time Quality score 12 Instrument Reference No. Genetic algorithm-based approach, which performs much weaker in this aspect, the other three can produce representative sets of almost the same sizes. Genetic algorithm-based approach also performs the worst in respect of execution time. The ILP-based approach can always produce the smallest representative sets among all the four approaches. 29 115 Title Strongly-Typed Genetic Programming and Purity Analysis: Input Domain Reduction for Evolutionary Testing Problems Authors José Carlos, Mário Alberto, Zenha-Rela, Bregieiro Ribeiro, Francisco Fernandéz de Vega Published In GECCO’08, July 12–16, 2008, Atlanta, Georgia, USA. Year 2008 Abstract Search-based test case generation for object-oriented software is hindered by the size of the search space, which encompasses the arguments to the implicit and explicit parameters of the test object's public methods. The performance of this type of search problems can be enhanced by the definition of adequate Input Domain Reduction strategies. The focus of our on-going work is on employing evolutionary algorithms for generating test data for the structural unit-testing of Java programs. Test cases are represented and evolved using the Strongly-Typed Genetic Programming paradigm; Purity Analysis is particularly useful in this situation because it provides a means to automatically identify and remove Function Set entries that do not contribute to the definition of interesting test scenarios. Algorithms Strongly-Typed Genetic Programming Optimization Approach Generation Issues Search-based test case generation for object-oriented software is hindered by the size of the search space, which encompasses the arguments to the implicit and explicit parameters of the test object's public methods. Type of research Experiment Any Comparison? No Fitness metrics Function Coverage Factors effecting the performance -- Quality score 4 Instrument The average percentage of test cases that accomplished full coverage increased approximately 6%. Reference No. 30 Title Search-Based Test Case Generation for Object-Oriented Java Software Using Strongly-Typed Genetic Programming Authors José Carlos Bregieiro Ribeiro Published In GECCO’08, July 12–16, 2008, Atlanta, Georgia, USA. 116 Year Abstract 2008 In evolutionary testing, meta-heuristic search techniques are used to generate high-quality test data. The focus of our ongoing work is on employing evolutionary algorithms for the structural unit-testing of object-oriented Java programs. Test cases are evolved using the Strongly-Typed Genetic Programming technique. Test data quality evaluation includes instrumenting the test object, executing it with the generated test cases, and tracing the structures traversed in order to derive coverage metrics. The strategy for efficiently guiding the search process towards achieving full structural coverage involves favoring test cases that exercise problematic structures and control-flow paths. Static analysis and instrumentation is performed solely with basis on the information extracted from the test objects' Java Bytecode. Relevant contributions include the introduction of novel methodologies for automation, search guidance and input domain reduction, and the presentation of the eCrash automated test case generation tool. Algorithms Strongly-Typed Genetic Programming Optimization Approach Generation Issues The focus of our ongoing work is on employing evolutionary algorithms for the structural unit-testing of object-oriented Java programs. Type of research Experiment Any Comparison? No The impact of this reduction on the test case generation process is visible on the case studies. The average percentage of test cases that accomplished full coverage within a maximum of 100 generations increased approximately 6%. Fitness metrics Structural coverage Factors effecting the performance Configuration of parameters Quality score 5.5 Instrument Reference No. 31 Title An Empirical Evaluation of Test Suite Reduction for Boolean Specificationbased Testing Authors Xiaofang Zhang, Baowen Xu, Zhenyu Chen, Changhai Nie, Leifang Li Published In The Eighth International Conference on Quality Software 117 Year 2008 Abstract As the cost of executing and maintaining a large test suite is always expensive, many test suite reduction techniques have been proposed and some empirical studies of test suite reduction techniques have already been reported. The aim of this paper is to provide a guideline for choosing the appropriate test suite reduction techniques for Boolean specification-based testing. Four typical heuristic reduction strategies: G, GE, GRE, and H are introduced to be compared empirically. Furthermore, testing requirement optimization is combined to enhance these four reduction strategies. This paper presents the empirical evaluation of these reduction strategies based on a set of Boolean specifications from TCAS II. Algorithms G (greedy) and G’ GE and GE’ GRE and GRE’ H and H’ Optimization Approach Reduction Issues The aim of this paper is to provide a guideline for choosing the appropriate test suite reduction techniques for Boolean specification-based testing. Type of research Experiment Any Comparison? Yes Fitness metrics 1-1 reduction of requirement could always improve the four reduction strategies both in reduction effectiveness and reduction performance. Hence, it is recommended to be implemented before all test suite reduction strategies, even before test case generation. But increases the time cost. Since GRE’ is a combined strategy, it is more complex than other reduction strategies. It is suitable for small sized and small overlapped test suites. Hence, GRE’ is recommended to obtain a minimum size of test suite, if the time resource is enough. H’ groups the test cases into various classes and then reduces test cases. Hence it can reduce the cost especially for larger test suites with acceptable impact on the size of representative set. H’ is recommended to obtain a better reduction performance, if the time resource is limited. Requirement Coverage Time cost Factors effecting the performance Time Quality score 11.5 Instrument 118 Reference No. 32 Title Test-Suite Reduction Using Genetic Algorithm Authors Xue-ying Ma, Bin-kui Sheng, and Cheng-qing Ye Published In Springer-Verlag Berlin Heidelberg 2005 Year 2005 Abstract As the software is modified and new test cases are added to the test-suite, the size of the test-suite grows and the cost of regression testing increases. In order to decrease the cost of regression testing, researchers have researched on the use of test-suite reduction techniques, which identify a subset of test cases that provides the same coverage of the software, according to some criterion, as the original test-suite. This paper investigates the use of an evolutionary approach, called genetic algorithms, for test-suite reduction. The algorithm builds the initial population based on test history, calculates the fitness value using coverage and cost information, and then selectively breeds the successive generations using genetic operations. This generational process is repeated until a minimized test-suite is founded. The results of studies show that, genetic algorithms can significantly reduce the size of the test-suite and the cost of regression testing, and achieves good cost-effectiveness. Algorithms Genetic Algorithm (GeA) Greedy Algorithm (ADD-DELTA) Optimization Approach Reduction Issues This paper investigates the use of an evolutionary approach, called genetic algorithms, for test-suite reduction Type of research Experiment Any Comparison? Yes Fitness metrics The sizes of reduced test-suites achieved by GeA are slightly smaller than those reduced by ADD-DELTA. The percentages of cost-reduction achieved by GeA are higher than those achieved by ADD-DELTA GeA achieves a higher cost-effectiveness (in terms of time to perform reduction) than ADD-DELTA does. Block Coverage and cost Factors effecting the performance Parameter setting Quality score 13 Instrument Reference No. 33 Title Black-box System Testing of Real-Time Embedded Systems Using Random and 119 Search-based Testing Authors Published Andrea Arcuri, Muhammad Zohaib Iqbal, and Lionel Briand In Testing Software and Systems, Springer Berlin/Heidelberg. 6435:95-110 Year 2010 Abstract Testing real-time embedded systems (RTES) is in many ways challenging. Thousands of test cases can be potentially executed on an industrial RTES. Given the magnitude of testing at the system level, only a fully automated approach can really scale up to test industrial RTES. In this paper we take a black-box approach and model the RTES environment using the UML/-MARTE international standard. Our main motivation is to provide a more practical approach to the model-based testing of RTES by allowing system testers, who are often not familiar with the system design but know the application domain well-enough, to model the environment to enable test automation. Environment models can support the automation of three tasks: the code generation of an environment simulator, the selection of test cases, and the evaluation of their expected results (oracles). In this paper, we focus on the second task (test case selection) and investigate three test automation strategies using inputs from UML/MARTE environment models: Random Testing (baseline), Adaptive Random Testing, and Search-Based Testing (using Genetic Algorithms). Based on one industrial case study and three artificial systems, we show how, in general, no technique is better than the others. Which test selection technique to use is determined by the failure rate (testing stage) and the execution time of test cases. Finally, we propose a practical process to combine the use of all three test strategies. Algorithms Random testing (RT) Adaptive Random Testing (ART) Genetic Algorithm (as search based testing (SBT)) Selection Optimization Approach Generation Issues our goal is to make such environment modeling as easy as possible, and allow the testers to automate testing without any knowledge about the design of the RTES. Type of research Experiment Any Comparison? Yes Fitness metrics Failure rate and execution time Factors effecting the performance One main advantage of ART and SBT is that it can be tailored to whatever time and resources are available for testing: when resources are expended and time is up, we can simply stop their application without any side effect. We can see that no testing technique generally dominates the others. GA gets to the error state 90% of the time, whereas RT reaches it only in 6% of the time, i.e., GA is more time consuming. 120 Quality score Instrument 11.5 Reference No. 34 Title Multi-Objective Test Suite Minimization Using Quantum-Inspired MultiObjective Differential Evolution Algorithm Authors A.Charan Kumari, K.Srinivas, M.P.Gupta Published In IEEE Year 2012 Abstract This paper presents the solution for multi-objective test suite minimization problem using Quantum-inspired Multi-objective differential Evolution Algorithm. Multi-objective test suite minimization problem is to select a set of test cases from the available test suite while optimizing the multi objectives like code coverage, cost and fault history. As test suite minimization problem is an instance of minimal hitting set problem which is NP-complete; it cannot be solved efficiently using traditional optimization techniques especially for the large problem instances. This paper presents Quantum-inspired Multiobjective Differential Evolution Algorithm (QMDEA) for the solution of multiobjective test suite minimization problem. QMDEA combines the preeminent features of Differential Evolution and Quantum Computing. The features of QMDEA help in achieving quality Pareto-optimal front solutions with faster convergence. The performance of QMDEA is tested on two real world applications and the results are compared against the state-of-the-art multiobjective evolutionary algorithm NSGA-II. The comparison of the obtained results indicates superior performance of QMDEA. Algorithms Quantum-inspired Multi-objective differential Evolution Algorithm. NSGA-II Selection Optimization Approach Issues This paper presents the solution for multi-objective test suite minimization problem using Quantum-inspired Multi-objective differential Evolution Algorithm. Type of research Experiment Any Comparison? Yes Fitness metrics QMDEA out performed NSGA II in both the applications in achieving high quality solutions and also QMDEA is able to obtain more number of solutions on its Pareto front than NSGA II, giving a good number of choices to the decision maker. QMDEA is able to converge faster than NSGA II. Code Coverage Execution time Factors effecting the -- 121 performance Quality score Instrument 11 Reference No. 35 Title A new heuristic for test suite reduction Authors T.Y. Chen, M.F. Lau Published In Information and Software Technology 40 (1998) 347-354 Year 1998 Abstract A testing objective has to be defined in testing a program. A test suite is then constructed to satisfy the testing objective. The constructed test suite contains redundancy when some of its proper subsets can still satisfy the same testing objective. Since the costs of executing test cases and maintaining a test suite for regression testing may be expensive, the problem of test suite reduction arises. This paper proposes a heuristic towards the optimization of a test suite. Algorithms GE GRE H Optimization Approach Reduction Issues Since the costs of executing test cases and maintaining a test suite for regression testing may be expensive, the problem of test suite reduction arises. This paper proposes a heuristic towards the optimization of a test suite. Type of research Experiment Any Comparison? Yes Fitness metrics all three heuristics GE, GRE and H deliver representative sets of nearly the same size when the ratio of overlapping is small when medium the representative sets found by GRE is smaller than those of GE and H when large the performance of the heuristics GE and GRE are nearly the same, and the size of the representative sets produced by either GE or GRE is less than that produced by heuristic H. Branch coverage Factors effecting the performance -- Quality score 9.5 Instrument 122 Reference No. 36 Title Search Algorithms for Regression Test Case Prioritization Authors Zheng Li, Mark Harman, and Robert M. Hierons Published In IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 33, NO. 4, Year 2007 Abstract Regression testing is an expensive, but important, process. Unfortunately, there may be insufficient resources to allow for the re-execution of all test cases during regression testing. In this situation, test case prioritization techniques aim to improve the effectiveness of regression testing by ordering the test cases so that the most beneficial are executed first. Previous work on regression test case prioritization has focused on Greedy Algorithms. However, it is known that these algorithms may produce suboptimal results because they may construct results that denote only local minima within the search space. By contrast, metaheuristic and evolutionary search algorithms aim to avoid such problems. This paper presents results from an empirical study of the application of several greedy, metaheuristic, and evolutionary search algorithms to six programs, ranging from 374 to 11,148 lines of code for three choices of fitness metric. The paper addresses the problems of choice of fitness metric, characterization of landscape modality, and determination of the most suitable search technique to apply. The empirical results replicate previous results concerning Greedy Algorithms. They shed light on the nature of the regression testing search space, indicating that it is multimodal. The results also show that Genetic Algorithms perform well, although Greedy approaches are surprisingly effective, given the multimodal nature of the landscape. Algorithms Greedy Additional greedy 2-optimal greedy Hill climbing Genetic Prioritization Optimization Approach Issues Q1. Which algorithm is most effective in solving the test case prioritization problem for regression testing? Q2. What factors could affect the efficiency of algorithms for the test case prioritization problem for regression testing? Type of research Experiment Any Comparison? Yes For small programs, the five algos show almost identical performance For small programs, The mean fitness value for each program revealed that the greedy is worst and genetic is slightly better then others ANOVA results for small programs and small test suite are consistent (same) To explore further that where difference lie, a multi-comparison 123 procedure (LSD) is performed. There is significant difference between all pairs of algos on small programs, except Genetic and additional greedy, means provides best results. For large program and small test suite by boxplots: additional greedy and 2-optimal show best results then hill climbing and genetic, where as genetic is better then hill climbing. For large test suite there is no significant difference between additional greedy and genetic for small programs and no significant difference in additional greed and 2-optimal for large program. And pair wise comparisons have significant differences. When perform repeatedly(100 times) these algorithms with same test suite, greedy, additional greedy and 2-optimal show same results means these are deterministic, while by hill climbing and genetic have vary results with each experiment. Code coverage, including block coverage, decision (branch) coverage, and statement coverage Fitness metrics Factors effecting the performance The size of the program does not directly affect the complexity of test case prioritization, whereas the size of the test suite does since it determines the size of the search space. Quality score 14 Instrument Reference No. 37 Title A Genetic Algorithm for Test-Suite Reduction Authors Xue-ying MA, Bin-kui SHENG, Zhen-feng HE, Cheng-qing YE Published Abstract In 2005 IEEE International Conference on Systems, Man and Cybernetics Year 2005 In order to reduce the cost of regression testing, researchers have investigated the use of test-suite reduction techniques, which identify a reduced test suite that provides the same coverage of the software according to some criterion as the original test suite. Existing test-suite reduction techniques consider testcase coverage criteria, other criteria such as risk or fault–detection effectiveness, or combinations of these criteria, but ignore the test-execution cost because of the complexity. Firstly, this paper presents a mathematical model for this test-suite reduction problem and transforms it into a linear integer-programming form. Then the paper investigates the use of an evolutionary approach, called genetic algorithm, for this test-suite reduction problem. Unlike other algorithms, our algorithm uses a new criteria, which is a combination of a block based coverage criteria and a test-execution cost criteria, to make decisions about reducing a test suite. Finally, the paper presents the results of the empirical studies of our algorithm. The studies show that our algorithm can significantly reduce the size and the cost of the test-suite for regression testing, and the test-execution 124 cost is one of the most important features that must be taken into consideration for test-suite reduction. Algorithms Optimization Approach Genetic Simple genetic Greedy (MgrA) Reduction Issues Consider test execution cost Type of research Experiment Any Comparison? Yes Fitness metrics Sizes of reduced test-suites achieved by GeA are significantly smaller than those reduced by SGeA, and the sizes of reduced test-suites achieved by MGrA are slightly larger than those achieved by GeA. Percentages of cost-reduction achieved by GeA are significantly higher than those achieved by SgeA. The percentage reductions in cost achieved by GeA are higher than those achieved by MGrA. GeA is much more effective in cost reduction than SgeA, and achieves higher cost effectiveness than MgrA. block based coverage criteria and a test-execution cost criteria, Factors effecting the performance -- Quality score 10.5 Instrument Reference No. 38 Title Automatic test case optimization using a bacteriological adaptation model: application to .NET components Authors Benoit Baudry, Franck Fleurey, Jean-Marc Jezequel and Yves LeTraon Published Abstract In 17th IEEE International Conference on Automated Software Engineering, 2002. Proceedings. ASE 2002 Year 2002 In this paper, we present several complementary computational intelligence techniques that we explored in the field of .Net component testing. Mutation testing serves as the common backbone for applying classical and new artificial intelligence (AI) algorithms. With mutation tools, we know how to estimate the revealing power of test cases. With AI, we aim at improving automatically test cases efficiency. So, we looked first at genetic algorithms (GA) to solve the problem of test. The aim of the selection process is to generate test cases able to kill as many mutants as possible. Then, we propose a new AI algorithm that fits better to the test optimization problem we called bacteriological algorithm (BA): Bas behave better that GAs for this problem. However, between GAs and BAs, a family of intermediate algorithms exists: 125 we explore the whole spectrum of these intermediate algorithms to determine whether an algorithm exists that would be more efficient than BAs.: the approaches are compared on a .Net system. Algorithms Optimization Approach Genetic Bacteriological Generation Issues Test case optimization is more an adaptation process than an evolution process, we propose bacteriological algorithms, taken from the bacteria adaptation phenomenon. Type of research Experiment Any Comparison? Yes Fitness metrics -- Factors effecting the performance Quality score Instrument BA is far speedy then GA in convergence memorization of best test case 10.5 Reference No. 39 Title A Case Study on the Use of Genetic Algorithms to Generate Test Cases for Temporal Systems Authors Karnig Derderian, Mercedes G. Merayo, Robert M. Hierons, and Manuel Nunez Published In IWANN 2011, Part II, LNCS 6692, pp. 396–403 Year 2011 Abstract Generating test data for formal state based specifications is computationally expensive. In previous work we presented a framework that addressed this issue by representing the test data generation problem as an optimisation problem. In this paper we analyze a communications protocol to illustrate how the test case generation problem can be presented as a search problem and automated. Genetic algorithms (GAs) and random search are used to generate test data and evaluate the approach. GAs show to outperform random search and seem to scale well as the problem size increases. We consider a very simple fitness function that can be used with other evolutionary search techniques and automated test case generation suites. Algorithms Optimization Approach Greedy Genetic Single point crossover/mutation Genetic Multi point crossover/mutation Generation Issues Generating timed feasible transition paths 126 Type of research Case Study Any Comparison? Yes Fitness metrics State coverage Factors effecting the performance Parameter setting Quality score 8.5 Instrument GA1 is constant and perform well then other 2 whereas GA2 is faster among them Reference No. 40 Title A non-pheromone based intelligent swarm optimization technique in software test suite optimization Authors D.Jeya Mala, M.Kamalapriya, R.Shobana, V.Mohan Published In International Conference on Intelligent Agent & Multi-Agent Systems, 2009. IAMA 2009. Year 2009 Abstract In our paper, we applied a non-pheromone based intelligent swarm optimization technique namely artificial bee colony optimization (ABC) for test suite optimization. Our approach is a population based algorithm, in which each test case represents a possible solution in the optimization problem and happiness value which is a heuristic introduced to each test case corresponds to the quality or fitness of the associated solution. The functionalities of three groups of bees are extended to three agents namely Search Agent, Selector Agent and Optimizer Agent to select efficient test cases among near infinite number of test cases. Because of the parallel behavior of these agents, the solution generation becomes faster and makes the approach an efficient one. Since, the test adequacy criterion we used is path coverage; the quality of the test cases is improved during each iteration to cover the paths in the software. Finally, we compared our approach with Ant Colony Optimization (ACO), a pheromone based optimization technique in test suite optimization and finalized that, ABC based approach has several advantages over ACO based optimization. Algorithms Artificial Bee Colony Optimization (ABC) Ant Colony Optimization (ACO) Reduction Optimization Approach Generation Issues Effectiveness in terms of time and cost Type of research Experiment 127 Any Comparison? Yes Fitness metrics Path coverage Factors effecting the performance ACO Quality score Instrument ABC is faster and effective then ACO Process is sequential Solution selection is done only at the end, leads to computational overhead and memory limit problems Computational overhead May face memory limit issue ABC Parallel behavior (multi threading) The final optimal solution is the improvement done during each iteration of the bees' exploration process. Less computational overhead Overcome memory limit issue 13 Reference No. 41 Title A concept analysis inspired greedy algorithm for test suite minimization Authors Sriraman Tallam, Neelam Gupta Published In Proceedings of the 6th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering Year 2005 Abstract Software testing and retesting occurs continuously during the software development lifecycle to detect errors as early as possible and to ensure that changes to existing software do not break the software. Test suites once developed are reused and updated frequently as the software evolves. As a result, some test cases in the test suite may become redundant as the software is modified over time since the requirements covered by them are also covered by other test cases. Due to the resource and time constraints for re-executing large test suites, it is important to develop techniques to minimize available test suites by removing redundant test cases. In general, the test suite minimization problem is NP complete. In this paper, we present a new greedy heuristic algorithm for selecting a minimal subset of a test suite T that covers all the requirements covered by T. We show how our algorithm was inspired by the concept analysis framework. We conducted experiments to measure the extent of test suite reduction obtained by our algorithm and prior heuristics for test suite minimization. In our experiments, our algorithm always selected same size or smaller size test suite than that selected by prior heuristics and had comparable time performance. Algorithms Delayed-Greedy heuristic (DelGreedy) classical Greedy heuristic HGS (Harrold, Gupta and Soffa) SMSP Reduction Optimization Approach 128 Issues to obtain same or more reduction in the test-suite size as compared to the classical greedy Type of research Experiment Any Comparison? Yes Minimized suite by DelGreedy was of same or smaller size then that generated by other algorithms on an average, for branch coverage adequate suites, DelGreedy produced smaller size suites than Greedy, HGS and SMSP in 35%, 64% and 86% of the cases respectively. On an average, for def-use coverage adequate suites, DelGreedy produced smaller size suites than Greedy, HGS and SMSP in 39%, 46% and 91% of the cases respectively. Fitness metrics Branch Coverage and def-use coverage Factors effecting the performance -- Quality score 9 Instrument Reference No. 42 Title An Empirical Study of Incorporating Cost into Test Suite Reduction and Prioritization Authors Adam M. Smith and Gregory M. Kapfhammer Published Abstract In ACM, SAC ’09 March 8-12, 2009, Honolulu, Hawaii, USA Year 2009 Software developers use testing to gain and maintain confidence in the correctness of a software system. Automated reduction and prioritization techniques attempt to decrease the time required to detect faults during test suite execution. This paper uses the Harrold Gupta Soffa, delayed greedy, traditional greedy and 2-optimal greedy algorithms for both test suite reduction and prioritization. Even though reducing and reordering a test suite is primarily done to ensure that testing is cost-effective, these algorithms are normally configured to make greedy choices with coverage information alone. This paper extends these algorithms to greedily reduce and prioritize the tests by using both test cost (e.g., execution time) and the ratio of code coverage to test cost. An empirical study with eight real world case study applications shows that the ratio greedy choice metric aids a test suite reduction method in identifying a smaller and faster test suite. The results also suggest that incorporating test cost during prioritization allows for an average increase of 17% and a maximum improvement of 141% for time sensitive evaluation metric called coverage effectiveness. 129 Algorithms Harrold Gupta Soffa (HGS), delayed greedy (DGR), traditional greedy (GRD), and 2-optimal greedy (2OPT) Optimization Approach Reduction Prioritization Issues When reducing based on coverage, the algorithm picks the tests that cover the most additional requirements. For the cost GCM, the algorithm finds the tests with the lowest execution time. Ratio choices allow the algorithm to pick the tests that cover the most requirements per unit cost. Type of research Experiment Any Comparison? Yes HGS and DGR are the best methods for reducing the size of a regression test suite. 2OPT and GRD consistently obtain the highest CE scores and the DGR prioritizer does better than HGS. GRD and HGS tend to be the most efficient techniques with 2OPT and DGR exhibiting both higher time overheads Fitness metrics Requirement coverage Factors effecting the performance Cost in terms of time, coverage, ratio (coverage/time) Quality score 10 Instrument Reference No. 43 Title A New Algorithm to Test Suite Reduction Based on Cluster Analysis Authors S. Parsa, A. Khalilian and Y. Fazlalizadeh Published Abstract In 2nd IEEE International Conference on Computer Science and Information Technology, 2009. ICCSIT 2009. Year 2009 Regression testing is a significant activity which occurs during the maintenance level of a software lifecycle. However, it requires a large amount of test cases to test new or modified parts of the software. To address the issue, Test Suite Reduction techniques have been presented. An appropriate technique should generate a minimized test suite which exercises different execution paths within a program while retaining the fault detection capability of the suite 130 admissible. To achieve this, a heuristic algorithm is proposed in this paper. The new algorithm clusters test cases based on the similarity of their execution profiles and sample some representatives to form the reduced test suite. The results of applying the new algorithm to the Siemens suite and comparing to the H algorithm manifest interesting insights into the effectiveness ofhe proposed algorithm. Algorithms H algorithm Coverage-based algorithm(clustering) Reduction Optimization Approach Issues and distribution-based heuristic Coverage-based techniques and distribution-based techniques (Cluster filtering, failure-pursuit): methods perform rather well, but do not necessarily make full coverage empirical studies show that their functionality varies with the size of the test suite. Often do not select similar test cases and are complementary because they find different faults. To address the limitations of the coverage-based and distribution-based approaches, in this paper a heuristic algorithm combining the ideas of the both approaches, is proposed. Type of research Experiment Any Comparison? Yes Fitness metrics Branch coverage Factors effecting the performance -- Quality score 11.5 Instrument When the percentage of size reduction of both algorithms are closely equal, the percentage of fault detection for our approach is less than the H algorithm. When the percentage of fault loss is nearly equal, our algorithm have greater suite size reduction. Reference No. 44 Title Study of Test Suite Reduction Based on Quantum Evolutionary Algorithm Authors Yi-kun ZHANG, Ji-ceng LIU, Xue-min YANG,Ying-an CUI,Bao-wei Published Abstract In 2010 International Conference on Artificial Intelligence and Computational Intelligence, IEEE Year 2010 Test suite reduction aims at adequately testing all the test requirements with the least number of test cases. Through the coverage relationship between 131 test requirements and test cases, test suite reduction problem can be converted into the standard optimization problem. Quantum evolutionary algorithm (QEA) is an intelligent algorithm based on quantum computation. In QEA, chromosomes are encoded with quantum bits as the basic information bits, and individual variation evolution is realized by quantum mutation based on quantum probability gates. So in QEA, the convergence speed and ability to search global best results are superior to the traditional evolutionary algorithms. Motivated by this, we propose a novel test suite reduction method using quantum evolutionary. Finally, experiments validate the technology with higher efficiency. Algorithms Optimization Approach Quantum evolutionary Algorithm (quantum genetic algorithm) GE algorithm GRE algorithm, HGS algorithm, genetic algorithm Reduction Issues This paper proposes a novel approach that applying quantum evolutionary algorithm to test suite reduction problem, and the simulation results validate that quantum evolutionary algorithm has a very good performance in test suite reduction. Type of research Case Study Any Comparison? Yes Fitness metrics The genetic algorithm, the quantum genetic algorithm has better reduction performance, especially when the test suite has a larger size. The time spent on reduction when using quantum genetic algorithm is much less than the other four algorithms. Requirement coverage Factors effecting the performance It is easy to maintain the population diversity when using the full crossinterference, and then it has a good convergence speed. Quality score 10.5 Instrument Reference No. 45 Title Automated GUI Test Coverage Analysis using GA Authors Abdul Rauf, Sajid Anwar, M. Arfan Jaffer, and Arshad Ali Shahid Published Abstract In 2010 Seventh International Conference on Information Technology Year 2010 A Graphical User Interface (GUI) is a graphical front-end to a software system. A GUI contains graphical objects with certain distinct values which can be used to determine the state of the GUI at any time. Software developing organizations always desire to test the software thoroughly to get maximum 132 confidence about its quality. But this requires gigantic effort to test a GUI application due to the complexity involved in such applications. This problem has led to the automation of GUI testing and different techniques have been proposed for automated GUI Testing. Event-flow graph is a fresh technique being used in the field of automated GUI testing. Just as control-flow graph, another GUI model that represents all possible execution paths in a program, event-flow model, in the same way, represents all promising progressions of events that can be executed on the GUI. Another challenging question in software testing is, “How much testing is enough?” As development proceeds, there are fewer measures available that can be used to provide guidance on the quality of an automatic test suite. Genetic algorithm searches for the best possible test parameter combinations that are according to some predefined test criterion. Usually this test criterion corresponds to a “coverage function” that measures how much of the automatically generated optimization parameters satisfies the given test criterion. In this paper, we have attempted to exploit the event driven nature of GUI. Based on this nature, we have presented a GUI testing and coverage analysis technique centered on genetic algorithms. Algorithms Genetic Algorithm Optimization Approach Generation Issues Requires gigantic effort to test a GUI application due to the complexity involved in such applications. This problem has led to the automation of GUI testing and different techniques have been proposed for automated GUI Testing. Event-flow graph is a fresh technique being used in the field of automated GUI testing Type of research Experiment Any Comparison? No Fitness metrics Path coverage Factors effecting the performance No. Of generations Quality score 10 Instrument -- Reference No. 46 Title An Improved Quantum Genetic Algorithm for Test Suite Reduction Authors Yi-kun ZHANG, Ji-ceng LIU, Ying-an CUI, Xin-hong HEI, Ming-hui ZHANG Published In IEEE International Conference on Computer Science and Automation Engineering (CSAE), 2011 Year 2011 133 Abstract Test suite reduction is necessary to reduce the testing cost and increase efficiency, therefore, test suite reduction model is proposed, and test suite reduction problem is converted into a standard optimization problem. Additionally, an improved evolutionary algorithm is also proposed, which encodes the chromosome with quantum bit as its basic information bit. It achieves the individual evolution by improving the quantum rotating gates using adaptive rotation, and its convergence speed and global optimization ability is superior to the traditional evolutionary algorithm. Motivated by this, we propose a novel test suite reduction method using quantum evolutionary. Finally, experiments validate the technology with higher efficiency. Algorithms Optimization Approach IQGA greedy algorithm HGS algorithm GRE algorithm Genetic algorithm and QGA separately. Reduction Issues Improve the performance Type of research Experiment Any Comparison? Yes Fitness metrics IQGA can effectively reduce the test suite size when guaranteeing the coverage rate. When initial test case set is small, the above algorithms have similar reduction effect. Test cases number obtained by IQGA is much smaller than the traditional reduction algorithms, and it has more advantage than the genetic algorithm and QGA. Quantum genetic algorithm and improved quantum genetic algorithm spend much less time than genetic algorithm. Requirement coverage Factors effecting the performance Quantum genetic algorithm uses the full cross -interference, and thus it is easy to maintain the population diversity, it also has a good convergence speed. Quality score 11 Instrument Reference No. 47 Title Designing Better Fitness Functions for Automated Program Repair Authors Ethan Fast, Claire Le Goues, Stephanie Forrest, Westley Weimer Published Abstract In Proceedings of the 12th annual conference on Genetic and evolutionary computation, GECCO’10 Year 2010 Evolutionary methods have been used to repair programs automatically, with promising results. However, the fitness function used to achieve these results 134 was based on a few simple test cases and is likely too simplistic for larger programs and more complex bugs. We focus here on two aspects of fitness evaluation: efficiency and precision. Efficiency is an issue because many programs have hundreds of test cases, and it is costly to run each test on every individual in the population. Moreover, the precision of fitness functions based on test cases is limited by the fact that a program either passes a test case, or does not, which leads to a fitness function that can take on only a few distinct values. This paper investigates two approaches to enhancing fitness functions for program repair, incorporating (1) test suite selection to improve efficiency and (2) formal specifications to improve precision. We evaluate test suite selection on 10 programs, improving running time for automated repair by 81%. We evaluate program invariants using the Fitness Distance Correlation (FDC) metric, demonstrating significant improvements and smoother evolution of repairs. Algorithms Random Genetic Algorithm Optimization Approach Selection Issues This paper investigates two approaches to enhancing fitness functions for program repair, incorporating (1) test suite selection to improve efficiency and (2) formal specifications to improve precision. Type of research Experiment Any Comparison? Yes Fitness metrics average test case evaluations per successful repair Factors effecting the performance Computational overhead of GA Quality score 11.5 Instrument GA performs slightly worse because of its computational over head and if it is ignored the performance of GA is equal or exceeds that of random. Reference No. 48 Title Variable Strength Interaction Testing with an Ant Colony System Approach Authors Xiang Chen, Qing Gu, Ang Li, and Daoxu Chen Published Abstract In 16th Asia-Pacific Software Engineering Conference Year 2009 Interaction testing (also called combinatorial testing) is an cost-effective test 135 generation technique in software testing. Most research work focuses on finding effective approaches to build optimal t-way interaction test suites. However, the strength of different factor sets may not be consistent due to the practical test requirements. To solve this problem, a variable strength combinatorial object and several approaches based on it have been proposed. These approaches include simulated annealing (SA) and greedy algorithms. SA starts with a large randomly generated test suite and then uses a binary search process to find the optimal solution. Although this approach often generates the minimal test suites, it is time consuming. Greedy algorithms avoid this shortcoming but the size of generated test suites is usually not as small as SA. In this paper, we propose a novel approach to generate variable strength interaction test suites (VSITs). In our approach, we adopt a one-testat-a-time strategy to build final test suites. To generate a single test, we adopt ant colony system (ACS) strategy, an effective variant of ant colony optimization (ACO). In order to successfully adopt ACS, we formulize the solution space, the cost function and several heuristic settings in this framework. We also apply our approach to some typical inputs. Experimental results show the effectiveness of our approach especially compared to greedy algorithms and several existing tools. Algorithms Optimization Approach 1. simulated annealing 2. greedy algorithms Density and ParaOrder 3. ant colony systems Generation Issues The strength of different factor sets may not be consistent due to the practical test requirements. To solve this problem, a variable strength combinatorial object and several approaches based on it have been proposed. Type of research Experiment Any Comparison? Yes Fitness metrics -- Factors effecting the performance parameter settings Quality score 9 Instrument Compared to greedy algorithms and tools, ACS can generate smaller size for most inputs. In some ACS can even generate same size of test suites as simulated annealing strategy. inherited randomness in ACS Reference No. 49 Title Comparison of nearest point algorithms by genetic algorithms Authors Janne Koljonen Published In Expert System with Applications 136 Year 2011 Abstract When computational methods are developed, the efficiency of the novel methods should be compared to the existing ones. This can be done using, e.g., analytical methods and benchmark test patterns. In addition, the comparison of the best and the worst case performance is commonly of interest. In this paper, methodologies of genetic algorithm based software testing are adopted to the comparative computational testing of three varieties of dynamic two-dimensional nearest point algorithms. The extreme performances of the algorithms are searched for by optimizing the shape of two-dimensional Gaussian distributions, from which the test patterns are drawn. In particular, an approach to pairwise comparisons of computational complexities of algorithms is proposed. The test case algorithms can be sorted with respect to their computational complexity by the proposed method. Algorithms Random search Genetic algorithms Nearest point algorithm Prioritization Optimization Approach Issues Even by making primary distribution as fixed there are intrinsic deviation of the fitness values due to different realizations of the distribution. Type of research Experiment Any Comparison? Yes Fitness metrics -- Factors effecting the performance Quality score Instrument The three point algorithms proved to be superior as compared with genetic algorithms how ever in same cases random search out performs. Also the three point algorithms proved to have a log liner complexity. fitness function genetic operators 13 Reference No. 50 Title A Simulation Study on Some Search Algorithms for Regression Test Case Prioritization Authors Sihan Li, Naiwen Bian, Zhenyu Chen*, Dongjiang You, Yuchen He Published Abstract In 10th International Conference on Quality Software Year 2010 Test case prioritization is an approach aiming at increasing the rate of faults detection during the testing phase, by reordering test case execution. Many techniques for regression test case prioritization have been proposed. In this 137 paper, we perform a simulation experiment to study five search algorithms for test case prioritization and compare the performance of these algorithms. The target of the study is to have an in-depth investigation and improve the generality of the comparison results. The simulation study provides two useful guidelines: (1) Two search algorithms, Additional Greedy Algorithm and 2Optimal Greedy Algorithm, outperform the other three search algorithms in most cases. (2) The performance of the five search algorithms will be affected by the overlap of test cases with regard to test requirements. Algorithms Optimization Approach Total Greedy Algorithm Additional Greedy Algorithm 2-Optimal Greedy Algorithm Hill Climbing Genetic Algorithms Prioritization Issues To study five search algorithms for test case prioritization and compare the performance of these algorithms. The target of the study is to have an indepth investigation and improve the generality of the comparison results. Type of research Simulation Experiment Any Comparison? Yes When roverlap=1, there is a slight difference between the performance of the three greedy algorithms. Additional Greedy Algorithm and 2-Optimal Greedy Algorithm perform better than the other three algorithms. On the other hand, the Total Greedy Algorithm performs much weaker than the other four algorithms overall. And Hill Climbing Algorithm performs good but not as good as Additional Greedy and 2-Optimal Greedy Algorithms. As for GA, it is worse than Hill Climbing Algorithm overall and the performance of GA dramatically declines with the increase of overlap and sometimes it is the worst of these five algorithms. Fitness metrics Requirement Coverage Factors effecting the performance -- Quality score 11 Instrument Reference No. 51 Title On the Value of Combining Feature Subset Selection with Genetic Algorithms: Faster Learning of Coverage Models 138 Authors James H. Andrews, Tim Menzies Published In Proceedings of the 5th International Conference on Predictor Models in Software Engineering Year 2009 Abstract The next challenge for the PROMISE community is scaling up and speeding up model generation to meet the size and time constraints of modern software development projects. There will always be a trade-off between completeness and runtime speed. Here we explore that trade-off in the context of using genetic algorithms to learn coverage models; i.e. biases in the control structures for randomized test generators. After applying feature subset selection to logs of the GA output, we find we can generate the coverage model and run the resulting test suite ten times faster while only losing 6% of the test case coverage. Algorithms Genetic algorithms Optimization Approach Reduction Issues Here we explore that trade-off in the context of using genetic algorithms to learn coverage models; i.e. biases in the control structures for randomized test generators. Type of research Experiment Any Comparison? No Fitness metrics Code Coverage Factors effecting the performance -- Quality score 6.5 Instrument Reference No. 52 Title Search based constrained test case selection using execution effort Authors Luciano S. deSouza, Ricardo B.C.Prudêncio, Flavia deA.Barros, Eduardo H.daS.Aranha Published Abstract In Expert Systems with Applications Year 2013 Software testing is essential to guarantee high quality products. However, it is a very expensive activity, particularly when manually performed. One way to cut down costs is by reducing the input test suites, which are usually large in order to fully satisfy the test goals. Yet, since large test suites usually contain 139 redundancies (i.e., two or more test cases (TC) covering the same requirement/piece of code), it is possible to reduce them in order to respect time/people constraints without severely compromising coverage. In this light, we formulated the TC selection problem as a constrained search based optimization task, using requirements coverage as the fitness function to be maximized (quality of the resultant suite), and the execution effort (time) of the selected TCs as a constraint in the search process. Our work is based on the Particle Swarm Optimization (PSO) algorithm, which is simple and efficient when compared to other widespread search techniques. Despite that, besides our previous works, we did not find any other proposals using PSO for TC selection, neither we found solutions treating this task as a constrained optimization problem. We implemented a Binary Constrained PSO (BCPSO) for functional TC selection, and two hybrid algorithms integrating BCPSO with local search mechanisms, in order to refine the solutions pro- vided by BCPSO. These algorithms were evaluated using two different real-world test suites of functional TCs related to the mobile devices domain. In the performed experiments, the BCPSO obtained promising results for the optimization tasks considered. Also, the hybrid algorithms obtained statistically better results than the individual search techniques. Algorithms Optimization Approach BCPSO (Binary Constrained PSO) BCPSO-FS (hybrid algorithm) BCPSO-HC (hybrid algorithm) HC (Hill-Climbing) FS (Forward Selection) BE (Backward Elimination) Random Selection Issues We formulated the TC selection problem as a constrained search based optimization task, using requirements coverage as the fitness function to be maximized (quality of the resultant suite), and the execution effort (time) of the selected TCs as a constraint in the search process. Type of research Experiment Any Comparison? Yes Integration suite Results Both BCPSO-FS and BCPSO-HC were better than BCPSO, FS and HC BCPSO-FS technique obtained the best average results Good results were also achieved by the local search techniques FS and BE by being simpler to implement and less computationally expensive. In regression suite, only the hybrid BCPSO-HC was statistically superior to its individual components (BCPSO, HC). Fitness metrics Requirement Coverage Factors effecting the performance Effort Limits (time) 140 Quality score Instrument 13 Reference No. 53 Title Genes and Bacteria for Automatic Test Cases Optimization in the .NET Environment Authors Benoit Baudry, Franck Fleurey, Jean-Marc Jézéquel and Yves Le Traon Published In Proceedings of the 13th International Symposium on Software Reliability Engineering IEEE Year 2002 Abstract The level of confidence in a software component is often linked to the quality of its test cases. This quality can in turn be evaluated with mutation analysis: faulty components (mutants) are systematically generated to check the proportion of mutants detected ("killed") by the test cases. But while the generation of basic test cases set is easy, improving its quality may require prohibitive effort. This paper focuses on the issue of automating the test optimization. We looked at genetic algorithms to solve this problem and modeled it as follows: a test case can be considered as a predator while a mutant program is analogous to a prey. The aim of the selection process is to generate test cases able to kill as many mutants as possible. To overcome disappointing experimentation results on the studied .Net system, we propose a slight variation on this idea, no longer at the "animal" level (lions killing zebras) but at the bacteriological level. The bacteriological level indeed better reflects the test case optimization issue: it introduces of a memorization function and the suppresses the crossover operator. We describe this model and show how it behaves on the case study. Algorithms Genetic algorithms Bacteriological algorithms Optimization Approach Reduction Issues The experiments with genetic algorithms were not satisfactory. Both because of the slow convergence and the unusual proportions of crossover and mutation operators. Type of research Case Study Any Comparison? Yes GAs are not perfectly adapted to the test cases optimization problem. A more adapted model should provide memory and remove the notion of individual to concentrate on the genes (test cases). The bacteriological algorithm converges much faster than the genetic one. 141 Fitness metrics Faults detection Factors effecting the performance No. of Test cases Memorization Quality score 12 Instrument Reference No. 54 Title Automated test data generation using a scatter search approach Authors Raquel Blanco, Javier Tuya, Belarmino Adenso-Díaz Published In Information and Software Technology 51 Year 2009 Abstract The techniques for the automatic generation of test cases try to efficiently find a small set of cases that allow a given adequacy criterion to be fulfilled, thus contributing to a reduction in the cost of software testing. In this paper we present and analyze two versions of an approach based on the scatter search metaheuristic technique for the automatic generation of software test cases using a branch coverage adequacy criterion. The first test case generator, called TCSS, uses a diversity property to extend the search of test cases to all branches of the program under test in order to generate test cases that cover these. The second, called TCSS-LS, is an extension of the previous test case generator which combines the diversity property with a local search method that allows the intensification of the search for test cases that cover the difficult branches. We present the results obtained by our generators and carry out a detailed comparison with many other generators, showing a good performance of our approach. Algorithms Scatter search TCSS (test coverage scatter search) TCSS-LS (test coverage scatter search-local search) Generation Optimization Approach Issues The test case generators use a large set of test cases to cover all branches, because during the search process they generate test cases that reach branches that had already been covered by other test cases; however not all of them form the set of test cases used in the test process of the program. Type of research Experiment Any Comparison? Yes TCSS diversifies the search of test cases by means of the diversity function in order to cover a great number of branches, while TCSS-LS diversifies the search in the first iterations and then intensifies the search through a local search procedure to obtain test cases that cover the most difficult nodes. 142 TCSS-LS outperform the TCSS and other test case generators. Fitness metrics Branch Coverage Factors effecting the performance -- Quality score 9.5 Instrument Reference No. 55 Title Quality Improvement and Optimization of Test Cases – A Hybrid Genetic Algorithm Based Approach Authors Dr. D.Jeya Mala, Dr. V.Mohan Published In ACM SIGSOFT Software Engineering Notes Year 2010 Abstract Software development organizations spend considerable portion of their budget and time in testing related activities. The effectiveness of the verification and validation process depends upon the number of errors found and rectified before releasing the software to the customer side. This in turn depends upon the quality of test cases generated. The solution is to choose the most important and effective test cases and removing the redundant and unnecessary ones; which in turn leads to test case optimization. To achieve test case optimization, this paper proposed a heuristics guided population based search approach namely Hybrid Genetic Algorithm (HGA) which combines the features of Genetic Algorithm (GA) and Local Search (LS) techniques to reduce the number of test cases by improving the quality of test cases during the solution generation process. Also, to evaluate the performance of the proposed approach, a comparative study is conducted with Genetic Algorithm and Bacteriologic Algorithm (BA) and concluded that, the proposed HGA based approach produces better results. Algorithms Hybrid Genetic Algorithm (HGA) Genetic Algorithm (GA) Bacteriologic Algorithm (BA) Reduction Optimization Approach Issues Both simple optimization techniques as well as population based search heuristics have only less consideration on fault revealing capability of the test cases in test case optimization problem however best qualities of GA, BA and local search techniques can be combined to get a better algorithm. Type of research Experiment/ Case Study Any Comparison? Yes The performance of GA, BA and HGA are evaluated based on the fault revealing capability and path coverage of the test cases. GA produces 143 non linear suboptimal solution and usually strikes up at local optima, BA provides linear and optimal solutions, and HGA produces near global optimal and linear optimal solutions with rapid convergence. Finally, it has been proved that HGA outperforms the other two population based search approaches. Fitness metrics Path Coverage Factors effecting the performance GA usually strike up in local optima non linear suboptimal solution Number of Generations 13 Quality score Instrument Reference No. 56 Title A variable strength interaction test suites generation strategy using Particle Swarm Optimization Authors Bestoun S. Ahmed, Kamal Z. Zamli Published In The Journal of Systems and Software Year 2011 Abstract This paper highlights a novel strategy for generating variable-strength (VS) interaction test suites, called VS Particle Swarm Test Generator (VS-PSTG). As the name suggests, VS-PSTG adopts Particle Swarm Optimization to ensure optimal test size reduction. To determine its efficiency in terms of the size of the generated test suite, VS-PSTG was subjected to well-known benchmark configurations. Comparative results indicate that VS-PSTG gives competitive results as compared to existing strategies. An empirical case study was conducted on a non-trivial software system to show the applicability of the strategy and to determine the effectiveness of the generated test suites to detect faults. Algorithms Particle Swarm Optimization Optimization Approach Generation Issues The particles iteratively move around the search space. During this movement, there is a chance to produce non-integer velocities for the particles. Thus, the position of such particle dimension becomes a non-integer number. To solve this problem, the algorithm rounds the position to the nearest integer number. Type of research Experiment Any Comparison? No Overall, VS-PSTG generates the optimal test size in most cases. It should also be noted that even though in some cases VS-PSTG results may not 144 the best, the results obtained were still competitive enough. Fitness metrics Fault Detection Factors effecting the performance -- Quality score 6.5 Instrument Reference No. 57 Title Software Reliability Testing Covering Subsystem Interactions Authors Matthias Meitner and Francesca Saglietti Published In Proceedings of the 16th international GI/ITG conference on Measurement, Modeling, and Evaluation of Computing Systems and Dependability and Fault Tolerance Year 2012 Abstract This article proposes a novel approach to quantitative software reliability assessment ensuring high interplay coverage for software components and decentralized (sub-) systems. The generation of adequate test cases is based on the measurement of their operational representativeness, stochastic independence and interaction coverage. The underlying multi-objective optimization problem is solved by genetic algorithms. The resulting automatic test case generation supports the derivation of conservative reliability measures as well as high interaction coverage. The practicability of the approach developed is finally demonstrated in the light of an interactionintensive example. Algorithms Genetic Algorithm Optimization Approach Reduction Issues Random generation is carried out only once therefore it cannot guarantee to cover all required testing scenarios. In fact, even assuming an accurate knowledge of the operational profile, the resulting randomly generated test case sample may still deviate from statistical expectation Type of research Experiment Any Comparison? No Fitness metrics Def-use-pair Covered Factors effecting the performance -- Quality 6 Instrument -- 145 score Reference No. 58 Title Testing an Intentional Naming Scheme Using Genetic Algorithms Authors Sarfaraz Khurshid Published In T. Margaria and W. Yi (Eds.): TACAS 2001, LNCS 2031, pp. 358-372, 2001. c Springer-Verlag Berlin Heidelberg Year 2001 Abstract Various attempts have been made to use genetic algorithms (GAs) for software testing, a problem that consumes a large amount of time and effort in software development. We demonstrate the use of GAs in automating testing of complex data structures and methods for manipulating them, which to our knowledge has not been successfully displayed before on non-trivial software structures. We evaluate the effectiveness of our GA-based test suite generation technique by applying it to test the design and implementation of the Intentional Naming System (INS), a new scheme for resource discovery and service location in a dynamic networked environment. Our analysis using GAs reveals serious problems with both the design of INS and its inventors' implementation. Algorithms Genetic Algorithm Optimization Approach Generation Issues We evaluate the effectiveness of our GA-based test suite generation technique by applying it to test the design and implementation of the Intentional Naming System (INS) Type of research Experiment Any Comparison? No Fitness metrics Statement Coverage Factors effecting the performance -- Quality score 6.5 Instrument -- Reference No. 59 Title Automatic, evolutionary test data generation for dynamic software testing 146 Authors Anastasis A. Sofokleous, Andreas S. Andreou Published In The Journal of Systems and Softwares Year 2008 Abstract This paper proposes a dynamic test data generation framework based on genetic algorithms. The framework houses a Program Analyser and a Test Case Generator, which intercommunicate to automatically generate test cases. The Program Analyser extracts statements and variables, isolates code paths and creates control flow graphs. The Test Case Generator utilises two optimization algorithms, the Batch-Optimistic (BO) and the Close-Up (CU), and produces a near to optimum set of test cases with respect to the edge/condition coverage criterion. The efficacy of the proposed approach is assessed on a number of programs and the empirical results indicate that its performance is significantly better compared to existing dynamic test data generation methods. Algorithms Genetic algorithms with Close-Up (CU) algorithm and Batch-Optimistic (BO) algorithm random gradient descent standard genetic and differential genetic (diffGA) Generation Optimization Approach Issues A special form of fitness functions is required to reflect dataflow instead of control flow based evolutions. Type of research Experiment Any Comparison? Yes Fitness metrics Path Coverage Factors effecting the performance -- Quality score 9.5 Instrument The comparison suggested the superiority of the proposed scheme over the rest of the algorithms Reference No. 60 Title Evolutionary mutation testing Authors J.J. Dominguez-Jimenez, A. Estero-Botaro, A. Garcia-Dominguez, I. MedinaBulo 147 Published In Information and Software Technology Year 2011 Abstract Context: Mutation testing is a testing technique that has been applied successfully to several programming languages. However, it is often regarded as computationally expensive, so several refinements have been proposed to reduce its cost. Moreover, WS-BPEL compositions are being widely adopted by developers, but present new challenges for testing, since they can take much longer to run than traditional programs of the same size. Therefore, it is interesting to reduce the number of mutants required. Objective: We present Evolutionary Mutation Testing (EMT), a novel mutant reduction technique for finding mutants that help derive new test cases that improve the quality of the initial test suite. It uses evolutionary algorithms to reduce the number of mutants that are generated and executed with respect to the exhaustive execution of all possible mutants, keeping as many difficult to kill and potentially equivalent mutants (strong mutants) as possible in the reduced set. Method: To evaluate EMT we have developed GAmera, a mutation testing system powered by a co-evolutive genetic algorithm. We have applied this system to three WS-BPEL compositions to estimate its effectiveness, comparing it with random selection. Results: The results obtained experimentally show that EMT can select all strong mutants generating 15% less mutants than random selection in over 20% less time for complex compositions. When generating a percentage of all mutants, EMT finds on average more strong mutants than random selection. This has been confirmed to be statistically significant within a 99.9% confidence interval. Conclusions: EMT has reduced for the three tested compositions the number of mutants required to select those which are useful to derive new test cases that improve the quality of the test suite. The directed search performed by EMT makes it more effective than random selection, especially as compositions become more complex and the search space widens. Algorithms Genetic algorithm Random Optimization Approach Reduction Issues We present Evolutionary Mutation Testing (EMT), a novel mutant reduction technique for finding mutants that help derive new test cases that improve the quality of the initial test suite. It uses evolutionary algorithms to reduce the number of mutants that are generated and executed with respect to the exhaustive execution of all possible mutants, keeping as many difficult to kill and potentially equivalent mutants (strong mutants) as possible in the reduced set 148 Type of research Experiment Any Comparison? Yes Fitness metrics Branch coverage Factors effecting the performance Parameter setting Quality score 14 Instrument EMT is more effective than random selection at selecting all the strong mutants, especially with complex compositions. Reference No. 61 Title Iterative automatic test generation method for telecommunication protocols Authors G. Kova´cs, Z. Pap, G. Csopaki, K. Tarnay Published In Computer Standards & Interfaces Year 2005 Abstract Standardized languages used for protocol specification provide an excellent basis for both automatic and manual test generation. Test generation is composed of two steps, the derivation of test cases from the specification, and the selection of the test cases to be included in the final test suite in order to reduce its execution time. This article proposes a new method that aims to decrease the total number of test cases generated automatically by a test derivation algorithm and at the same time to reduce the computation requirements for the test selection procedure. It creates an iteration cycle on the model of evolutionary algorithms, where the test derivation and selection are done simultaneously. In each cycle first a “small” test suite is derived then optimized, evaluated and finally compared to the best suite so far. It is kept as the best suite, if it is found better according to some well-defined evaluation criteria and test suite metrics. This iteration condition is based on the test selection criteria. The article presents an experiment where iterative algorithms are compared to two simple test derivation methods from different aspects. Algorithms random trace test derivation algorithm random event sequences the proposed iterative test generation method its enhancement with the immediate test selection its extension with memory Selection /Generation Optimization Approach Issues This article proposes a new method that aims to decrease the total number of test cases generated automatically by a test derivation algorithm and at the same time to reduce the computation requirements for the test selection 149 procedure Type of research Experiment Any Comparison? Yes The fault detection ratio of the random trace method was similar to the random sequence based iterative algorithms. Though the iterative algorithms required more time for smaller protocols, they were found less sensitive for the increase in system complexity. In case of more complex protocols the iterative algorithms were found to decrease the total generation time of an optimized test suite compared to the methods performing test generation and selection in two separate steps. The iterative techniques also provided similar– or slightly better–fault coverage and similar number of final test cases. Fitness metrics Fault detection Factors effecting the performance Complex and simple test cases Quality score 10.5 Instrument Reference No. 62 Title Scatter Search in software testing, comparison and collaboration with Estimation of Distribution Algorithms Authors Ramo´n Sagarna, Jose A. Lozano Published Abstract In European Journal of Operational Research Year 2004 One of the main tasks software testing includes is the generation of the test cases to be used during the test. Due to its expensive cost, the automatization of this task has become one of the key issues in the area. The field of Evolutionary Testing deals with this problem by means of metaheuristic search techniques. An Evolutionary Testing based approach to the automatic generation of test inputs is presented. The approach developed involves different possibilities of the usage of two heuristic optimization methods, namely, Scatter Search and Estimation of Distribution Algorithms. The possibilities comprise pure Scatter Search options and Scatter Search—Estimation of Distribution Algorithm collaborations. Several experiments were conducted in order to evaluate and compare the approaches presented with those in the literature. The analysis of the experimental results raises interesting conclusions, showing these alternatives as a promising option to tackle this problem. 150 Algorithms Optimization Approach Estimation of Distribution Algorithms (EDA) Scatter Search (SS) Combination of Scatter Search and EDA (SS-EDA) Generation Issues The approach here exposed makes use of the optimization methods above in two different ways. On the one hand, pure SS alternatives are presented in order to evaluate their performance and compare them with the approaches in previous works. On the other hand, an SS–EDA collaborative approach is included. As far as we know, this is the first time that SS is applied to the test case generation problem, and the first time that SS and EDAs are combined. Type of research Experiment Any Comparison? Yes Fitness metrics Branch Coverage Factors effecting the performance Parameter value Quality score 13.5 Instrument The SS and EDAs combination offered encouraging results. The collaborative approach outperformed the results of the EDA generator in five of the test programs, and the results of the SS generator in four programs. 151
© Copyright 2025