Using Automated Unit Testing to Improve Software Quality

dc.contributorAalto-yliopistofi
dc.contributorAalto Universityen
dc.contributor.advisorRinne, Timo
dc.contributor.authorPelkonen, Tuomas
dc.contributor.departmentTietotekniikan osastofi
dc.contributor.schoolTeknillinen korkeakoulufi
dc.contributor.schoolHelsinki University of Technologyen
dc.contributor.supervisorSoisalon-Soininen, Eljas
dc.date.accessioned2020-12-04T19:05:11Z
dc.date.available2020-12-04T19:05:11Z
dc.date.issued2004
dc.description.abstractMost of the work today in software industry is maintenance work. Maintenance work is mostly fixing defects that customers have reported. Every year organizations spend billions of dollars to fix their own defects that could have been fixed a lot cheaper before customers got their hands on the products. Most organizations know this, but the knowledge regarding efficiency and effectiveness of different software quality improvement techniques is limited, despite the fact that a lot of research is done in defect detection. By releasing poor quality software, organizations do not only have to fix the defects, but the future of the organizations is in jeopardy. Poor quality software affects the reputation of the organizations and the motivation of employees, but the largest problem with poor quality software is that it costs a lot of money to release and maintain. Testing is the most common and known software quality improvement technique and almost all organizations test their software before releasing them. However, most of the testing is done just before releasing the product and not enough resources are allocated for testing. Defects found with traditional testing might postpone the release, which is unacceptable in many organizations. Therefore software products are often released despite the fact that there are defects in them. Software quality cannot be added to the software by testing it, instead software must be developed in a way that guarantees that the software has high quality in every phase. Unit testing can be used to assure high quality from the first line of code onwards. Most of the testing done on existing software is done to make sure that all the existing functionality is still working. This is called regression testing. In this thesis it is presented how automated unit testing can be used to improve software quality, combine the benefits of both traditional unit testing and regression testing, and make developers' lives easier.en
dc.description.abstractSuurin osa ohjelmistokehityksestä on jo julkaistujen tuotteiden ylläpitoa. Suurin osa ylläpidosta on asiakkaiden raportoiminen ohjelmistovirheiden korjaamista. Joka vuosi organisaatiot käyttävät miljardeja dollareita korjatakseen tekemiään virheitä, jotka olisi voitu korjata huomattavasti halvemmalla, ennen kuin asiakkaat olisivat päässet käsiksi tuotteisiin. Organisaatiot tietävät tämän asian, mutta he eivät tiedä tarpeeksi erilaisista ohjelmistojen laadunparantamistekniikoista ja niiden tehokkuuksista, vaikka huomattava määrä tutkimustyötä on tehty virheiden havaitsemisessa. Julkaisemalla heikkolaatuisia ohjelmistoja, organisaatiot eivät ainoastaan joudu korjaamaan tuotteissaan olevia virheitä vaan heidän koko organisaationsa tulevaisuus on vaakalaudalla; Huonolaatuiset tuotteet vaikuttavat organisaation maineeseen ja työntekijöiden motivaatioon, mutta lopulta huonolaatuiset tuotteet maksavat paljon enemmän kuin laadukkaat tuotteet. Testaus on yleisin ja tunnetuin laadunparantamistekniikka ja lähes kaikki organisaatiot testaavat tuotteitaan ennen niiden julkaisua, mutta testaus painottuu yleensä projektin loppuvaiheeseen, eikä siihen panosteta tarpeeksi. Perinteisellä testauksella löydettyjen virheiden korjaaminen saattaa viivyttää tuotteen julkaisua, mikä useassa organisaatiossa ei ole hyväksyttävää. Tuotteet julkaistaan vaikka niissä olisikin virheitä. Ohjelmistojen laatua ei voi jälkikäteen testaamalla parantaa vaan ohjelmistoja pitää kehittää menetelmillä, jotka takaavat ohjelmiston laadun jokaisessa vaiheessa. Yksikkötestauksella voidaan varmistaa ohjelmiston laatu jo ensimmäisestä koodirivistä lähtien. Suurin ohjelmistoihin kohdistuvasta testauksesta on jo olemassa olevan toiminnallisuuden testaamista eli regressiotestaamista. Tässä diplomityössä esitetään kuinka automatisoitu yksikkötestaus voi parantaa ohjelmistojen laatua, yhdistää perinteisen yksikkötestauksen ja regressiotestauksen tuomat hyödyt sekä helpottaa kehittäjien elämää.fi
dc.format.extent7+71
dc.identifier.urihttps://aaltodoc.aalto.fi/handle/123456789/92281
dc.identifier.urnURN:NBN:fi:aalto-2020120451116
dc.language.isoenen
dc.programme.majorOhjelmistotekniikkafi
dc.programme.mcodeT-106fi
dc.rights.accesslevelclosedAccess
dc.subject.keywordunit testingen
dc.subject.keywordyksikkötestausfi
dc.subject.keywordregression testingen
dc.subject.keywordregressiotestausfi
dc.subject.keywordautomated unit testingen
dc.subject.keywordautomatisoitu yksikkötestausfi
dc.subject.keywordsoftware qualityen
dc.subject.keywordohjelmistojen laatufi
dc.subject.keywordfi
dc.titleUsing Automated Unit Testing to Improve Software Qualityen
dc.titleAutomatisoidun yksikkötestauksen käyttö ohjelmistojen laadun parantamisessafi
dc.type.okmG2 Pro gradu, diplomityö
dc.type.ontasotMaster's thesisen
dc.type.ontasotPro gradu -tutkielmafi
dc.type.publicationmasterThesis
local.aalto.digiauthask
local.aalto.digifolderAalto_00286
local.aalto.idinssi26709
local.aalto.openaccessno
Files