Test Driven Development: By Example
Test Driven Development: By Example
EUnit: a lightweight unit testing framework for Erlang
Proceedings of the 2006 ACM SIGPLAN workshop on Erlang
Reverse Engineering State Machines by Interactive Grammar Inference
WCRE '07 Proceedings of the 14th Working Conference on Reverse Engineering
THE QSM ALGORITHM AND ITS APPLICATION TO SOFTWARE BEHAVIOR MODEL INDUCTION
Applied Artificial Intelligence
Inferring Finite-State Models with Temporal Constraints
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
From test cases to FSMs: augmented test-driven development and property inference
Proceedings of the 9th ACM SIGPLAN workshop on Erlang
A framework for the competitive evaluation of model inference techniques
Proceedings of the First International Workshop on Model Inference In Testing
ICGI'10 Proceedings of the 10th international colloquium conference on Grammatical inference: theoretical results and applications
QuickSpec: guessing formal specifications using testing
TAP'10 Proceedings of the 4th international conference on Tests and proofs
Extracting Properties from Test Cases by Refactoring
ICSTW '11 Proceedings of the 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops
Hi-index | 0.00 |
Writing EUnit tests is more common than writing QuickCheck specifications, although QuickCheck specifications potentially explore far more scenarios than manually written unit tests. In particular for implementations that have side-effects, writing a good set of EUnit tests is often difficult and labour intensive. In this paper we report on mechanisms to extract QuickCheck specifications from EUnit test suites. We use the QSM algorithm to infer state machines from sets of positive and negative traces derived from the test suite. These traces can be derived either statically or dynamically and we describe both approaches here. Finally we show how to move from the inferred state machine to a QuickCheck state machine. This QuickCheck state machine can then be used to generate tests, which include the EUnit tests, but also include many new and different combinations that can augment the test suite. In this way, one can achieve substantially better testing with little extra work.