English

The role of slicing in test-driven development

Software Engineering 2024-07-19 v1

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.

Keywords

Cite

@article{arxiv.2407.13258,
  title  = {The role of slicing in test-driven development},
  author = {Oscar Dieste and Ayse Tosun and Sira Vegas and Adrian Santos and Fernando Uyaguari and Jarno Kyykka and Natalia Juristo},
  journal= {arXiv preprint arXiv:2407.13258},
  year   = {2024}
}
R2 v1 2026-06-28T17:45:36.774Z