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
Instructions for the author
Authors
Date
2006
Department
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, JormaThesis advisor
Lindqvist, SiljaKeywords
Test-Driven Development, testivetoinen ohjelmointi, unit testing, yksikkötestaus, code metrics, koodimittarit