The role of slicing in test-driven development
Oscar Dieste, Ayse Tosun, Sira Vegas, Adrian Santos, Fernando, Uyaguari, Jarno Kyykka, Natalia Juristo

TL;DR
This paper introduces a theoretical framework for TDD emphasizing the importance of slicing, contracts, and their interrelations, supported by an industry-controlled experiment to explore TDD's foundational mechanisms.
Contribution
It proposes a novel theoretical model linking TDD, slicing, and contracts, and empirically investigates these connections through a controlled industry experiment.
Findings
TDD cycles correspond to vertical slices of user stories.
Contracts serve as implicit slicing criteria in TDD.
Code during TDD acts as a sliced specification using contracts.
Abstract
Test-driven development (TDD) is a widely used agile practice. However, very little is known with certainty about TDD's underlying foundations, i.e., the way TDD works. In this paper, we propose a theoretical framework for TDD, with the following characteristics: 1) Each TDD cycle represents a vertical slice of a (probably also small) user story, 2) vertical slices are captured using contracts, implicit in the developers' minds, and 3) the code created during a TDD cycle is a sliced-based specification of a code oracle, using the contracts as slicing pre/post-conditions. We have checked the connections among TDD, contracts, and slices using a controlled experiment conducted in the industry.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsEvolutionary Algorithms and Applications · Plant Virus Research Studies · Chromosomal and Genetic Variations
