Test Case Generation for Object-Oriented Imperative Languages in CLP
Miguel G\'omez-Zamalloa, Elvira Albert, Germ\'an Puebla

TL;DR
This paper introduces a novel CLP-based framework for automatic test case generation in object-oriented imperative languages, effectively handling complex language features without custom constraints, demonstrated on challenging Java programs.
Contribution
It presents the first fully CLP-based approach for TCG in OO imperative languages, managing features like inheritance and exceptions without specialized constraint operators.
Findings
Successfully applied to complex Java programs
Handles inheritance, virtual calls, and exceptions
No need for custom constraint operators
Abstract
Testing is a vital part of the software development process. Test Case Generation (TCG) is the process of automatically generating a collection of test cases which are applied to a system under test. White-box TCG is usually performed by means of symbolic execution, i.e., instead of executing the program on normal values (e.g., numbers), the program is executed on symbolic values representing arbitrary values. When dealing with an object-oriented (OO) imperative language, symbolic execution becomes challenging as, among other things, it must be able to backtrack, complex heap-allocated data structures should be created during the TCG process and features like inheritance, virtual invocations and exceptions have to be taken into account. Due to its inherent symbolic execution mechanism, we pursue in this paper that Constraint Logic Programming (CLP) has a promising unexploited…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
