Testing Meets Static and Runtime Verification
Paper in proceedings, 2018

Test driven development (TDD) is a technique where test cases are used to guide the development of a system. This technique introduces several advantages at the time of developing a system, e.g. writing clean code, good coverage for the features of the system, and evolutionary development. In this paper we show how the capabilities of a testing focused development methodology based on TDD and model-based testing, can be enhanced by integrating static and runtime verification into its workflow. Considering that the desired system properties capture data- As well as control-oriented aspects, we integrate TDD with (static) deductive verification as an aid in the development of the data-oriented aspects, and we integrate model-based testing with runtime verification as an aid in the development of the control-oriented aspects. As a result of this integration, the proposed development methodology features the benefits of TDD and model-based testing, enhanced with, for instance, early detection of bugs which may be missed by TDD, regarding data aspects, and the validation of the overall system with respect to the model, regarding the control aspects.

Test driven development

Java

Static verification

Runtime verification

Author

Mauricio Chimento

Chalmers, Computer Science and Engineering (Chalmers), Formal methods

Wolfgang Ahrendt

Chalmers, Computer Science and Engineering (Chalmers), Formal methods

Gerardo Schneider

University of Gothenburg

Proceedings - 2018 ACM/IEEE Conference on Formal Methods in Software Engineering, FormaliSE 2018

30-39

2018 ACM/IEEE Conference on Formal Methods in Software Engineering, FormaliSE 2018
Gothenburg, Sweden,

Areas of Advance

Energy

Subject Categories

Embedded Systems

Computer Science

Computer Systems

DOI

10.1145/3193992.3194000

More information

Latest update

7/8/2019 1