Testauksen integroituminen ohjelmistokehitysprosessiin
Moilanen, Perttu (2020)
Moilanen, Perttu
2020
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2020060316676
https://urn.fi/URN:NBN:fi:amk-2020060316676
Tiivistelmä
Tämän työn tarkoituksena oli löytää raskaita työkoneita valmistavan yrityksen ohjelmistokehitysprosessia tehostavia keinoja, sekä käytäntöjä, joiden avulla testaus voitaisiin paremmin integroida osaksi tätä prosessia. Vaikka yritystä ei itsessään mielletä ohjelmistotaloksi, painottuu merkittävä osa tuotekehitystä kuitenkin erinäisiin ohjelmisto ratkaisuihin. On erittäin todennäköistä, että ohjelmistojen määrä tulevaisuudessa on noususuhdanteinen, joten kannattavuuden ja laadun kannalta ajateltuna testauksen, sekä toimintaa tehostavien käytäntöjen merkitys tulee ainoastaan kasvamaan.
Usein ohjelmistokehityksen tehottomuus johtuu prosessin tuottaman palautteen hitaudesta. Hidas palaute puolestaan johtuu suuresta määrästä manuaalista työtä, jota ei jostain syystä ole saatu automatisoitua. Mitä laajempi järjestelmä, sitä tärkeämpi on automatisoida toistettavissa olevat asiat, jotta ihmiset voivat keskittyä motivoivaan luovaan työhön. Tämän työn puitteissa pyrittiin löytämään syitä prosessin tehottomuuteen, sekä lisäksi tarkoituksena oli löytää niitä keinoja, joiden avulla näitä prosessin tuottoa rajoittavia ”hukka” -tekijöitä voitaisiin minimoida.
Työn teoreettisena viitekehyksenä toimi jatkuvan integroinnin, sekä toimituksen prosessimalli painotettuna testauksen osallisuudella prosessiin. Teoriaosuudella pyrittiin avaamaan prosessimallia yleensä, sekä olennaisia käytäntöjä prosessin toimivuudelle. Vaikka testausprosessi voidaan tietyissä tilanteissa käsittää omana prosessinaan, niin tämän työn puitteissa käsitys siitä pyrittiin liittämään osaksi kokonaisuutta. Prosessimallin puitteissa testaus on osa ketterää kehitystiimiä ja vastuu testatun kokonaisuuden toimittamisesta on yksistään kehitystiimillä.
Tutkimusosa toteutettiin haastatteluiden sekä havainnoinnin avulla. Haastattelut toivat näkemystä prosessin nykytilasta niin työntekijöiden, kuin johdon näkökulmastakin. Merkittävänä seikkana tulosten analysoinnin kannalta olivat yllättävän yhteneväiset näkemykset riippumatta haastateltavan asemasta. Myös havainnointi täydensi haastatteluista saatuja näkemyksiä.
Nykyisellään yrityksen ohjelmistokehitysprosessi noudattaa jatkuvan integroinnin prosessimallia, joten tämän työn puitteissa laadittiin ainoastaan ehdotuksia kehitystoimenpiteistä prosessin tehostamiseksi. Lisäksi luotiin alustava testausstrategia tulevalle ohjelmistosukupolvelle tulevaksi kolmeksi vuodeksi. The purpose of this work was to get acquainted to the software development process of a company manufacturing heavy work machines, as well as to find good practices and how testing could be more integrated into this process. Although the company itself is not considered as a software house, a significant part of its product development is focused on various software solutions. It is very likely that the amount of software in the future will be further increased, so in terms of quality, the importance of testing will only be pronounced.
Often software development inefficiency is the result of slow development process feedback. Slow feedback is largely result of number of manual works that for some reason have not been automated. The wider the system, the more important it is to automate repetitive things so people can focus on motivating and creative work. The goal of this work was to find the reasons for the inefficiency of the process, as well as to find ways to minimize the “waste” in process limiting its productivity.
The theoretical framework of the work was the process model of continuous integration and continuous delivery, weighted by the involvement of testing in the process. The theoretical part was aimed at opening the process model in general, as well as the essential practices required for the functionality of the process. Although the testing process can be understood as a separate process, the goal of this work was to see testing as a responsibility of whole team. Within the process model, testing is part of the development team and the responsibility for delivering the tested software rests solely with the team.
The research part of the thesis was carried out through interviews and observation. The interviews provided an insight into the current state of the process from the perspective of both employees and management. A significant point for the analysis of the results was that the views were surprisingly consistent regardless of status. The material obtained from the interviews was supplemented with observations, which also confirmed the results obtained through the interviews.
At present, the company's software development process follows a continuous integration process model, therefore, only suggestions for measures to improve the process were made in the work. In addition, a preliminary testing strategy was created for the next software generation for the next three years.
Usein ohjelmistokehityksen tehottomuus johtuu prosessin tuottaman palautteen hitaudesta. Hidas palaute puolestaan johtuu suuresta määrästä manuaalista työtä, jota ei jostain syystä ole saatu automatisoitua. Mitä laajempi järjestelmä, sitä tärkeämpi on automatisoida toistettavissa olevat asiat, jotta ihmiset voivat keskittyä motivoivaan luovaan työhön. Tämän työn puitteissa pyrittiin löytämään syitä prosessin tehottomuuteen, sekä lisäksi tarkoituksena oli löytää niitä keinoja, joiden avulla näitä prosessin tuottoa rajoittavia ”hukka” -tekijöitä voitaisiin minimoida.
Työn teoreettisena viitekehyksenä toimi jatkuvan integroinnin, sekä toimituksen prosessimalli painotettuna testauksen osallisuudella prosessiin. Teoriaosuudella pyrittiin avaamaan prosessimallia yleensä, sekä olennaisia käytäntöjä prosessin toimivuudelle. Vaikka testausprosessi voidaan tietyissä tilanteissa käsittää omana prosessinaan, niin tämän työn puitteissa käsitys siitä pyrittiin liittämään osaksi kokonaisuutta. Prosessimallin puitteissa testaus on osa ketterää kehitystiimiä ja vastuu testatun kokonaisuuden toimittamisesta on yksistään kehitystiimillä.
Tutkimusosa toteutettiin haastatteluiden sekä havainnoinnin avulla. Haastattelut toivat näkemystä prosessin nykytilasta niin työntekijöiden, kuin johdon näkökulmastakin. Merkittävänä seikkana tulosten analysoinnin kannalta olivat yllättävän yhteneväiset näkemykset riippumatta haastateltavan asemasta. Myös havainnointi täydensi haastatteluista saatuja näkemyksiä.
Nykyisellään yrityksen ohjelmistokehitysprosessi noudattaa jatkuvan integroinnin prosessimallia, joten tämän työn puitteissa laadittiin ainoastaan ehdotuksia kehitystoimenpiteistä prosessin tehostamiseksi. Lisäksi luotiin alustava testausstrategia tulevalle ohjelmistosukupolvelle tulevaksi kolmeksi vuodeksi.
Often software development inefficiency is the result of slow development process feedback. Slow feedback is largely result of number of manual works that for some reason have not been automated. The wider the system, the more important it is to automate repetitive things so people can focus on motivating and creative work. The goal of this work was to find the reasons for the inefficiency of the process, as well as to find ways to minimize the “waste” in process limiting its productivity.
The theoretical framework of the work was the process model of continuous integration and continuous delivery, weighted by the involvement of testing in the process. The theoretical part was aimed at opening the process model in general, as well as the essential practices required for the functionality of the process. Although the testing process can be understood as a separate process, the goal of this work was to see testing as a responsibility of whole team. Within the process model, testing is part of the development team and the responsibility for delivering the tested software rests solely with the team.
The research part of the thesis was carried out through interviews and observation. The interviews provided an insight into the current state of the process from the perspective of both employees and management. A significant point for the analysis of the results was that the views were surprisingly consistent regardless of status. The material obtained from the interviews was supplemented with observations, which also confirmed the results obtained through the interviews.
At present, the company's software development process follows a continuous integration process model, therefore, only suggestions for measures to improve the process were made in the work. In addition, a preliminary testing strategy was created for the next software generation for the next three years.