Ohjelmistotestauksen käytänteet Suomessa
Iivonen, Lucilla (2015-08-28)
Iivonen, Lucilla
Ohjelmistotestauksen merkitys on kasvanut sen mukaan mitä enemmän ohjelmisto-tuotteet vaikuttavat jokapäiväisesseen elämämme. Tämän vuoksi yritysten investointien ja laadunvarmentamisen yhteys on ilmeinen. Organisaatiot panostavat yhä enemmän ei–funktionaaliseen testaukseen, kuten turvallisuuden, suorituskyvyn ja käytettävyyden testaamiseen.
Tämän työn tarkoituksena on tutkia ohjelmistotestauksen nykytilannetta Suomessa. Syy tähän on uudistaa ja parantaa ohjelmistotestauksen kurssitarjontaa Turun yliopistossa vastaamaan parhaalla mahdollisella tavalla yritysten tarvetta.
Opinnäyte on toteutettu replikaatio-tutkimuksena. Pääosa kyselystä sisältää kysymyksiä ohjelmistotestauksen menetelmistä ja työkaluista testausprosessin toimintojen aikana. Lisäksi on yleisiä kysymyksiä yrityksistä ja niiden ohjelmistotestausympäristöistä. Kyselyssä otetaan myös kantaa yritysten käyttämiin monenlaisiin testaus-tasoihin, -tyyppeihin ja testauksessa kohdattuihin haasteisiin.
Tämä opinnäyte perustuu testausprosessistandardeihin. Ohjelmistotestausstandardit ovat keskeisessä asemassa tässä työssä, vaikka ne ovat olleet viime aikoina vahvan kritiikin kohteena. Epäilys standardien välttämättömyyteen on syntynyt muutoksista ohjelmistokehityksessä.
Tämä työ esittelee tulokset ohjelmistotestauksen käytännöistä. Tuloksia on verrattu aiheeseen liittyvän aiemman kyselyn (Lee, Kang, & Lee, 2011) tuloksiin. Ajanpuutteen havaitaan olevan suuri haaste ohjelmistotestauksessa. Ketterä ohjelmistokehitys on saavuttanut suosiota kaikissa vastaajien yrityksissä. Testauksen menetelmät ja työkalut testauksen arviointiin, suunnitteluun ja raportointiin ovat hyvin vähäisessä käytössä. Toisaalta testauksen menetelmien ja työkalujen käyttö automaattiseen testauksen toteuttamiseen ja virheiden hallintaan on lisääntynyt. Järjestelmä-, hyväksyntä-, yksikkö- ja integraatiotestaus ovat käytössä kaikkien vastaajien edustamissa yrityksissä. Kaikkien vastaajien mielestä regressio- sekä tutkiva- ja ei-funktionaalinen testaus ovat tärkeitä tekniikoita.
The importance of software testing is increasing as the software products are influencing more and more on our everyday life. The connection between corporate investments and the quality assurance performed by non-functional testing is evident. The investments in verifying and validating the features required by the customers are growing. However there are only few studies performed to investigate the software testing practices.
The purpose of this work was to study the current software testing situation in companies in Finland. The main reason for this was to update and improve the software testing courses in the University of Turku according to the current needs of the practices in software industry.
This thesis is implemented as a replication survey. The main part of the questionnaire includes questions that are based on the usage of the testing methods and tools for performing the testing process activities. In addition there are general questions on the companies and the testing environments of the respondents. In the questionnaire, there are also more detailed questions about the used testing levels, types and experienced challenges.
This thesis studies the testing activities that are defined according to the software testing standards. The software testing standards are discussed although some criticism has recently occurred for their validity and necessity.
The findings from the survey are also compared with the findings from an earlier international survey on the same topic. The results show that time constraint, budgets and costs are the biggest challenges experienced in software testing. The agile model of software development is adopted by the majority of the respondents. Test driven development is widely used by the practitioners. Tools and methods for test estimation, planning and reporting are with very low usage. However, the usage of methods and tools for test design, execution and especially defect management has increased. The system, acceptance, unit and integration testing are used by the majority of the respondents. Regression testing, non-functional testing and exploratory testing are identified as important.