A Framework for Guided Test Case Generation in Constraint Logic Programming
Performing test case generation by symbolic execution on large programs becomes quickly impracticable due to the path explosion problem. A common limitation that this problem poses is the generation of unnecessarily large number of possibly irrelevant or redundant test cases even for medium-size programs. Tackling the path explosion problem and selecting high quality test cases are considered major challenges in the software testing community. In this paper we propose a constraint logic programming-based framework to guide symbolic execution and thus test case generation towards a more relevant and potentially smaller subset of paths in the program under test. The framework is realized as a tool and empirical results demonstrate its applicability and effectiveness. We show how the framework can help to obtain high quality test cases and to alleviate the scalability issues that limit most symbolic execution-based test generation approaches.
KeywordsConstraint Logic Programming Guided Test Case Generation Software Testing Symbolic Execution Trace-abstraction
Unable to display preview. Download preview PDF.
- 2.Albert, E., Cabañas, I., Flores-Montoya, A., Gómez-Zamalloa, M., Gutiérrez, S.: jPET: an Automatic Test-Case Generator for Java. In: Proc. of WCRE 2011. IEEE Computer Society (2011)Google Scholar
- 3.Ball, T.: Abstraction-guided test generation: A case study. Technical Report MSR-TR-2003-86, Microsoft Research (2003)Google Scholar
- 4.Cadar, C., Godefroid, P., Khurshid, S., Pǎsǎreanu, C., Sen, K., Tillmann, N., Visser, W.: Symbolic execution for software testing in practice: preliminary assessment. In: Proc. of ICSE 2011. ACM (2011)Google Scholar
- 8.Gómez-Zamalloa, M., Albert, E., Puebla, G.: Test Case Generation for Object-Oriented Imperative Languages in CLP. Theory and Practice of Logic Programming, ICLP 2010 Special Issue 10(4-6) (2010)Google Scholar
- 9.Goodrich, M., Tamassia, R., Zamore, E.: The net.datastructures package, http://net3.datastructures.net