Singularity: A methodology for automatic unit test data generation for C++ applications based on Model Checking counterexamples

  • Eduardo Rohde Eras INPE
  • Valdivino Alexandre de Santiago INPE
  • Luciana Brasil Rebelo dos Santos IFSP

Resumo


One of the most challenging task of testing activity is the generation of test cases/data. While there is significant amount of studies in this regard, there is still need to move towards approaches that can generate test case/data based only on source code since many software systems mostly have the source code available and no adequate documentation. In this paper a new methodology, called Singularity, is introduced to generate unit test data for C++ applications based on Model Checking, a popular technique for test case generation. Our approach, which is to be supported by a tool, automatically translates C++ code into a model which resembles a Statechart model and then into the notation of the NuSMV Model Checker. Later, we rely on a technique based on the HiMoST Method, producing counterexamples from the Model Checker that are, in fact, the test cases/data themselves. We have applied our approach to a few C++ case studies analyzing how feasible it is for automatic test data generation.
Palavras-chave: Unit test, Tool, Model Checking, Counterexamples, Automation
Publicado
23/09/2019
ERAS, Eduardo Rohde; SANTIAGO, Valdivino Alexandre de; SANTOS, Luciana Brasil Rebelo dos. Singularity: A methodology for automatic unit test data generation for C++ applications based on Model Checking counterexamples. In: SIMPÓSIO BRASILEIRO DE TESTES DE SOFTWARE SISTEMÁTICO E AUTOMATIZADO (SAST), 4. , 2019, Salvador/BA. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2019 . p. 72–79.