Automated System Level Software Testing Of Networked Embedded Systems
Informal Summary
Automated System Level Software Testing Of Networked Embedded Systems is the title of my licentiate thesis (in Sweden a licentiate is a degree halfway between master and doctor) that was published in the fall of 2018. It contains an introductory chapter, four papers (out of which three are published and one is in revision), and five appendices.
In this thesis I argue that testing of embedded systems has to be carried out on real hardware, and that this leads to a number of problems that we also tackle. The three main problems when doing automated testing embedded systems are: (i) lack of time, (ii) lack of test systems, and (iii) overflow of information.
The overall goal of the thesis is to "describe and improve upon industrial automated system level software testing of networked embedded systems" and the thesis focuses on the three areas of (i) System-Level Regression Test Selection, (ii) Test Environment Assignment, and (iii) the Flow of Information in Software Testing.
PDF's: Presentation, Kappa, Papers and Appendices
The presentation of my licentiate thesis is available as PDF here: [1], and the introduction (kappa) is available here: [2]
The four papers are:
- Paper A: Experience Report Suite Builder
- Paper B: Automated Test Mapping And Coverage For Network Topologies.
- Paper C: Decision Making And Visualizations Based On Test Results.
- Paper D: Information Flow In Software Testing -- An Interview Study with Embedded Software Engineering Practitioners (in revision at time of lic, published in IEEE Access in 2019).
The five appendices are
- Interview questions from paper C, PDF: [3]
- Questionnaire from paper C, PDF: [4]
- User Stories from paper C, PDF: [5]
- Instrument from paper D, PDF: [6]
- Themes and Subthemes from paper D, PDF: [7]
Abstract
Embedded systems are ubiquitous and play critical roles in management systems for industry and transport. Software failures in these domains may lead to loss of production or even loss of life, so the software in these systems needs to be reliable. Software testing is a standard approach for quality assurance of embedded software, and many software development processes strive for test automation. However, important challenges for successful software test automation are: lack of time for testing, lack of test environment availability, and an excess of test results information that renders decision-making hard.
In this thesis these challenges are tackled in three ways. First, in order to combat lack of time for testing, a method for automated system level regression test selection was implemented and evaluated using data from several years of nightly testing in a real world industrial setting. It was shown that automated test selection can be integrated into system level nightly testing and solve problems such as nightly testing not finishing on time. Second, in order to improve the hardware coverage of devices in the test environment and how test cases map to hardware, an algorithm based on the subgraph isomorphism problem was implemented and evaluated using industrial data. This implementation was significantly faster than the previous implementation, and the mapping process was done in such a way that hardware coverage increased over iterations. Third, to better understand decision-making in critical steps of the software development process in an industrial setting, two empirical studies were conducted. The results showed how visualizations and a test results database support decision-making. Results also describe the overall flow of information in software testing: from developers to hardware, and back to developers via the test results database.
Automated system level software testing of networked embedded systems can be difficult to achieve. This thesis addresses several important challenges and provides results that are of interest both to industrial practitioners and researchers.
Populärvetenskaplig sammanfattning
I moderna industriella automatiseringssystem, som ombord på tåg eller i vattenreningsverk, spelar kommunikationsnätverket en kritisk roll. Bortfall av service kan få allvarliga konsekvenser som minskad produktion eller eventuellt dödsfall. Mjukvaran i inbyggda system i nätverk måste vara robust, och mjukvarutestning är standard som metod för kvalitetskontroll. Denna testning är dyr, repetitiv, kan begränsa tiden till marknad och drabbas ofta av förseningar. Testautomatisering är därför önskvärd.
Westermo Research and Development AB samarbetar i ett pågående forskningsprojekt med Mälardalens Högskola där Per Erik Strandberg undersöker testautomatisering av dessa system. Strandbergs forskning fokuserar på två huvudområden. För det första, hur testar vi på ett smartare sätt givet begränsade resurser: ska vi alltid köra alla testfall? Vilken hårdvara ska vi använda för testerna? För det andra, hur kan vi använda den ökande mängd data om testresultat som kommer från ökad testautomatisering?
Den första delen av Strandbergs forskning är inriktad på förbättrade algoritmer och implementering av dessa i verktyg. Ett exempel på ett sådant verktyg är Svitbyggaren som väljer de viktigaste testfallen givet ett antal prioriteringskriterier. Ett andra verktyg väljer hårdvara för testningen. För att kunna visa att dessa verktyg utökar forskningsfronten så gjorde han utvärderingar med industriell data som samlats in under flera år. Däribland detaljer om miljoner av testexekveringar, och även information om hur hårdvara organiserats i testsystem. Resultaten visar att förbättrade verktyg löser kritiska problem: med Svitbyggaren så avslutas nu testningen i tid och tillkortakommanden i kvalitet hittas tidigare. Vidare så kan allokeringen av hårdvara ändras över tid, något som förbättrar testtäckningen.
Den andra delen av Strandbergs forskning använder kvalitativa metoder där intervjuer med utövare är centrala. Han transkriberade mer än 20 timmar ljud till mer än 130 sidor text som sedan analyserades med metoder med ursprung i forskning om psykologi. I dessa studier visar Strandberg hur testresultat nu visualiseras och hur beslut tas med hjälp av en databas med testresultat. Han visar även det övergripande informationsflödet i mjukvarutestningsprocesserna, samt teman, utmaningar och bra tillvägagångssätt. De viktigaste bra tillvägagångssätten är: nära samarbete och kommunikation mellan roller.
Det finns ett gap mellan industri och akademi inom fältet mjukvarutestning. Strandbergs resultat och beskrivningar av verktyg kan guida och inspirera andra industriella utövare. Vad gäller forskning inom visualisering och kommunikation som skulle kunna vara viktig för det fortsatta arbetet så ligger akademin före och mycket forskning har redan gjorts. Men utmaningen att allokera hårdvara är ny för akademin. Det är uppenbart att framtida forskning om mjukvarutestning skulle dra nytta av ett fortsatt samarbete mellan industri och akademi, och Strandberg hoppas spela en roll i överbryggandet av gapet.
This page belongs in Kategori Publikationer.