Abstract
In recent years, search-based software testing (SBST) is the active research topic in software testing. SBST is the process of generating test cases that use metaheuristics for optimization of a task in the framework of software testing to solve difficult NP-hard problems. The best fitness results must be found with the heuristic search among many possibilities for a more cost-effective testing process and automate the process of generating test cases. Although search-based test data generation is a field of interest, some challenges remain unknown. The main objective of this survey is to find the main topics and trends in this emerging field of search-based software testing by examining the methods and the literature of software testing. A review of earlier studies of search-based software testing from the year 1996 to 2016 is discussed with the application of metaheuristics for the optimization of software testing.
Similar content being viewed by others
References
Afzal W, Torkar R, Feldt R (2009) A systematic review of search-based testing for non-functional system properties. Inf Softw Technol 51:957–976
Afzal W, Alone S, Glocksien K, Torkar R (2016) Software test process improvement approaches. J Syst Softw 111:1–33
Alander J, Mantere T, Turunen P (1998) Genetic algorithm based software testing. Springer, Vienna, pp 325–328
Alba E, Chicano FJ (2006) Software testing with evolutionary strategies. Springer, Vienna, pp 50–65
Alégroth E, Feldt R, Kolström P (2016) Maintenance of automated test suites in industry: an empirical study on Visual GUI Testing. Inf Softw Technol 73:66–80
Ali S, Briand LC, Hemmati H, Rajwinder K, Panesar-Walawege RK (2010) A systematic review of the application and empirical investigation of search-based test case generation. IEEE Trans Softw Eng 36(6):742–762
Arcuri A (2010) It does matter how you normalise the branch distance in search based software testing. IEEE, pp 205–214
Bauersfeld S, Wappler S, Wegener J (2011) A metaheuristic approach to test sequence generation for applications with a GUI. Springer, vol 69(56), pp 173–187
Bertolino A (2007) Software testing research. In: Achievements, challenges, dreams. IEEE, pp 85–103
Daka E, Campos J, Fraser G, Dorn J, Weimer W (2015) Modeling readability to improve unit tests. ACM, pp 107–118
Díaz E, Tuya J, Blanco R (2003) Automated software testing using a metaheuristic technique based on Tabu search. IEEE, pp 310–313
Dobuneh N, Raeisi M, Jawawi DN, Ghazali M, Malakooti MV (2014) Development test case prioritization technique in regression testing based on hybrid criteria. IEEE, pp 301–305
Eickelmann NS, Richardson DJ (1996) An evaluation of software test environment architectures. IEEE, pp 353–364
El-Serafy A, El-Sayed G, Salama C, Wahba(2015) An enhanced genetic algorithm for MC/DC test data generation. IEEE, pp 1–8
Ferguson R, Korel B (1996) The chaining approach for software test data generation. ACM Trans Softw Eng Methodol 5(1):63–86
Fin A, Fummi F, Pravadelli G, Amleto (2001) A multi-language environment for functional test generation. IEEE, pp 821–829
Fraser G, Zeller A (2012) Mutation-driven generation of unit tests and oracles. IEEE Trans Softw Eng 38(2):278–292
Fraser G, Arcuri A (2012) Sound empirical evidence in software testing. IEEE, pp 178–188
Gallagher MJ, Narasimhan VL (1997) Adtest: a test data generation suite for ada software systems. IEEE Trans Softw Eng 23(8):473–484
Gotlieb A, Botella B, Rueher M (1998) Automatic test data generation using constraint solving techniques. ACM SIGSOFT 23(2)
Gupta N, Mathur AP, Soffa ML (1998) Automated test data generation using an iterative relaxation method. ACM SIGSOFT Softw Eng Notes 23(6):231–244
Harman M (2007) Search based software engineering for program comprehension. Program Comprehension. IEEE
Harman M (2008) Open problems in testability transformation. IEEE, pp 196–209
Harman M, Hassoun Y, Lakhotia K, McMinn P, Wegener J (2007) The impact of input domain reduction on search-based test data generation. ACM SIGSOFT, pp 155–164
Harman M, Jia Y, Zhang Y (2015) Achievements, open problems and challenges for search based software testing. In: Software Testing, Verification and Validation (ICST), 2015 IEEE 8th International Conference. IEEE, pp 1–12
Harman M, McMinn P (2010) A theoretical and empirical study of search-based testing: Local, global, and hybrid search. IEEE, vol 36(2), pp 226–247
Harman M, McMinn P, De Souza JT, Yoo S (2012) Search based software engineering: techniques, taxonomy, tutorial. Springer, vol 7007, pp 1–59
Kapfhammer GM, McMinn P, Chris J (2013) Wright. Search-based testing of relational schema integrity constraints across multiple database management systems. IEEE. pp 31–40
Korel B (1996) Automated test data generation for programs with procedures. ACM SIGSOFT, vol 21(3), pp 209–215
Korel B, Harman M, Chung S, Apirukvorapinit P, Gupta R, Zhang Q (2005) Data dependence based testability transformation in automated test generation. IEEE, pp 245–254
Kos T, Mernik M, Kosar T (2016) Test automation of a measurement system using a domain-specific modelling language. J Syst Softw 111:74–88
Kotelyanskii A, Kapfhammer GM (2014) Parameter tuning for search-based test-data generation revisited: Support for previous results. IEEE, pp 79–84
Kuhn DR, Wallace DR, Gallo AM Jr (2004) Software fault interactions and implications for software testing. IEEE Trans Softw Eng 30(6):418–421
Lakhotia K McMinn P, Harman M (2009) Automated test data generation for coverage: Haven’t we solved this problem yet? IEEE, pp 95–104
Lefticaru R, Ipate F (2008) Functional search-based testing from state machines. IEEE, pp 525–528
Mahali P, Acharya AA, Mohapatra DP (2016) Test case prioritization using association rule mining and business criticality test value. Springer, vol 2, pp 335–345
Malhotra R, Khari M (2013) Heuristic search-based approach for automated test data generation: a survey. Int J Bio-Inspired Comput 5(1):1–18
Marín B, Gallardo C, Quiroga D, Giachetti G, Serral E (2016) Testing of model-driven development applications. Springer, New York, pp 1–29
Martins E, Sabião SB, Ambrosio AM (1999) ConData: a tool for automating specification-based test case generation for communication systems. Softw Qual J 8(4):303–320
McMinn P, Binkley D, Harman M (2009) Empirical evaluation of a nesting testability transformation for evolutionary testing. ACM Trans Softw Eng Methodol 18(3):1–27
McMinn P, Harman M, Lakhotia K, Hassoun Y, Wegener J (2012) Input domain reduction through irrelevant variable removal and its effect on local, global, and hybrid search-based structural test data generation. IEEE Trans Softw Eng 38(2):453–477
McMinn P, Harman M, Binkley D, Tonella P (2006) The species per path approach to search based test data generation. ACM, pp 13–24
McMinn P, Shahbaz M, Stevenson M (2012) Search-based test input generation for string data types using the results of web queries. IEEE, pp 141–150
Michael CC, McGraw G (1998) Automated software test data generation for complex programs. IEEE, pp 136–146
Michael CC, McGraw GE, Schatz MA, Walton CC (1997) Genetic algorithms for dynamic test data generation. IEEE, pp 307–308
Michael CC, McGraw G, Schatz MA (2001) Generating software test data by evolution. Ser Softw Eng Knowl Eng 27(12):1085–1110
Miller W, Spooner D (1976) Automatic generation of floating point test data. IEEE Trans Softw Eng 2(3):223–226
Moadab S, Rashidi H (2016) Automatic path-oriented test data generation by boundary hyper cuboids. J King Saud Univ Comput Inf Sci 28(1):82–97
Nguyen Tony, Nassif N (2016) Optimization of HVAC systems using genetic algorithm. Springer, New York, pp 203–209
Nguyen TB, Delaunay M, Robach C (2005) Testability analysis of data-flow software. Electron Notes Theor Comput Sci 116:213–225
Patrick M (2016) Metaheuristic optimisation and mutation-driven test data generation. Springer, pp 89–115
Prabu M, Narasimhan D, Raghuram S (2016) An effective tool for optimizing the number of test paths in data flow testing for anomaly detection. Springer, pp 505–518
Priyanka, Inderveer, Rana A (2016) Cloud-based automatic test data generation framework. Elsevier, pp 1–33
Rauf A, Anwar S, Jaffer MA (2010) Automated GUI test coverage analysis using GA. IEEE, pp 1057–1062
Rogstad E, Briand L (2016) Cost-effective strategies for the regression testing of database applications: case study and lessons learned. J Syst Softw 113:257–274
Salman YD, Hashim NL (2016) Automatic test case generation from UML state chart diagram: a survey. Springer, vol 362, pp 123–134
Shahbaz M, McMinn P, Stevenson M (2015) Automatic generation of valid and invalid test data for string validation routines using web searches and regular expressions. Sci Comput Program 97:405–425
Shah S, Sudarshan S, Kajbaje S, Patidar S, Gupta BP, Vira D (2011) Generating test data for killing SQL mutants: a constraint-based approach. IEEE, pp 1175–1186
Shen X, Wang Q, Wang P, Zhou B (2009) Automatic generation of test case based on GATS algorithm. IEEE, pp 496–500
Sofokleous AA, Andreas AS (2007) Batch-optimistic test-cases generation using genetic algorithms. IEEE, vol 1, pp 157–164
Sofokleous AA, Andreou AS (2008) Automatic, evolutionary test data generation for dynamic software testing. J Syst Softw 81(11):1883–1898
Utting M, Legeard B, Bouquet F, Fourneret E, Peureux F, Vernotte A (2016) Recent advances in model-based testing. Adv Comput 101:53–120
Acknowledgements
No funding is provided for the preparation of manuscript.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflict of interest
Authors Manju Khari and Dr. Prabhat Kumar declare that they have no conflict of interest.
Ethical approval
This article does not contain any studies with human participants or animals performed by any of the authors.
Additional information
Communicated by V. Loia.
Rights and permissions
About this article
Cite this article
Khari, M., Kumar, P. An extensive evaluation of search-based software testing: a review. Soft Comput 23, 1933–1946 (2019). https://doi.org/10.1007/s00500-017-2906-y
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00500-017-2906-y