Specification and transformation of programs: a formal approach to software development
Specification and transformation of programs: a formal approach to software development
An integrated system for automatically generating test data
ISCI '90 Proceedings of the first international conference on systems integration on Systems integration '90
Automated Software Test Data Generation
IEEE Transactions on Software Engineering
Experimental results from an automatic test case generator
ACM Transactions on Software Engineering and Methodology (TOSEM)
The chaining approach for software test data generation
ACM Transactions on Software Engineering and Methodology (TOSEM)
An introduction to genetic algorithms
An introduction to genetic algorithms
Automated program flaw finding using simulated annealing
Proceedings of the 1998 ACM SIGSOFT international symposium on Software testing and analysis
The dynamic domain reduction procedure for test data generation
Software—Practice & Experience
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
A System for Assisting Program Transformation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Symbolic execution and program testing
Communications of the ACM
The evolution of programs: a system for automatic program modification
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Testing real-time systems using genetic algorithms
Software Quality Control
Test and Evaluation by Genetic Algorithms
IEEE Expert: Intelligent Systems and Their Applications
Generating Software Test Data by Evolution
IEEE Transactions on Software Engineering
Fitness Function Design To Improve Evolutionary Structural Testing
GECCO '02 Proceedings of the Genetic and Evolutionary Computation Conference
Instrumenting Programs With Flag Variables For Test Data Search By Genetic Algorithms
GECCO '02 Proceedings of the Genetic and Evolutionary Computation Conference
Exploring Very Large State Spaces Using Genetic Algorithms
TACAS '02 Proceedings of the 8th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs
CC '02 Proceedings of the 11th International Conference on Compiler Construction
A Comparison of Static Analysis and Evolutionary Testing for the Verification of Timing Constraints
RTAS '98 Proceedings of the Fourth IEEE Real-Time Technology and Applications Symposium
Testing the Results of Static Worst-Case Execution-Time Analysis
RTSS '98 Proceedings of the IEEE Real-Time Systems Symposium
A Survey of Program Slicing Techniques.
A Survey of Program Slicing Techniques.
Program slices: formal, psychological, and practical investigations of an automatic program abstraction method
IEEE Transactions on Software Engineering
Evolutionary testing in the presence of loop-assigned flags: a testability transformation approach
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
DART: directed automated random testing
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Stress testing real-time systems with genetic algorithms
GECCO '05 Proceedings of the 7th annual conference on Genetic and evolutionary computation
Search-based software test data generation: a survey: Research Articles
Software Testing, Verification & Reliability
CUTE: a concolic unit testing engine for C
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
A unified fitness function calculation rule for flag conditions to improve evolutionary testing
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Evolutionary Testing of Unstructured Programs in the Presence of Flag Problems
APSEC '05 Proceedings of the 12th Asia-Pacific Software Engineering Conference
Using Program Data-State Diversity in Test Data Search
TAIC-PART '06 Proceedings of the Testing: Academic & Industrial Conference on Practice And Research Techniques
The Current State and Future of Search Based Software Engineering
FOSE '07 2007 Future of Software Engineering
Proceedings of the 2007 international symposium on Software testing and analysis
Improving Evolutionary Testing in the Presence of Function-Assigned Flags
TAICPART-MUTATION '07 Proceedings of the Testing: Academic and Industrial Conference Practice and Research Techniques - MUTATION
A System to Generate Test Data and Symbolically Execute Programs
IEEE Transactions on Software Engineering
Handling dynamic data structures in search based testing
Proceedings of the 10th annual conference on Genetic and evolutionary computation
Automated Test Data Generation for Coverage: Haven't We Solved This Problem Yet?
TAIC-PART '09 Proceedings of the 2009 Testing: Academic and Industrial Conference - Practice and Research Techniques
Evolutionary testing of flag conditions
GECCO'03 Proceedings of the 2003 international conference on Genetic and evolutionary computation: PartII
Pex: white box test generation for .NET
TAP'08 Proceedings of the 2nd international conference on Tests and proofs
KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs
OSDI'08 Proceedings of the 8th USENIX conference on Operating systems design and implementation
Execution generated test cases: how to make systems code crash itself
SPIN'05 Proceedings of the 12th international conference on Model Checking Software
An empirical investigation into branch coverage for C programs using CUTE and AUSTIN
Journal of Systems and Software
Bytecode testability transformation
SSBSE'11 Proceedings of the Third international conference on Search based software engineering
Test data generation approach for basis path coverage
ACM SIGSOFT Software Engineering Notes
Search based software engineering: techniques, taxonomy, tutorial
Empirical Software Engineering and Verification
Hi-index | 0.01 |
Search-Based Testing is a widely studied technique for automatically generating test inputs, with the aim of reducing the cost of software engineering activities that rely upon testing. However, search-based approaches degenerate to random testing in the presence of flag variables, because flags create spikes and plateaux in the fitness landscape. Both these features are known to denote hard optimization problems for all search-based optimization techniques. Several authors have studied flag removal transformations and fitness function refinements to address the issue of flags, but the problem of loop-assigned flags remains unsolved. This article introduces a testability transformation along with a tool that transforms programs with loop-assigned flags into flag-free equivalents, so that existing search-based test data generation approaches can successfully be applied. The article presents the results of an empirical study that demonstrates the effectiveness and efficiency of the testability transformation on programs including those made up of open source and industrial production code, as well as test data generation problems specifically created to denote hard optimization problems.