Mutation-based test generation for PLC embedded software using model checkingShow others and affiliations
2016 (English)In: Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) / [ed] Wotawa F.,Kushik N.,Nica M., Springer, 2016, Vol. 9976, p. 155-171Conference paper, Published paper (Refereed)
Abstract [en]
Testing is an important activity in engineering of industrial embedded software. In certain application domains (e.g., railway industry) engineering software is certified according to safety standards that require extensive software testing procedures to be applied for the development of reliable systems. Mutation analysis is a technique for creating faulty versions of a software for the purpose of examining the fault detection ability of a test suite. Mutation analysis has been used for evaluating existing test suites, but also for generating test suites that detect injected faults (i.e., mutation testing). To support developers in software testing, we propose a technique for producing test cases using an automated test generation approach that operates using mutation testing for software written in IEC 61131-3 language, a programming standard for safety-critical embedded software, commonly used for Programmable Logic Controllers (PLCs). This approach uses the Uppaal model checker and is based on a combined model that contains all the mutants and the original program. We applied this approach in a tool for testing industrial PLC programs and evaluated it in terms of cost and fault detection. For realistic validation we collected industrial experimental evidence on how mutation testing compares with manual testing as well as automated decision-coverage adequate test generation. In the evaluation, we used manually seeded faults provided by four industrial engineers. The results show that even if mutation-based test generation achieves better fault detection than automated decision coverage-based test generation, these mutation-adequate test suites are not better at detecting faults than manual test suites. However, the mutation-based test suites are significantly less costly to create, in terms of testing time, than manually created test suites. Our results suggest that the fault detection scores could be improved by considering some new and improved mutation operators (e.g., Feedback Loop Insertion Operator (FIO)) for PLC programs as well as higher-order mutations.
Place, publisher, year, edition, pages
Springer, 2016. Vol. 9976, p. 155-171
Series
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), ISSN 0302-9743 ; 9976
Keywords [en]
Accident prevention; Application programs; Automation; Embedded software; Fault detection; Java programming language; Model checking; Programmable logic controllers; Safety engineering; Safety testing; Standards, Automated test generations; Decision coverage; Detection ability; Engineering software; Experimental evidence; Mutation analysis; Mutation operators; Uppaal model checkers, Software testing
National Category
Software Engineering
Identifiers
URN: urn:nbn:se:bth-13381DOI: 10.1007/978-3-319-47443-4_10ISI: 000389932400010Scopus ID: 2-s2.0-84992445107ISBN: 9783319474427 (print)OAI: oai:DiVA.org:bth-13381DiVA, id: diva2:1045929
Conference
28th IFIP WG 6.1 International Conference on Testing Software and Systems, ICTSS 2016; Graz; Austria
Note
Conference of 28th IFIP WG 6.1 International Conference on Testing Software and Systems, ICTSS 2016 ; Conference Date: 17 October 2016 Through 19 October 2016; Conference Code:185379
2016-11-112016-11-112024-04-12Bibliographically approved