Enhancing system validation with behavioural types

The behaviour of systems is determined by their implementation in some form of source code. While behaviour itself is complex and its detailed semantics are hard to describe by means of lower level than a programming or specification language, the structure of dynamic input/output behaviour is limited by the system logic and fixed during operation in most cases. Certain aspects of system behavior can be captured by regular expressions that define the possible input/output behaviors of the system. A more refined kind of regular expression can be constructed that does not only represent I/O interleaving but also the location and type of every particular I/O event. This article describes the generation of such expressions and shows how they can be used to aid classic verification by testing, as well as in a criterion to assess the quality of given test case sets. Additionally, a method is sketched to falsify the behavioural identity of systems using the presented approach. Finally, a tool to apply the presented ideas in verification practice on MC68HC705J1A microcontroller programs is overviewed.

[1]  Fevzi Belli,et al.  Program segmentation for controlling test coverage , 1997, Proceedings The Eighth International Symposium on Software Reliability Engineering.

[2]  William E. Howden,et al.  Methodology for the Generation of Program Test Data , 1975, IEEE Transactions on Computers.

[3]  Dieter Monjau,et al.  Workshop "Methoden und Beschreibungssprachen zur Modellierung und Verifikation von Schaltungen und Systemen" , 2001, Informationstechnik Tech. Inform..

[4]  Nancy A. Lynch,et al.  Hierarchical correctness proofs for distributed algorithms , 1987, PODC '87.

[5]  Hong Zhu,et al.  Software unit test coverage and adequacy , 1997, ACM Comput. Surv..

[6]  John S. Gourlay A Mathematical Framework for the Investigation of Testing , 1983, IEEE Transactions on Software Engineering.

[7]  Fevzi Belli,et al.  Specification of Fault-Tolerant System Issues by Predicate/Transition Nets and Regular Expressions-Approach and Case Study , 1991, IEEE Trans. Software Eng..

[8]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[9]  Ulrich Heinkel,et al.  Behavioural Specification for Advanced Design and Verification of ASICs (ADeVA) , 2002, MBMV.

[10]  Wei Ding,et al.  Model Checkers in Software Testing , 2002 .

[11]  Fevzi Belli,et al.  Finite-State Testing of Graphical User Interfaces , 2003 .

[12]  William C. Hetzel,et al.  The complete guide to software testing , 1984 .

[13]  Fevzi Belli,et al.  Finite state testing and analysis of graphical user interfaces , 2001, Proceedings 12th International Symposium on Software Reliability Engineering.