Table 6: Behaviour Generator Statistics.
Example Diameter State Found Distinct States
DieHard 9 97 16
One Bit Clock 1 4 2
Euclid Algorithm 3 22 8
Therac25 9 97 16
4 CONCLUSION
We have presented our framework for application of
the property-based testing (PBT) concepts on top of
temporal formal models. This allows us to have an
executable Scala code that corresponds to the for-
mal model, as well as to perform PBT of the mo-
dels functionality. The framework is aiming on re-
duction of the impedance mismatch between formal
methods and practitioners through the combining of
formal methods with property-based testing. We in-
troduced the core ideas on how the framework can be
applied to particular formal languages, such as TLA+
and Focus
ST
.
REFERENCES
Alzahrani, N., Spichkova, M., and Blech, J. O. (2016).
Spatio-Temporal Models for Formal Analysis and
Property-Based Testing, pages 196–206. Springer.
Blech, J. O. and Schmidt, H. (2014). BeSpaceD: Towards
a tool framework and methodology for the specifica-
tion and verification of spatial behavior of distributed
software component systems. CoRR.
Bowen, J. P. and Hinchey, M. G. (1995). Seven more myths
of formal methods. IEEE software, 12(4):34.
Broy, M. and Stølen, K. (2001). Specification and Develop-
ment of Interactive Systems: Focus on Streams, Inter-
faces, and Refinement. Springer.
Claessen, K. and Hughes, J. (2011). QuickCheck: A lig-
htweight tool for random testing of haskell programs.
SIGPLAN Not., 46(4):53–64.
Gerdes, A., Hughes, J., Smallbone, N., and Wang, M.
(2015). Linking unit tests and properties. In SIGPLAN
Workshop, pages 19–26. ACM.
Hinchey, M. G. (2003). Confessions of a formal methodist.
In Safety Critical Systems and Software, pages 17–20.
ACS.
Hughes, J. (2010). Software testing with quickcheck. In
Central European Functional Programming School,
pages 183–223. Springer.
K
¨
uhnel, C. and Spichkova, M. (2007). Fault-tolerant com-
munication for distributed embedded systems. In Soft-
ware Engineering of Fault Tolerance Systems, vo-
lume 19, page 175. World Scientific Publishing.
Lamport, L. (1993). Hybrid systems in TLA+. In Gros-
sman, R. L., Nerode, A., Ravn, A. P., and Rischel, H.,
editors, Hybrid Systems, number 736 in LNCS, pages
77–102. Springer.
Lamport, L. (1994). The temporal logic of actions.
16(3):872–923.
Leveson, N. G. and Turner, C. S. (1993). An investigation
of the therac-25 accidents. Computer, 26(7):18–41.
Miller, E. (1987). The Therac-25 Experience. In Conf. State
Radiation Control Program Directors.
Newcombe, C., Rath, T., Zhang, F., Munteanu, B., Brooker,
M., and Deardeuff, M. (2015). How Amazon Web
Services Uses Formal Methods. CACM, 58(4):66–73.
Nipkow, T., Paulson, L. C., and Wenzel, M. (2002). Isa-
belle/HOL: a proof assistant for higher-order logic,
volume 2283. Springer Science & Business Media.
Spichkova, M. (2007). Specification and seamless verifica-
tion of embedded real-time systems: FOCUS on Isa-
belle. PhD thesis, Technical University Munich.
Spichkova, M. (2012). Human Factors of Formal Methods.
In IADIS Interfaces and Human Computer Interaction
2012.
Spichkova, M. (2013). Design of formal languages and in-
terfaces: “Formal” does not mean “unreadable”. IGI
Global.
Spichkova, M. (2016). Spatio-temporal features of
Focus
ST
. CoRR.
Spichkova, M., Blech, J. O., Herrmann, P., and Schmidt,
H. W. (2014). Modeling Spatial Aspects of Safety-
Critical Systems with Focus
ST
. In MoDeVVa, pages
49–58.
Spichkova, M., Liu, H., Laali, M., and Schmidt, H. W.
(2015). Human factors in software reliability engi-
neering. Workshop on Applications of Human Error
Research to Improve Software Engineering.
Yu, Y., Manolios, P., and Lamport, L. (1999). Model
checking tla+ specifications. In Correct Hardware
Design and Verification Methods, pages 54–66. Sprin-
ger.
Zamansky, A., Rodriguez-Navas, G., Adams, M., and Spi-
chkova, M. (2016). Formal methods in collaborative
projects. In 11th International Conference on Evalu-
ation of Novel Approaches to Software Engineering.
IEEE.
ENASE 2017 - 12th International Conference on Evaluation of Novel Approaches to Software Engineering
246