Automatic generation of high quality test sets via CBMC
Author(s) -
Emanuele Di Rosa,
Enrico Giunchiglia,
Massimo Narizzano,
Gabriele Palma,
Alessandra Puddu
Publication year - 2018
Publication title -
epic series in computing
Language(s) - English
Resource type - Conference proceedings
ISSN - 2398-7340
DOI - 10.29007/zbb8
Subject(s) - code coverage , computer science , set (abstract data type) , software , reliability engineering , process (computing) , domain (mathematical analysis) , software quality , test management approach , quality (philosophy) , test case , test (biology) , white box testing , data mining , programming language , software system , software development , machine learning , software construction , engineering , mathematics , regression analysis , epistemology , paleontology , biology , mathematical analysis , philosophy
Software Testing is the most used technique for software verication in industry. In the case of safety critical software, the test set can be required to cover a high percentage (up to 100%) of the software code according to some metrics. Unfortunately, attaining such high percentages is not easy using standard automatic tools for tests generation, and manual generation by domain experts is often necessary, thereby signicantly increasing the associated costs. In previous papers, we have shown how it is possible to automatize the test generation process of C programs via the bounded model checker CBMC. In particular, we have shown how it is possible to productively use CBMC for the automatic generation of test sets covering 100% of branches of 5 modules of ERTMS/ETCS, a safety critical industrial software by Ansaldo STS. Unfortunately, the test set we automatically generated, is of lower \quality" if compared to the test set manually generated by domain experts: Both test sets attained the desired 100% branch coverage, but the sizes of the automatically generated test sets are roughly twice the sizes of the corresponding manually generated ones. Indeed, the automatically generated test sets contain redundant tests, i.e. tests that do not contribute to reach the desired 100% branch coverage. These redundant tests are useless from the perspective of the branch coverage, are not easy to detect and then to eliminate a posteriori, and, if maintained, imply additional costs during the verication process. In this paper we present a new methodology for the automatic generation of \high quality" test sets guaranteeing full branch coverage. Given an initially empty test set T , the basic idea is to extend T with a test covering as many as possible of the branches which are not covered by T . This requires an analysis of the control ow graph of the
Accelerating Research
Robert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom
Address
John Eccles HouseRobert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom