DocumentCode :
1566849
Title :
Using a genetic algorithm and formal concept analysis to generate branch coverage test data automatically
Author :
Khor, Susan ; Grogono, Peter
Author_Institution :
Dept. of Comput. Sci., Concordia Univ., Montreal, Que.
fYear :
2004
Firstpage :
346
Lastpage :
349
Abstract :
Automatic test generators (ATGs) are an important support tool for large-scale software development. Contemporary ATGs include JTest that does white box testing down to the method level only and black box testing if a specification exists, and AETG that tests pairwise interactions among input variables. The first automatic test generation approaches were static, based on symbolic execution (Clarke, 1976). Korel suggested a dynamic approach to automatic test data generation using function minimization and directed search (Korel, 1990). A dynamic approach can handle array, pointer, function and other dynamic constructs more accurately than a static approach but it may also be more expensive since the program under test is executed repeatedly. Subsequent ATGs explored the use of genetic algorithms (Jones et al., 1996; Michael et al., 2001; Pargas et al., 1999) and simulated annealing (Tracey et al., 1998). These ATGs address the problem of producing test data for low level code coverage like statement, branch and condition/decision and depend on branch function (Korel, 1990) style instrumentation (Jones et al., 1996; Michael et al., 2001) and/or the program graph (Jones et al., 1996; Pargas et al., 1999). Unlike previous work, our ATG, called genet, produces test data for branch coverage with simpler instrumentation than branch functions, does not use program graphs, and is programming language independent, genet uses a genetic algorithm (GA) (Holland, 1975) to search for tests and formal concept analysis (FCA) (Ganter and Wille, 1999) to organize the relationships between tests and their execution traces. The combination of GA with FCA is novel. Further, genet extends the opportunistic approach of GADGET (Michael et al., 2001) by targeting several uncovered branches simultaneously. The relationships that genet learns provides useful insights for test selection, test maintenance and debugging
Keywords :
automatic test pattern generation; data flow analysis; formal specification; genetic algorithms; object-oriented programming; program debugging; program testing; simulated annealing; GADGET; JTest; automatic branch coverage test data generation; automatic test generators; black box testing; branch function; branch-and-condition decision; directed search; formal concept analysis; function minimization; genet; genetic algorithm; large-scale software development; low level code coverage like statement; program debugging; program graph; program testing; programming language independent; simulated annealing; style instrumentation; symbolic execution; test maintenance; test selection; white box testing; Algorithm design and analysis; Automatic testing; Computer languages; Genetic algorithms; Input variables; Instruments; Large-scale systems; Programming; Simulated annealing; Software testing;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Automated Software Engineering, 2004. Proceedings. 19th International Conference on
Conference_Location :
Linz
ISSN :
1938-4300
Print_ISBN :
0-7695-2131-2
Type :
conf
DOI :
10.1109/ASE.2004.1342761
Filename :
1342761
Link To Document :
بازگشت