University of Oulu

The role of process conformance and developers' skills in the context of test-driven development

Saved in:
Author: Fucci, Davide1,2
Organizations: 1University of Oulu Graduate School
2University of Oulu, Faculty of Information Technology and Electrical Engineering
Format: ebook
Version: published version
Access: open
Online Access: PDF Full Text (PDF, 2.5 MB)
Persistent link: http://urn.fi/urn:isbn:9789526211657
Language: English
Published: Oulu : University of Oulu, 2016
Publish Date: 2016-04-26
Thesis type: Doctoral Dissertation
Defence Note: Academic dissertation to be presented with the assent of the Doctoral Training Committee of Technology and Natural Sciences of the University of Oulu for public defence in Auditorium IT116, Linnanmaa, on 6 May 2016, at 12 noon
Tutor: Professor Burak Turhan
Professor Markku Oivo
Reviewer: Associate Professor Marco Torchiano
Senior Lecturer Daniel Sundmark
Opponent: Professor Oscar Pastor
Description:

Abstract

Modern software development must adapt to demanding schedules while keeping the software at a high level of quality. Agile software development has been adopted in recent years to meet such a need. Test-driven development (TDD) is one practice that has arisen within the agile software development movement that leverages unit tests to develop software in incremental cycles. TDD supporters claim that the practice increases the productivity of the practitioners who employ it, as well as the internal and external quality of the software they develop. In order to validate or refute such claims, the software engineering research community has studied TDD for the last decade; the results of the empirical studies on the effects of TDD have been mostly inconclusive.

This dissertation has studied two factors that may impact the manifestation of the claimed effects of TDD on software’s external quality and developers’ productivity: the developers’ conformance to the process (i.e., their ability to follow TDD) and their skills. The research was performed in four phases. In the first phase, the literature was reviewed to identify a set of factors that have been considered to affect TDD. In the second phase, two experiments were executed within academia. A total of 77 students at the University of Oulu, took part in the studies. These experiments investigated the quality of the software, as well as the subject’s productivity with respect to their programming and testing skills. A follow-up study, using data collected during the second experiment, explored the relation between the quality, productivity and the subjects’ process conformance. In the third phase, four industrial experiments, involving 30 professional, were performed. Process conformance and skills were investigated in relation to the TDD’s effects on external quality and productivity. The fourth phase synthesized the evidence gathered in the two previous phases.

The results show that TDD is not associated with improvements in external quality, or developers’ productivity. Further, improvements in both external quality and productivity are associated with skills, rather than with the process, at least in the case of professional developers. Hence, process conformance has a negligible impact. The productivity of novice developers, on the other hand, can benefit from the test-first approach promoted by TDD.

see all

Tiivistelmä

Modernin ohjelmistokehityksen täytyy mukautua haastaviin aikatauluihin säilyttäen ohjelmistojen korkea laatu. Ketterä ohjelmistokehitys on viime vuosina omaksuttu tähän tarpeeseen ja suuntauksessa on saanut alkunsa testivetoisen kehityksen käytäntö, joka hyödyntää yksikkötestausta ohjelmiston inkrementaalisessa, syklisessä kehityksessä. Testivetoisen kehityksen puolestapuhujat väittävät tämän käytännön lisäävän ohjelmistokehittäjien tuottavuutta sekä ohjelmiston sisäistä ja ulkoista laatua. Ohjelmistotuotannon tutkimusyhteisö on tutkinut testivetoista kehitystä viimeisen vuosikymmenen aikana vahvistaakseen tai kumotakseen nämä väitteet. Empiiriset tutkimukset testivetoisen kehityksen vaikutuksista ohjelmistotuotantoon ovat suurelta osin tuloksettomia.

Tämä väitöstyö tutkii kahta tekijää, jotka voivat vaikuttaa testivetoisen kehityksen väitettyjen vaikutusten ilmentymiseen ohjelmiston ulkoisena laatuna ja ohjelmistokehittäjien tuottavuutena: ohjelmistokehittäjien taitoja ja prosessin mukaista toimintaa. Tutkimus toteutettiin neljässä vaiheessa. Ensimmäisessä vaiheessa tehtiin kirjallisuuskatsaus, jolla selvitettiin tekijöitä, joiden on katsottu vaikuttavan testivetoiseen kehitykseen. Toisessa vaiheessa tehtiin Oulun yliopistolla kaksi koetta, joihin osallistui kaikkiaan 77 opiskelijaa. Kokeissa tutkittiin ohjelmiston laadun ja osallistujien tuottavuuden suhdetta heidän ohjelmointi- ja testaustaitoihinsa. Toisen kokeen aikana kerättyä aineistoa hyödynnettiin jatkotutkimuksessa, jossa tarkasteltiin laadun, tuottavuuden ja prosessin mukaisen toiminnan suhdetta. Kolmannessa vaiheessa tehtiin neljä koetta, joihin osallistui 30 ohjelmistoalan ammattilaista. Prosessin mukaista toimintaa ja taitoja tutkittiin suhteessa testivetoisen kehityksen vaikutuksiin ohjelmiston ulkoiseen laatuun ja tuottavuuteen. Neljännessä vaiheessa syntetisoitiin kahden edellisen vaiheen löydökset.

Tulokset osoittavat, ettei testivetoinen kehitys liity ulkoisen laadun parantumiseen eikä ohjelmistokehittäjien tuottavuuteen. Parannukset laadussa ja tuottavuudessa liittyvät ennemmin taitoihin kuin prosessiin, ainakin ohjelmistokehityksen ammattilaisten kohdalla. Näin ollen prosessin mukaisella toiminnalla on vähäpätöinen vaikutus. Toisaalta testivetoisen kehityksen suosiman test-first-menettelytavan hyödyntäminen voi edistää aloittelevien ohjelmistokehittäjien tuottavuutta.

see all

Series: Acta Universitatis Ouluensis. A, Scientiae rerum naturalium
ISSN: 0355-3191
ISSN-E: 1796-220X
ISSN-L: 0355-3191
ISBN: 978-952-62-1165-7
ISBN Print: 978-952-62-1164-0
Issue: 671
Subjects:
Copyright information: This publication is copyrighted. You may download, display and print it for your own personal use. Commercial use is prohibited.