Property driven development in Erlang, by example
Proceedings of the 5th Workshop on Automation of Software Test
From user stories to code in one day?
XP'05 Proceedings of the 6th international conference on Extreme Programming and Agile Processes in Software Engineering
Hi-index | 0.00 |
Early test development and specification enhance the quality and robustness of software as experience with agile software development methods shows. The methods propagate test-first techniques and early prototyping through executable design models. We propose to enhance test-driven development to a more general property-driven development technique: Property-driven development ties together automatic tests, formal specification, and executable UML models by developing these three views together instead of one after the other as is common practice. Scenarios and properties serve as a combined basis for system specification and test cases. By extracting common properties of several scenarios we obtain invariants and pre- and post-conditions. The behavior of the system is described UML state machines. For testing we insert invariants and pre-and postconditions as assertions in the code generated from the state machines. For verification, we use model checking. For this we have to restrict the models to finite domains. Therefore we construct suitable abstractions of the scenarios and the system behavior and verify the abstractions using a model checker.