An Applicable Family of Data Flow Testing Criteria
IEEE Transactions on Software Engineering
The evaluation of program-based software test data adequacy criteria
Communications of the ACM
Test input generation with java PathFinder
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
Software Testing and Analysis: Process, Principles and Techniques
Software Testing and Analysis: Process, Principles and Techniques
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
Empirical Software Engineering
EXE: automatically generating inputs of death
Proceedings of the 13th ACM conference on Computer and communications security
SYNERGY: a new algorithm for property checking
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Testing with model checkers: a survey
Software Testing, Verification & Reliability
Heuristics for Scalable Dynamic Test Generation
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
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
Symbolic execution for software testing in practice: preliminary assessment
Proceedings of the 33rd International Conference on Software Engineering
Automatic structural testing with abstraction refinement and coarsening
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Enhancing structural software coverage by incrementally computing branch executability
Software Quality Control
Symbolic execution for software testing: three decades later
Communications of the ACM
Post-silicon conformance checking with virtual prototypes
Proceedings of the 50th Annual Design Automation Conference
Automatic concolic test generation with virtual prototypes for post-silicon validation
Proceedings of the International Conference on Computer-Aided Design
Hi-index | 0.02 |
Infeasible execution paths reduce the precision of structural testing coverage and limit the industrial applicability of structural testing criteria. In this paper, we propose a technique that combines static and dynamic analysis approaches to identify infeasible program elements that can be eliminated from the computation of structural coverage to obtain accurate coverage data. The main novelty of the approach stems from its ability to identify a relevant number of infeasible elements, that is, elements that belong statically to the code, but cannot be executed under any input condition. The technique can also generate new test cases that execute uncovered elements, thus increasing the structural coverage of the program. The experimental results obtained on a prototype implementation for computing accurate branch coverage and reported in this paper indicate that the technique can effectively improve structural coverage measurements and can thus increase the industrial applicability of complex structural coverage criteria.