Java Virtual Machine Specification
Java Virtual Machine Specification
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
Evolutionary testing of classes
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
Using evolutionary algorithms for the unit testing of object-oriented software
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
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
Search based software testing of object-oriented containers
Information Sciences: an International Journal
Proceedings of the 10th annual conference companion on Genetic and evolutionary computation
Evolutionary testing of software with function-assigned flags
Journal of Systems and Software
Mutation-driven generation of unit tests and oracles
Proceedings of the 19th international symposium on Software testing and analysis
Proceedings of the 33rd International Conference on Software Engineering
FlagRemover: A testability transformation for transforming loop-assigned flags
ACM Transactions on Software Engineering and Methodology (TOSEM)
Evolutionary Generation of Whole Test Suites
QSIC '11 Proceedings of the 2011 11th International Conference on Quality Software
Test suite generation with memetic algorithms
Proceedings of the 15th annual conference on Genetic and evolutionary computation
Hi-index | 0.00 |
Bytecode as produced by modern programming languages is well suited for search-based testing: Different languages compile to the same bytecode, bytecode is available also for third party libraries, all predicates are atomic and side-effect free, and instrumentation can be performed without recompilation. However, bytecode is also susceptible to the flag problem; in fact, regular source code statements such as floating point operations might create unexpected flag problems on the bytecode level. We present an implementation of state-of-the-art testability transformation for Java bytecode, such that all Boolean values are replaced by integers that preserve information about branch distances, even across method boundaries. The transformation preserves both the original semantics and structure, allowing it to be transparently plugged into any bytecode-based testing tool. Experiments on flag problem benchmarks show the effectiveness of the transformation, while experiments on open source libraries show that although this type of problem can be handled efficiently it is less frequent than expected.