Testivetoinen kehitys: Ja sen opetus uusille ohjelmoijille
Jussila, Henri (2024)
Jussila, Henri
2024
Tietojenkäsittelytieteiden kandidaattiohjelma - Bachelor's Programme in Computer Sciences
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication 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ä
2024-01-08
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-2023122011139
https://urn.fi/URN:NBN:fi:tuni-2023122011139
Tiivistelmä
Ohjelmistokehityksen mallit kokivat suuria muutoksia hieman yli 20 vuotta sitten, kun Extreme Programming ja testivetoinen kehitys keksittiin. Työelämässä mallit otettiin nopeasti käyttöön, ja perinteistä vesiputousmallia käytetään nykyään hyvin vähän. Opetus tapahtuu vielä pääosin vesiputousmallia käyttäen, jossa ensin kirjoitetaan koodia, ja testaaminen suoritetaan vasta lopuksi. Työelämän vaatimusten ja opetuksen tarjoamien taitojen välillä suurimmat puutteet ovatkin juuri ketterissä kehitysmalleissa ja testaamisessa. Tässä tutkielmassa tutustutaan testivetoiseen kehitykseen, ja syihin miksi sitä kannattaa käyttää uusien ohjelmointiopiskelijoiden opetuksessa.
Tutkielmassa tarkastellaan erilaisia kehitysmalleja, jotta testivetoista kehitystä voidaan ymmärtää paremmin. Näitä malleja ovat vesiputousmalli, Extreme Programming sekä Test First Development. Testivetoisesta kehityksestä esitellään sen määritelmä, käyttötapa, hyödyt sekä haasteet. Tutkielmassa ei kuitenkaan tarkastella sitä, miltä testivetoisen kehitys näyttää kooditasolla, sillä tarkoitus on keskittyä sen tarjoamiin opetuksellisiin hyötyihin. Työn tavoitteena on arvioida nykyistä ohjelmoinnin opetuskäytäntöä, ja löytää hyötyjä testivetoisen kehityksen opettamisesta uusille ohjelmoijille.
Tutkielma on tehty kirjallisuuskatsauksena. Työssä käydään läpi tutkimuksia, joissa testivetoista kehitystä on otettu mukaan ohjelmointikurssien opetukseen. Tutkimuksissa on havaittu testivetoisen kehityksen parantavan koodin laatua, vähentävän ohjelmointivirheitä sekä tekevän ohjelmointityöstä mielekkäämpää. Opiskelijat, jotka käyttivät testivetoista kehitystä, kertoivat sen auttaneen heitä ymmärtämään kurssin asioita paremmin. Ristiriitaisia tuloksia on saatu ohjelmoijan tehokkuuden suhteen. Joidenkin tutkimusten mukaan testivetoinen kehitys tehostaa ohjelmoijien työskentelyä, koska virheiden korjaamiseen kuluu vähemmän aikaa perinteiseen vesiputousmalliin verrattuna. Toiset tutkimukset ovat taas päätyneet tuloksiin, joissa ei ole havaittu merkittäviä eroja tehokkuudessa. Testivetoisen kehityksen opettamisesta on kuitenkin useita hyötyjä ja se valmistaa ohjelmointiopiskelijoita työelämään.
Tutkielmassa tarkastellaan erilaisia kehitysmalleja, jotta testivetoista kehitystä voidaan ymmärtää paremmin. Näitä malleja ovat vesiputousmalli, Extreme Programming sekä Test First Development. Testivetoisesta kehityksestä esitellään sen määritelmä, käyttötapa, hyödyt sekä haasteet. Tutkielmassa ei kuitenkaan tarkastella sitä, miltä testivetoisen kehitys näyttää kooditasolla, sillä tarkoitus on keskittyä sen tarjoamiin opetuksellisiin hyötyihin. Työn tavoitteena on arvioida nykyistä ohjelmoinnin opetuskäytäntöä, ja löytää hyötyjä testivetoisen kehityksen opettamisesta uusille ohjelmoijille.
Tutkielma on tehty kirjallisuuskatsauksena. Työssä käydään läpi tutkimuksia, joissa testivetoista kehitystä on otettu mukaan ohjelmointikurssien opetukseen. Tutkimuksissa on havaittu testivetoisen kehityksen parantavan koodin laatua, vähentävän ohjelmointivirheitä sekä tekevän ohjelmointityöstä mielekkäämpää. Opiskelijat, jotka käyttivät testivetoista kehitystä, kertoivat sen auttaneen heitä ymmärtämään kurssin asioita paremmin. Ristiriitaisia tuloksia on saatu ohjelmoijan tehokkuuden suhteen. Joidenkin tutkimusten mukaan testivetoinen kehitys tehostaa ohjelmoijien työskentelyä, koska virheiden korjaamiseen kuluu vähemmän aikaa perinteiseen vesiputousmalliin verrattuna. Toiset tutkimukset ovat taas päätyneet tuloksiin, joissa ei ole havaittu merkittäviä eroja tehokkuudessa. Testivetoisen kehityksen opettamisesta on kuitenkin useita hyötyjä ja se valmistaa ohjelmointiopiskelijoita työelämään.
Kokoelmat
- Kandidaatintutkielmat [8696]