AbstractsComputer Science

Thesis for the Degree of Bachelor of Science in Computer Science by Peter Charbachi and Linus Eklund

by Peter Charbachi

Institution: Mälarden University
Year: 2016
Keywords: pairwise testing; testing; pairwise; plc; t-way; test; test suite; test case; Engineering and Technology; Electrical Engineering, Electronic Engineering, Information Engineering; Embedded Systems; Teknik och teknologier; Elektroteknik och elektronik; Inbäddad systemteknik; Computer Systems; Datorsystem; Datavetenskap; Computer Science
Posted: 02/05/2017
Record ID: 2127796
Full text PDF: http://urn.kb.se/resolve?urn=urn:nbn:se:mdh:diva-32054


In this thesis we investigate the use of pairwise testing for PLC embedded software. We compare these automatically generated tests with tests created manually by industrial engineers. The tests were evaluated in terms of fault detection, code coverage and cost. In addition, we compared pairwise testing with randomly generated tests of the same size as pairwise tests. In order to automatically create test suites for PLC software a previously created tool called Combinatorial Test Tool (CTT) was extended to support pairwise testing using the IPOG algorithm. Once test suites were created using CTT they were executed on real industrial programs. The fault detection was measured using mutation analysis. The results of this thesis showed that manual tests achieved better fault detection (8% better mutation score in average) than tests generated using pairwise testing. Even if pairwise testing performed worse in terms of fault detection than manual testing, it achieved better fault detection in average than random tests of the same size. In addition, manual tests achieved in average 97.29% code coverage compared to 93.95% for pairwise testing, and 84.79% for random testing. By looking closely on all tests, manual testing performed equally good as pairwise in terms of achieved code coverage. Finally, the number of tests for manual testing was lower (12.98 tests in average) compared to pairwise and random testing (21.20 test in average). Interestingly enough, for the majority of the programs pairwise testing resulted in fewer tests than manual testing.