Test Driven Software Development for Improving the Quality of Control Software for Industrial Automation Systems
Total Page:16
File Type:pdf, Size:1020Kb
Die approbierte Originalversion dieser Dissertation ist in der Hauptbibliothek der Technischen Universität Wien aufgestellt und zugänglich. http://www.ub.tuwien.ac.at The approved original version of this thesis is available at the main library of the Vienna University of Technology. http://www.ub.tuwien.ac.at/eng DISSERTATION Test Driven Software Development for Improving the Quality of Control Software for Industrial Automation Systems Ausgeführt zum Zwecke der Erlangung des akademischen Grades eines Doktors der technischen Wissenschaften (Dr.techn.) unter der Leitung von Univ.– Prof. Dipl.-Ing. Dr.sc. techn. Georg Schitter E376 Institut für Automatisierungs– und Regelungstechnik eingereicht an der Technischen Universität Wien Fakultät für Elektrotechnik und Informationstechnik von Dipl.-Ing. Reinhard Hametner Matrikelnummer: 0125670 Schlossstrasse 13, 3250 Wieselburg, Österreich Wien, im Oktober 2013 . Dekan: Univ.–Prof. Dipl.-Ing. Dr.techn. Gottfried Magerl Tag des Kolloquiums: 01. 10. 2013 Vorsitzender: Univ.–Prof. Mag.rer.nat. Dr.rer.nat. Gottfried Strasser Erster Gutachter: Univ.–Prof. Dipl.-Ing. Dr.sc. techn. Georg Schitter Zweiter Gutachter: Prof. Dr.-Ing. Georg Frey Vorwort Diese Arbeit wurde im Jahr 2009 im Rahmen meiner Tätigkeit als wissenschaft- licher Mitarbeiter am Institut für Automatisierungs– und Regelungstechnik an der Technischen Universität Wien begonnen. Im Oktober 2013 wurde die Ar- beit in ähnlicher Form als Dissertation an der Fakultät für Elektrotechnik und Informationstechnik an der Technischen Universität Wien eingereicht und er- folgreich verteidigt. Wien, im Oktober 2013 Dipl.-Ing. Reinhard Hametner i Acknowledgements First of all I would like to thank the contributions of a large number of people, who have provided in different ways invaluable support for the completion of this thesis. Most of all I would like to thank Professor Georg Schitter, who conducted my thesis as supervisor during a long period of time. Under his supervision I learned a lot according to scientific standards at a high level and be precise in formulate scientific statements. I gratefully acknowledge Professor Georg Frey from the Saarland University for co-supervising this work. My special thanks are dedicated to Dr. Alois Zoitl for his support and fruit- ful discussions during my work. He spent a lot of time and energy in discus- sing my results. He teaches me to write scientific papers from the very begin- ning as well as helping me to write scientific research grants. Furthermore, I want to thank Professor Gerfried Zeichen for the discussions about industry challenges during my work on different research projects. This dissertation came to standing during my employment as a research as- sistant at the Automation and Control Institute at Vienna University of Techno- logy. I want to thank all colleagues for providing a highly innovative and pro- ductive environment, especially Monika Wenger, Ingo Hegny, Martin Melik- Merkumians, Michael Steinegger, Dr. Gottfried Koppensteiner, Wilfried Lepu- schitz, Alexander Prostejovsky, and Dr. Munir Merdan. Furthermore, I would like to thank Dietmar Winkler and Thomas Östrei- cher from the Institute of Software Technology and Interactive Systems for the fruitful discussions and the pleasant cooperation. Numerous scientific publi- cations are the results of our cooperation which are presented on international scientific conferences all over the world. Many warm thanks go to my parents Maria and Franz Hametner and my brother Christoph for their support during the long period of my education. They frequently asking me about the status quo of my thesis with the state- ii iii ment: “Und wie schauts aus?” Finally and above all, I would like to thank my wonderful girlfriend Mela- nie for her devoted love and her incessant patience when this thesis was at the forefront of my thoughts. Thank you for supporting me during all these years and for pursuing me to finish this thesis as soon as possible. Parts of this work were funded by the Austrian Research Funding Agency (FFG) grant logi.DIAG (Bridge7-196929). REINHARD HAMETNER Abstract In today’s world the complexity of industrial automation systems increases rapidly. Because of this complexity, the development of such automation sys- tems becomes more time consuming and has to deal with adaptations of the industrial automation code on short notice. The engineering efficiency has to be increased in terms of reusability support of tested and testable software components for upcoming projects in order to reduce the development time and costs. The intention of this thesis is to make a significant step towards an increase in the quality of industrial automation software by providing a test infrastruc- ture with appropriate testing techniques for industrial automation software. To ensure the high software quality, testing processes are necessary which as- sist the development engineers during the life-cycle of developing industrial automation systems. Currently there is no systematic test process for testing industrial control software in the industry. First steps are available in academia to adapt testing techniques from the software engineering domain applied on the industrial automation domain. A new test framework is developed in this thesis which is able to sup- port testing of industrial automation software, i.e. based on IEC 61131 and IEC 61499, on various levels of detail and from different perspectives. New criteria are proposed for selecting Unified Modeling Language (UML) mod- els which are useable for specifying tests of industrial automation software. According to the developed test framework, different testing techniques con- sidering the different test levels are presented which are able to test industrial automation software considering the Test-First Development (TFD) strategy. Finally, a new automation component architecture and a new component de- sign for developing industrial automation applications are introduced to sup- port testability. Therefore, it is now possible to increase the quality of indus- trial control software by using the newly developed test infrastructure. iv Kurzzusammenfassung Der starke Konkurrenzdruck der Märkte lässt die Anforderungen heutiger in- dustrieller Automatisierungssysteme rapide ansteigen. Dies führt zu einer Er- höhung der Komplexität solcher Systeme. Darum steigt der Aufwand in der Entwicklung, welche mit ständigen Adaptierungen des Software Codes ver- bunden ist. Durch den Einsatz von wiederverwendbaren und testbaren Kom- ponenten kann die Effizienz für zukünftige Projekte gesteigert werden. Zu- sätzlich können die Entwicklungszeiten und Entwicklungskosten durch Ver- wendung solcher Komponenten reduziert werden. Die Intention dieser Doktorarbeit ist, einen signifikanten Schritt zur Stei- gerung der Qualität von Steuerungssoftware beizutragen und eine Testinfra- struktur mit geeigneten Techniken zum Testen einer solchen Software bereit- zustellt. Um eine hohe Softwarequalität zu erreichen ist ein Testprozess not- wendig, welcher dem/der Ingenieur/in während der ganzen Entwicklungs- zeit unterstützend zur Verfügung stehen soll. Derzeit gibt es keine systemati- schen Testprozesse für Software im Bereich der industriellen Steuerungstech- nik. Erste Ansätze sind im akademischen Bereich erforscht. Hierzu werden Techniken aus dem Bereich der Informatik, im Speziellen der Softwareent- wicklung, adaptiert. Diese Doktorarbeit zeigt eine neue Teststruktur, die das Testen von industrieller Steuerungssoftware nach dem Standard IEC 61131 und IEC 61499 an unterschiedlichen Testebenen mit unterschiedlichen Per- spektiven unterstützt. Geeignete Unified Modeling Language (UML) Model- le für die Testspezifikation werden vorgestellt. Weiters werden Testmethoden und Techniken diskutiert, die für das Testen von Steuerungssoftware nach der “Test-First Development” Strategie geeignet sind. Abschließend wird ei- ne neue komponentenbasierte Architektur und ein neues Komponentendesign für die Entwicklung testbarer Steuerungsapplikationen präsentiert. Nun ist es möglich, die Qualität der industriellen Steuerungssoftware mithilfe der neu entwickelten Testinfrastruktur zu erhöhen. v Contents List of Figures ix List of Tables xii List of Listings xiii Acronyms xiv 1 Introduction1 1.1 Problem Statement..........................2 1.2 Goal...................................3 1.3 Software Testing............................3 1.3.1 Fundamental Terms.....................4 1.3.2 Test Methods.........................5 1.3.3 Testing vs. Verification....................8 1.4 Summary................................ 10 1.5 Contributions and Outline of the Thesis.............. 10 2 Related Work 12 2.1 Modeling Languages for Industrial Automation Systems.... 15 2.1.1 IEC 61131........................... 15 2.1.2 IEC 61499 - Distributed Event-based System....... 17 2.2 Testing Control Software....................... 20 2.2.1 Testing as Commissioning Support............. 21 2.2.2 Automatic Testing...................... 21 2.2.3 Simulation-based Testing.................. 23 2.2.4 Analyzing Methods..................... 23 2.3 Model-Driven Development..................... 24 vi CONTENTS vii 2.3.1 What is a Model?....................... 24 2.3.2 Model Specification..................... 25 2.3.3 Model Transformation.................... 26 2.3.4 Model-Driven Development for Control Applications.. 27 2.4 Testing in Software Engineering................... 28 2.4.1 Test Specification in Software Engineering........ 29 2.4.2 Test Processes, Test Strategies, and