Generalized test tables: A powerful and intuitive specification language for reactive systems

With recent trends in manufacturing automation, such as Industry 4.0, control software in automated production systems becomes more and more complex and volatile, complicating and increasing importance of quality assurance. Test tables are a widely used and generally accepted means to intuitively specify test cases for automation software. However, each table only specifies a single software trace, whereas the actual software behavior may cover multiple similar traces not covered by the table. Within this work, we present a generalization concept for test tables allowing for bounded and unbounded repetition of steps, “don't-care” values, as well as calculations with earlier observed values. We provide a verification mechanism for checking conformance of an IEC 61131-3 PLC software with a generalized test table, making use of a state-of-the-art model checker. Our notation is inspired by widely-used paradigms found in spreadsheet applications. By an empirical study with mechanical engineering students, we show that the notation matches user expectations. A real-world example extracted from an industrial automation plant illustrates our approach.

[1]  Birgit Vogel-Heuser,et al.  Model-based testing of PLC software: test of plants' reliability by using fault injection on component level , 2014 .

[2]  Birgit Vogel-Heuser,et al.  Evolution of software in automated production systems: Challenges and research directions , 2015, J. Syst. Softw..

[3]  Georg Frey,et al.  Formal verification of PLC programs generated from signal interpreted Petri nets , 2001, 2001 IEEE International Conference on Systems, Man and Cybernetics. e-Systems and e-Man for Cybernetics in Cyberspace (Cat.No.01CH37236).

[4]  Bernhard Beckert,et al.  Regression Verification for Programmable Logic Controller Software , 2015, ICFEM.

[5]  Stefan Biffl,et al.  Test-Driven Automation: Adopting Test-First Development to Improve Automation Systems Engineering Processes , 2009 .

[6]  Olaf Stursberg,et al.  Verification of PLC Programs Given as Sequential Function Charts , 2004, SoftSpez Final Report.

[7]  Valeriy Vyatkin,et al.  User-friendly formal specification languages - conclusions drawn from industrial experience on model checking , 2016, 2016 IEEE 21st International Conference on Emerging Technologies and Factory Automation (ETFA).

[8]  O. Stursberg,et al.  Algorithmic verification of logic controllers given as sequential function charts , 2004, 2004 IEEE International Conference on Robotics and Automation (IEEE Cat. No.04CH37508).

[9]  Stefan Kowalewski,et al.  Arcade.PLC: a verification platform for programmable logic controllers , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[10]  Marco Roveri,et al.  The nuXmv Symbolic Model Checker , 2014, CAV.

[11]  Birgit Vogel-Heuser,et al.  Towards a taxonomy of errors in PLC programming , 2014, Cognition, Technology & Work.

[12]  Borja Fernández Adiego,et al.  PLCverif: A TOOL TO VERIFY PLC PROGRAMS BASED ON MODEL CHECKING TECHNIQUES , 2015 .

[13]  Ilkka Niemelä,et al.  Model checking of safety-critical software in the nuclear engineering domain , 2012, Reliab. Eng. Syst. Saf..

[14]  Stephan Merz,et al.  Model Checking , 2000 .

[15]  Dániel Darvas,et al.  A Formal Specification Method for PLC-based Applications , 2015 .

[16]  Bernhard Beckert,et al.  Generalised Test Tables: A Practical Specification Language for Reactive Systems , 2017, IFM.

[17]  Birgit Vogel-Heuser,et al.  Automatic program verification of continuous function chart based on model checking , 2009, 2009 35th Annual Conference of IEEE Industrial Electronics.

[18]  Philippe Schnoebelen,et al.  Systems and Software Verification , 2001, Springer Berlin Heidelberg.

[19]  Jan Olaf Blech,et al.  Modelling and Formal Verification of Timing Aspects in Large PLC Programs , 2014 .

[20]  Bernhard Beckert,et al.  A verification-supported evolution approach to assist software application engineers in industrial factory automation , 2016, 2016 IEEE International Symposium on Assembly and Manufacturing (ISAM).

[21]  Valeriy Vyatkin,et al.  Formal Modeling of Testing Software for Cyber-Physical Automation Systems , 2015, 2015 IEEE Trustcom/BigDataSE/ISPA.

[22]  Sebastian Ulewicz,et al.  Challenges for maintenance of PLC-software and its related hardware for automated production systems: Selected industrial Case Studies , 2015, 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[23]  Darvas Daniel,et al.  PLC code generation based on a formal specification language , 2016 .

[24]  Birgit Vogel-Heuser,et al.  Automated PLC Software Testing using adapted UML Sequence Diagrams , 2012 .

[25]  Valeriy Vyatkin,et al.  A study on user-friendly formal specification languages for requirements formalization , 2016, 2016 IEEE 14th International Conference on Industrial Informatics (INDIN).

[26]  Jean-Marc Faure,et al.  Translating Grafcet specifications into Mealy machines for conformance test purposes , 2011 .

[27]  Jürgen Jasperneite,et al.  Model based TTCN-3 testing of industrial automation systems — First results , 2011, ETFA2011.