Test-Driven Development in the Field; Experiences from a Web Content Management Environment

No Thumbnail Available

URL

Journal Title

Journal ISSN

Volume Title

Helsinki University of Technology | Diplomityö
Checking the digitized thesis and permission for publishing
Instructions for the author

Date

2006

Major/Subject

Ohjelmistotekniikka

Mcode

T-106

Degree programme

Language

en

Pages

(8) + 76 s. + liitt. 3

Series

Abstract

Tämä diplomityö esittelee kokemuksia testivetoisen ohjelmoinnin (Test-Driven Development tai TDD) käytöstä Webbisisällönhallintasovelluksen kehitystyön parissa. TDD on ohjelmointimenetelmä, missä ohjelmoija kirjoittaa testit jokaista ominaisuutta varten ennen kyseisen ominaisuuden toteuttamista. Menetelmän väitetään olevan käytännöllinen ja sen sanotaan vaikuttavan ohjelmakoodin laatuun myönteisesti. Työn teoriaosassa pohditaan TDD:tä ja yksikkötestausta eri näkökulmista. TDD:tä tutkitaan testiautomaation näkökulmasta ja havaitaan, että TDD soveltaa monia testiautomaatiossa hyväksi todettuja käytäntöjä. Suurien yksikkötestikirjastojen vaikutusta ylläpitotyöhön pohditaan, ja tunnistetaan useampia ylläpitoa helpottavaa tekijöitä. Menetelmän soveltuvuutta pohdittaessa tekninen ympäristö tunnistetaan merkittäväksi tekijäksi. Testin luonnin helppoutta sekä ympäristön minimaalisuutta pidetään tärkeinä tavoitteina yksikkötestiympäristöä luodessa. Työn käytännön osuus esittelee haasteita, joihin törmättiin menetelmää soveltaessa. Kolmannen osapuolen ratkaisuja tutkitaan, mutta ne todetaan epäsopiviksi. Työn aikana kehitetään oma ratkaisu, joka sallii testien helpomman luomisen ja nopeamman ajon kuin kolmannen osapuolten ratkaisut. Lisäksi pohditaan yksityiskohtaisesti muutamaa toteutuksen aikana kohdattua ongelmaa. Työn viimeinen osuus koostuu koodimittarien kvantitatiivisestä analyysistä. Tätä analyysiä varten koodi on kategorisoitu sen mukaan, kirjoitettiinko testit varsinaista koodia ennen vai sen jälkeen. Mittareiden mukaan testien kattavuus on merkittävästi suurempi, ja koodin kompleksisuus hieman pienempi, kun ohjelmoidaan testivetoisesti. Kompleksisuudessa havaittu ero ei ollut tilastollisesti merkittävä.

Description

Supervisor

Tarhio, Jorma

Thesis advisor

Lindqvist, Silja

Keywords

Test-Driven Development, testivetoinen ohjelmointi, unit testing, yksikkötestaus, code metrics, koodimittarit

Other note

Citation