An approach for mature software testing in industrial systems
Pääkkönen, Riku (2021)
Pääkkönen, Riku
2021
Automaatiotekniikan DI-ohjelma - Master's Programme in Automation Engineering
Tekniikan ja luonnontieteiden tiedekunta - Faculty of Engineering and Natural Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2021-03-16
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202102192180
https://urn.fi/URN:NBN:fi:tuni-202102192180
Tiivistelmä
The role of software in industrial systems is constantly increasing: there is more software, the complexity of the software increases and there are more dependencies between different software. As the role of software increases, so does the number of software errors and the adverse impact of the errors. This creates a growing need for software testing. The importance of testing is often neglected, and testing is often the first phase of work that gets overlooked when schedules are tight or resources run out. This does not make the need for testing disappear and can backfire when the project is mature and should be released.
The literature review indicates that industrial software testing does suffer from low automatization levels, lack of regression testing, and poor organization of testing. The testing of industrial systems has some special characteristics that should be covered when testing is planned for industrial systems.
This thesis describes a three-phase approach for implementing testing as a mature software project in industrial systems. The first phase considers the project before testing: economic feasibility, resource mapping, and management support. The second phase includes project analysis, planning of tests and test prioritization, and development of tests. The main component of this phase is a model for analyzing the project by feature and assign priority for the testing of each feature. The third phase concludes the approach to maintenance and continuity of testing in both technical and organizational standpoints.
The approach was used in practice in an industrial software project that is in a mature phase of development. With the help of the approach, the project was successfully analyzed and an initial testing plan with prioritization was created. The implementation of testing based on the plan was started during the writing of this thesis. Ohjelmistojen rooli teollisuusympäristössä kasvaa jatkuvasti: ohjelmistoja on enemmän ja ne ovat monimutkaisempia sekä riippuvaisempia toisistaan. Ohjelmistojen roolin kasvaessa myös ohjelmistovirheiden määrä sekä niiden vaikuttavuus ovat kasvava ongelma, mikä luo tarvetta paremmalle ohjelmistojen testaamiselle. Testaamista ei välttämättä aina nähdä tärkeänä ja se on usein työvaihe, jota ei oteta vakavasti ja jota laiminlyödään ensimmäiseksi resurssi- tai aikataulupaineiden alla. Tarve testaamiselle ei kuitenkaan katoa ja testaamisen tärkeys voi korostua vasta projektin julkaisuvaiheessa.
Aiempi kirjallisuus aiheeseen liittyen osoittaa, että teollisuusohjelmistojen testaus kärsii alhaisesta automatisaatioasteesta, regressiotestauksen puutteesta ja huonosta testauksen organisoinnista. Teollisuusohjelmistojen testaamiseen liittyy myös tiettyjä erityispiirteitä, joita on otettava huomioon testauksen suunnittelussa.
Tämä diplomityö luo kolmivaiheisen lähestymistavan, jolla testaus voidaan tuoda osaksi jo olemassa olevaa ohjelmistoprojektia. Lähestymistavan ensimmäinen osa koostuu tilanteesta ennen testaamista: projektin taloudellinen analyysi, resurssikartoitus ja johdon tuki. Toinen vaihe käsittelee projektin analysointia, testaamisen suunnittelua ja priorisointia sekä testien kehitystä. Tämän vaiheen pääkomponenttina esitellään malli, jonka avulla projekti voidaan käydä läpi ominaisuus kerrallaan ja määritellä testien prioriteetti. Kolmannessa vaiheessa käsitellään testaamisen jatkuvuutta: ylläpitoa sekä teknisestä että organisaation näkökulmasta.
Esiteltyä lähestymistapaa sovellettiin käytännössä teollisuusohjelmistoprojektissa, joka on kypsässä kehitysvaiheessa. Lähestymistavan avulla projekti pystyttiin analysoimaan ja luomaan suunnitelma testauksen implementointia varten sekä implementoimaan ensimmäisiä testejä suunnitelman pohjalta.
The literature review indicates that industrial software testing does suffer from low automatization levels, lack of regression testing, and poor organization of testing. The testing of industrial systems has some special characteristics that should be covered when testing is planned for industrial systems.
This thesis describes a three-phase approach for implementing testing as a mature software project in industrial systems. The first phase considers the project before testing: economic feasibility, resource mapping, and management support. The second phase includes project analysis, planning of tests and test prioritization, and development of tests. The main component of this phase is a model for analyzing the project by feature and assign priority for the testing of each feature. The third phase concludes the approach to maintenance and continuity of testing in both technical and organizational standpoints.
The approach was used in practice in an industrial software project that is in a mature phase of development. With the help of the approach, the project was successfully analyzed and an initial testing plan with prioritization was created. The implementation of testing based on the plan was started during the writing of this thesis.
Aiempi kirjallisuus aiheeseen liittyen osoittaa, että teollisuusohjelmistojen testaus kärsii alhaisesta automatisaatioasteesta, regressiotestauksen puutteesta ja huonosta testauksen organisoinnista. Teollisuusohjelmistojen testaamiseen liittyy myös tiettyjä erityispiirteitä, joita on otettava huomioon testauksen suunnittelussa.
Tämä diplomityö luo kolmivaiheisen lähestymistavan, jolla testaus voidaan tuoda osaksi jo olemassa olevaa ohjelmistoprojektia. Lähestymistavan ensimmäinen osa koostuu tilanteesta ennen testaamista: projektin taloudellinen analyysi, resurssikartoitus ja johdon tuki. Toinen vaihe käsittelee projektin analysointia, testaamisen suunnittelua ja priorisointia sekä testien kehitystä. Tämän vaiheen pääkomponenttina esitellään malli, jonka avulla projekti voidaan käydä läpi ominaisuus kerrallaan ja määritellä testien prioriteetti. Kolmannessa vaiheessa käsitellään testaamisen jatkuvuutta: ylläpitoa sekä teknisestä että organisaation näkökulmasta.
Esiteltyä lähestymistapaa sovellettiin käytännössä teollisuusohjelmistoprojektissa, joka on kypsässä kehitysvaiheessa. Lähestymistavan avulla projekti pystyttiin analysoimaan ja luomaan suunnitelma testauksen implementointia varten sekä implementoimaan ensimmäisiä testejä suunnitelman pohjalta.