Further Reading¶
External resources for going deeper into model-based testing. The MBT Tutorial in this project is self-contained — these are supplementary references for readers who want additional perspectives or academic depth.
Hands-On Tutorial¶
ModelJUnit Tutorial — Chalmers University (2017) https://www.cse.chalmers.se/edu/year/2017/course/DAT261/tutorials/modeljunit.html
A step-by-step walkthrough using a login/lab submission EFSM. Covers state space design, guards vs actions, internal variables vs visible states, and transition tables. Good companion to this project's tutorial — it uses a different example domain (university system) which helps reinforce the concepts.
When to read: After completing the tutorial in this project, if you want to see the same concepts applied to a different domain.
Definitive Reference Chapter¶
Mark Utting — "How to Design Extended Finite State Machine Test Models in Java" https://eprints.qut.edu.au/56821/20/modeljunit_with_figures.pdf
~30 pages covering systematic modelling methodology, FSM-to-EFSM progression, the ModelJUnit API, offline vs online testing, and coverage metric interpretation. Uses ATM, SIM card, and embedded system examples. Written by ModelJUnit's creator.
From: Model-Based Testing for Embedded Systems, CRC Press, 2012 (Utting, Zander, Schieferdecker, Mosterman).
When to read: When you want the most thorough treatment of EFSM design methodology, or when working on complex models and need guidance on state abstraction strategies.
Lecture Slides¶
FSMs, EFSMs, and ModelJUnit — Chalmers / Gothenburg (2014) https://www.cse.chalmers.se/edu/course.2014/DAT260/files/12-ModelJUnit-2014.pdf
Classroom slides covering what ModelJUnit expects from a model, how EFSMs differ from pure FSMs, and the Qui-Donc case study. Concise visual format.
When to read: For a quick visual refresher on FSM/EFSM concepts, or before diving into the Qui-Donc example in this project's samples.
Academic Extension¶
Artho et al. — "Separation of Transitions, Actions, and Exceptions in Model-Based Testing" https://people.kth.se/~artho/papers/modeljunit-long.pdf
Research paper proposing improvements to ModelJUnit's architecture: separating transition logic from action execution and adding structured exception handling. Useful if you're extending ModelJUnit or designing models for systems with complex error handling.
When to read: After you're comfortable writing models and want to understand the tool's design trade-offs, or if you're contributing to ModelJUnit itself.