CompleteTest

Automatic Test Generation for Function Block Diagrams

Using Logic Coverage to Improve Testing Function Block Diagrams

Abstract

In model-driven development, testers are often focusing on functional model-level testing, enabling verification of design models against their specifications. In addition, in safety-critical software development, testers are required to show that tests cover the structure of the implementation. Testing cost and time savings could be achieved if the process of deriving test cases for logic coverage is automated and provided test cases are ready to be executed. The logic coverage artifacts, i.e., predicates and clauses, are required for different logic coverage, e.g., MC/DC. One way of dealing with test case generation for ensuring logic coverage is to approach it as a model-checking problem, such that model-checking tools automatically create test cases. We show how logic coverage criteria can be formalized and used by a model-checker to provide test cases for ensuring this coverage on safety-critical software described in the Function Block Diagram programming language. Based on our experiments, this approach, supported by a tool chain, is an applicable and useful way of generating test cases for covering Function Block Diagrams.

Citation

Enoiu, E. P., Sundmark, D., & Pettersson, P. (2013). Using Logic Coverage to Improve Testing Function Block Diagrams. In A. U. Hüsnü Yenigün Cemal Yilmaz (Ed.), International Conference on Testing Software and Systems (1—16). Springer Berlin Heidelberg.

Download

Full-text available at www.es.mdh.se

Bibtex

@inproceedings{Enoiu2983,
author = {Eduard Paul Enoiu and Daniel Sundmark and Paul Pettersson},
title = {Using Logic Coverage to Improve Testing Function Block Diagrams},
isbn = {978-3-642-41706-1},
editor = {H{\"u}sn{\"u} Yenig{\"u}n, Cemal Yilmaz, Andreas Ulrich },
pages = {1--16},
month = {November},
year = {2013},
booktitle = {International Conference on Testing Software and Systems},
publisher = {Springer Berlin Heidelberg},
url = {http://www.es.mdh.se/publications/2983-}
}