Singularity: A methodology for automatic unit test data generation for C++ applications based on Model Checking counterexamples - Eras, Eduardo Rohde; Santiago, Valdivino Alexandre de; Santos, Luciana Brasil Rebelo dos (Anais do Simpósio Brasileiro de Testes de Software Sistemático e Automatizado (SAST); 2019: Anais do IV Simpósio Brasileiro de Testes de Software Sistemático e Automatizado, 2019)
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.