Study of Integrating Random and Symbolic Testing for Object-Oriented Software

Share

Marko Dimjasevic, Falk Howar, Kasper Luckow, Zvonimir Rakamaric. 14th International Conference on Integrated Formal Methods (IFM 2018), Maynooth, Ireland.
[pdf] [bib]

Abstract: Testing is currently the main technique adopted by the industry for improving the quality, reliability, and security of software. In order to lower the cost of manual testing, automatic testing techniques have been devised, such as random and symbolic testing, with their respective trade-offs. For example, random testing excels at fast global exploration of software, while it plateaus when faced with hard-to-hit numerically-intensive execution paths. On the other hand, symbolic testing excels at exploring such paths, while it struggles when faced with complex heap class structures. In this paper, we describe an approach for automatic unit testing of object-oriented software that integrates the two techniques. We leverage feedback-directed unit testing to generate meaningful sequences of constructor+method invocations that create rich heap structures, and we in turn further explore these sequences using dynamic symbolic execution. We implement this approach in a tool called JDoop, which we augment with several parameters for fine-tuning its heuristics; such “knobs” allow for a detailed exploration of the various trade-offs that the proposed integration offers.

Bibtex:

@inproceedings{ifm2018-dhlr,
  author = {Marko Dimja\v{s}evi\'c and Falk Howar and Kasper Luckow and
    Zvonimir Rakamari\'c},
  title = {Study of Integrating Random and Symbolic Testing for Object-Oriented Software},
  booktitle = {Proceedings of the 14th International Conference on
    Integrated Formal Methods (IFM)},
  series = {Lecture Notes in Computer Science},
  publisher = {Springer},
  year = {2018},
  note = {To appear}
}