Empirically Evaluating Genetic Algorithms For Generating Test Suites For Web Applications (thesis)

View/ Open
Author
Ahmad, Hammad
Subject
Washington and Lee University -- Honors in Computer Science
Genetic algorithms
Application software -- Testing
Computer software -- Testing
Metadata
Show full item recordDescription
Thesis; [FULL-TEXT FREELY AVAILABLE ONLINE] Hammad Ahmad is a member of the Class of 2019 of Washington and Lee University. As web applications increase in popularity, the need for extensively testing the web applications has become greater than ever. Developers are increasingly pressed to ensure that the number of faults in a web application is kept to a minimum to avoid a potential loss in the number of users of the web application. Despite the increasing importance of identifying faults and fixing them, testing web applications continues to be a very time-consuming task. As such, there exists a dire need for automating the process of testing to reveal potential faults. One such approach to testing is the generation of test suites representative of actual user behavior. However, systematic, empirical evaluation of test suites continues to be a largely unexplored area.
I propose the use of the genetic algorithm to generate test suites for web applications by first parsing user access logs to create a set of user sessions, and then modeling those user sessions as genes, chromosomes, and genomes to be used by the genetic algorithm to generate test suites representative of user behavior. I also explore the various possibilities with a genetic algorithm approach to generating test suites, and assess what effect tuning various parameters, such as genetic operator thresholds, has on the test suite produced at the end of the evolutionary run. I develop and use a framework to empirically evaluate the cost-effectiveness of the generated test suites output by the genetic algorithm. The framework employs code coverage as an evaluation metric to assess the quality of the generated test suites in particular, and the efficacy of the testing approach in general. I juxtapose the use of the genetic algorithm to generate test suites against another well-known, comparable approach. My results indicate that using the genetic algorithm can decrease the size of the test suite significantly while maintaining most of the testing functionality. In other words, the genetic algorithm can be used to create cost-effective test suites for web applications.