Automated Software Test Data Generation
IEEE Transactions on Software Engineering
Symbolic execution and program testing
Communications of the ACM
CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Metrics Are Fitness Functions Too
METRICS '04 Proceedings of the Software Metrics, 10th International Symposium
DART: directed automated random testing
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
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
Applying particle swarm optimization to software testing
Proceedings of the 9th annual conference on Genetic and evolutionary computation
The impact of input domain reduction on search-based test data generation
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Automatic Generation of Floating-Point Test Data
IEEE Transactions on Software Engineering
Observations in using parallel and sequential evolutionary algorithms for automatic software testing
Computers and Operations Research
A tabu search algorithm for structural software testing
Computers and Operations Research
Functional Search-based Testing from State Machines
ICST '08 Proceedings of the 2008 International Conference on Software Testing, Verification, and Validation
Evolutionary White-Box Software Test with the EvoTest Framework: A Progress Report
ICSTW '09 Proceedings of the IEEE International Conference on Software Testing, Verification, and Validation Workshops
SSBSE '09 Proceedings of the 2009 1st International Symposium on Search Based Software Engineering
Heuristics for Scalable Dynamic Test Generation
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
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
Pex: white box test generation for .NET
TAP'08 Proceedings of the 2nd international conference on Tests and proofs
A Theoretical and Empirical Study of Search-Based Testing: Local, Global, and Hybrid Search
IEEE Transactions on Software Engineering
It Does Matter How You Normalise the Branch Distance in Search Based Software Testing
ICST '10 Proceedings of the 2010 Third International Conference on Software Testing, Verification and Validation
SSBSE '10 Proceedings of the 2nd International Symposium on Search Based Software Engineering
IEEE Transactions on Software Engineering
Software testing with evolutionary strategies
RISE'05 Proceedings of the Second international conference on Rapid Integration of Software Engineering Techniques
Execution generated test cases: how to make systems code crash itself
SPIN'05 Proceedings of the 12th international conference on Model Checking Software
A simple generic library for c
ICSR'06 Proceedings of the 9th international conference on Reuse of Off-the-Shelf Components
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
Estimating software testing complexity
Information and Software Technology
Hi-index | 0.00 |
Context: Despite the large number of publications on Search-Based Software Testing (SBST), there remain few publicly available tools. This paper introduces AUSTIN, a publicly available open source SBST tool for the C language. The paper is an extension of previous work [1]. It includes a new hill climb algorithm implemented in AUSTIN and an investigation into the effectiveness and efficiency of different pointer handling techniques implemented by AUSTIN's test data generation algorithms. Objective: To evaluate the different search algorithms implemented within AUSTIN on open source systems with respect to effectiveness and efficiency in achieving branch coverage. Further, to compare AUSTIN against a non-publicly available, state-of-the-art Evolutionary Testing Framework (ETF). Method: First, we use example functions from open source benchmarks as well as common data structure implementations to check if the decision procedure for pointer inputs, introduced in this paper, differs in terms of effectiveness and efficiency compared to a simpler alternative that generates random memory graphs. A second empirical study formulates two alternate hypotheses regarding the effectiveness and efficiency of AUSTIN compared to the ETF. These hypotheses are tested using a paired Wilcoxon test. Results and Conclusion: The first study highlights some practical problems with the decision procedure for pointer inputs described in this paper. In particular, if the code under test contains insufficient guard statements to enforce constraints over pointers, then using a constraint solver for pointer inputs may be suboptimal compared to a method that generates random memory graphs. The programs used in the second study do not require any constraint solving for pointer inputs and consist of eight non-trivial, real-world C functions drawn from three embedded automotive software modules. For these functions, AUSTIN is competitive compared to the ETF, achieving an equal or higher branch coverage for six of the functions. In addition, for functions where AUSTIN's branch coverage is equal or higher, AUSTIN is more efficient than the ETF.