Automated Test Data Generation using Search Based Software Engineering
AST '07 Proceedings of the Second International Workshop on Automation of Software Test
Towards Automation of Testing High-Level Security Properties
Proceeedings of the 22nd annual IFIP WG 11.3 working conference on Data and Applications Security
Empirical evaluation of a nesting testability transformation for evolutionary testing
ACM Transactions on Software Engineering and Methodology (TOSEM)
Search-based failure discovery using testability transformations to generate pseudo-oracles
Proceedings of the 11th Annual conference on Genetic and evolutionary computation
Using program data-state scarcity to guide automatic test data generation
Software Quality Control
Testability transformation: program transformation to improve testability
Formal methods and testing
Why the virtual nature of software makes it ideal for search based optimization
FASE'10 Proceedings of the 13th international conference on Fundamental Approaches to Software Engineering
Test data regeneration: generating new test data from existing test data
Software Testing, Verification & Reliability
Proceedings of the 2012 International Symposium on Software Testing and Analysis
Hi-index | 0.00 |
Source-code based test data generation is a process of finding program input on which a selected element, e.g., a target statement, is executed. There exist many test generation methods that automatically find a solution to the test generation problem. The existing methods work well for many programs. However, they may fail or are inefficient for programs with complex logic and intricate relationships between program elements. In this paper we present a testability transformation that transforms programs so that the chances of finding a solution are increased when the existing methods fail using only the original program. In our approach data dependence analysis is used to identify statements in the program that affect computation of the fitness function associated with the target statement. The transformed program contains only these statements, and it is used to explore different ways the fitness may be computed. These explorations are inexpensive when using the transformed program as compared to explorations using the original program. As a result, executions in the transformed program that lead to the evaluation of the fitness function to the target value are identified. The identified executions are then used to guide the search in the original program to find an input on which the target statement is executed. In this paper, the approach is evaluated using a case study which demonstrates the potential for this testability transformation to improve the efficacy of the test generation.