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

IFM 2018 screenshot

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.

Citation

Marko Dimjasevic, Falk Howar, Kasper Luckow, Zvonimir Rakamaric
Study of Integrating Random and Symbolic Testing for Object-Oriented Software
Proceedings of the 14th International Conference on Integrated Formal Methods (IFM), 11023: 89--109, doi:10.1007/978-3-319-98938-9_6, 2018.

BibTeX

@inproceedings{2018_ifm_dhlr,
  title = {Study of Integrating Random and Symbolic Testing for Object-Oriented Software},
  author = {Marko Dimjasevic and Falk Howar and Kasper Luckow and Zvonimir Rakamaric},
  booktitle = {Proceedings of the 14th International Conference on Integrated Formal Methods (IFM)},
  series = {Lecture Notes in Computer Science},
  volume = {11023},
  publisher = {Springer},
  editor = {Carlo A. Furia and Kirsten Winter},
  pages = {89--109},
  doi = {10.1007/978-3-319-98938-9_6},
  year = {2018}
}

Acknowledgements

Supported in part by the National Science Foundation (NSF) award CCF 1421678.