2017
DOI: 10.1109/tse.2016.2616877
|View full text |Cite
|
Sign up to set email alerts
|

A Dissection of the Test-Driven Development Process: Does It Really Matter to Test-First or to Test-Last?

Abstract: Background: Test-driven development (TDD) is a technique that repeats short coding cycles interleaved with testing. The developer first writes a unit test for the desired functionality, followed by the necessary production code, and refactors the code. Many empirical studies neglect unique process characteristics related to TDD iterative nature. Aim: We formulate four process characteristic: sequencing, granularity, uniformity, and refactoring effort. We investigate how these characteristics impact quality and… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

4
78
0
1

Year Published

2017
2017
2022
2022

Publication Types

Select...
5
2
2

Relationship

3
6

Authors

Journals

citations
Cited by 74 publications
(83 citation statements)
references
References 43 publications
4
78
0
1
Order By: Relevance
“…In particular, the mental model created by the developers does not suit the granular nature of TDD-which, for example, is showed to have positive effects on software quality [68] . We propose the integration of another practice 7 to address this issue, alongside with a more granular specification of the requirements that would better fit the process.…”
Section: Significance Of the Resultsmentioning
confidence: 99%
“…In particular, the mental model created by the developers does not suit the granular nature of TDD-which, for example, is showed to have positive effects on software quality [68] . We propose the integration of another practice 7 to address this issue, alongside with a more granular specification of the requirements that would better fit the process.…”
Section: Significance Of the Resultsmentioning
confidence: 99%
“…Previous work [34] shows that TDD developers create a mental model of their solution to a task which is then translated into unit tests. Novice developers can be uncomfortable with such an activity due to the counter-intuitiveness of this step, but also due to the difficulty of writing tests of good granularity in the absence of the underlying production code [12,24]. Conversely, developers following the non-TDD approach can decide when and what to test without (mindlessly) following a process.…”
Section: Discussionmentioning
confidence: 99%
“…This practice encourages developers to evolve the software through small steps. According to Fucci et al [12], an incremental test-last and TDD "could be substitutes and equally effective provided that they are performed at the same level of granularity and uniformity". Thus, they suggested that the quality assurance might not be tied to its test-first nature, but on granularity effect.…”
Section: Discussionmentioning
confidence: 99%