Learning Centre

Automatic unit testing of product line architecture

 |  Login

Show simple item record

dc.contributor Aalto-yliopisto fi
dc.contributor Aalto University en
dc.contributor.advisor Lampi, Mikko
dc.contributor.author Eerola, Matti
dc.date.accessioned 2020-12-05T14:55:44Z
dc.date.available 2020-12-05T14:55:44Z
dc.date.issued 2009
dc.identifier.uri https://aaltodoc.aalto.fi/handle/123456789/96977
dc.description.abstract This work studies automatic unit testing of specific software that is web-based and uses product line architecture. Product line architecture enables greater reuse of software components. It also allows customizations for individual customers and products. The objective of this work is to examine what are the problems of testing the specific software and which problems can be solved with automatic unit testing. One objective is also to introduce automatic unit testing as one of the activities in the software engineering process that is used to develop the specific software. The work included literature survey, small open interview, planning and implementation of the automatic unit testing system and empirical study. The objective of literature survey was to research which techniques exist for automatic unit testing and what are the characteristics of automatic unit testing. The literature survey also viewed the effects of product line architecture to software testing. The open interview surveyed the problems involved in testing the software. Empirical study was performed after the implementation of the automatic unit testing system. Code coverage and number of errors found in unit testing were measured during the empirical study. Measurements were used to get insight of how the implemented unit testing system and the automated unit tests affected software testing and quality. The results also helped to assess suitability of the selected tools to testing. In product line architecture unit testing is more efficient during domain engineering than application engineering according to literature. The problem in testing during domain engineering is that variability is not yet bound. Customized testing tools are needed to enable testing when variability is not yet bound so unit testing framework was added to the planned testing system. It was modified to cope with unbound variability iii the product line. Based on the results from the empirical study the implemented solution allowed testing during domain engineering. It was also observed, as in literature, that the costs for creating automatic unit tests were high. There was no clear evidence of improved quality based on the results from this study. Previous researches however have shown that software quality can he improved by automatic testing. Analysis of errors found during automatic unit testing indicated that the majority of errors would not have been found until application testing. The testing of single applications takes place after domain testing so it can be said that some savings were achieved by automatic unit testing, because errors were found earlier. en
dc.description.abstract Tässä työssä perehdytään erään järjestelmän automaattisen yksikkötestauksen toteuttamiseen. Kohdejärjestelmä on Internet-pohjainen sovellus, joka noudattaa ohjelmistotuotelinja-arkkitehtuuria. Arkkitehtuurin avulla ohjelmiston komponenttien uudelleenkäyttöä voidaan parantaa. Lisäksi toimintaa voidaan muokata erilaiseksi eri asiakkaille ja tuotteille. Työn tarkoitus on kartoittaa kohdejärjestelmän testauksessa olevat haasteet ja selvittää, mitkä niistä voidaan ratkaista automaattisella yksikkötestauksella. Lopullisena tavoitteena on, että tämän työn tuloksena automaattinen yksikkötestaus saadaan osaksi sovelluskehitysprosessia. Tavoitteen saavuttamiseksi työssä toteutettiin kirjallisuuskatsaus, jossa kartoitettiin olemassa olevia testausmenetelmiä, automaattisen yksikkötestauksen ominaisuuksia ja tuotelinja-arkkitehtuurin vaikutuksia testaukseen. Testauksessa olevia haasteita kartoitettiin pienimuotoisella avoimella haastattelulla. Havaittujen haasteiden perusteella suunniteltiin ja toteutettiin automaattisessa yksikkötestauksessa käytettävä testausjärjestelmä Kun testausjärjestelmä oli toteutettu, toteutettiin automaattisia yksikkötestejä ja mitattiin testeissä havaittujen virheiden määrää ja saavutettua kattavuutta. Mittausten avulla muodostettiin käsitys siitä, miten toteutettu yksikkötestausjärjestelmä ja automaattiset yksikkötestit vaikuttavat ohjelmiston testaukseen ja laatuun. Lisäksi automaattisten yksikkötestien toteutuksen yhteydessä saatiin parempi kuva valittujen työkalujen soveltuvuudesta automaattisen yksikkötestauksen toteuttamiseen. Kirjallisuuden perusteella tehokkain tapa toteuttaa yksikkötestausta tuotelinja-arkkitehtuurissa on tuotelinjan sovelluskehitysprosessin yksikkötestausvaiheessa. Tuotelinjan sovelluskehitys- prosessissa tapahtuvan testauksen todettiin kuitenkin olevan vaikeaa, koska varioitavuutta ei ole vielä siinä vaiheessa sidottu. Kirjallisuuden mukaan varioitavuuden sitomiseksi tarvittiin varioitavuuden huomioon ottavia työkaluja ja suunniteltuun yksikkötestausjärjestelmään lisättiinkin yksikkötestauskehys, joka laajennettiin käsittelemään tuotelinjan varioitavuutta. Testien toteutuksen yhteydessä kerättyjen tulosten perusteella testausjärjestelmä mahdollisti automaattisen yksikkötestauksen tuotelinjan sovelluskehitysprosessissa. Automaattisten testien toteutuksen yhteydessä törmättiin kuitenkin siihen, että testien toteutus vaatii melko paljon aikaa, mikä on kirjallisuuden mukaan yleisesti testauksen automatisoinnin ongelmana. Mittaustulosten perusteella ei pystytty selkeästi osoittamaan käytetyn järjestelmän vaikutusta ohjelmiston laatuun. Kirjallisuudessa esitetyissä tutkimuksissa testien automatisoinnin on kuitenkin todettu parantavan ohjelmiston laatua. Yksikkötestauksessa havaittujen virheiden analysointi osoitti, että suurin osa yksikkötesteissä havaituista virheistä olisi havaittu vasta yksittäisten tuotteiden testauksen yhteydessä. Yksittäisten tuotteiden testaus taas tapahtuu vasta tuotelinjan testauksen jälkeen, joten automaattisella yksikkötestauksella saavutettiin jonkin verran säästöjä, koska virheet havaittiin aikaisemmin. fi
dc.format.extent 76
dc.language.iso fi en
dc.title Automatic unit testing of product line architecture en
dc.title Ohjelmistotuotelinjan automaattinen yksikkötestaus fi
dc.contributor.school Teknillinen korkeakoulu fi
dc.contributor.school Helsinki University of Technology en
dc.contributor.department Informaatio- ja luonnontieteiden tiedekunta fi
dc.subject.keyword software testing en
dc.subject.keyword ohjelmistotestaus fi
dc.subject.keyword automatic unit testing en
dc.subject.keyword automaattinen yksikkötestaus fi
dc.subject.keyword product line architecture en
dc.subject.keyword tuotelinja-arkkitehtuuri fi
dc.identifier.urn URN:NBN:fi:aalto-2020120555811
dc.programme.major Ohjelmistotekniikka fi
dc.programme.mcode T-106 fi
dc.type.ontasot Master's thesis en
dc.type.ontasot Pro gradu -tutkielma fi
dc.contributor.supervisor Malmi, Lauri
dc.programme Tietotekniikan tutkinto-ohjelma fi
local.aalto.openaccess no
local.aalto.digifolder Aalto_02432
dc.rights.accesslevel closedAccess
local.aalto.idinssi 38701
dc.type.publication masterThesis
dc.type.okm G2 Pro gradu, diplomityö
local.aalto.digiauth ask


Files in this item

Files Size Format View

There are no open access files associated with this item.

This item appears in the following Collection(s)

Show simple item record

Search archive


Advanced Search

article-iconSubmit a publication

Browse

Statistics