Saved in:
Bibliographic Details
Main Authors: Nierstrasz, Oscar, Chiş, Andrei, Gîrba, Tudor
Format: Preprint
Published: 2024
Subjects:
Online Access:https://arxiv.org/abs/2409.00514
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866910586074300416
author Nierstrasz, Oscar
Chiş, Andrei
Gîrba, Tudor
author_facet Nierstrasz, Oscar
Chiş, Andrei
Gîrba, Tudor
contents Software systems should be explainable, that is, they should help us to answer questions while exploring, developing or using them. Textual documentation is a very weak form of explanation, since it is not causally connected to the code, so easily gets out of date. Tests, on the other hand, are causally connected to code, but they are also a weak form of explanation. Although some tests encode interesting scenarios that answer certain questions about how the system works, most tests don't make interesting reading. Examples are tests that are also factories for interesting system entities. Instead of simply succeeding or failing, an example returns the object under test so that it can be inspected, or reused to compose further tests. An example is causally connected to the system, is always live and tested, and can be embedded into live documentation. Although technically examples constitute just a small change to the way that to test methods work, their impact is potentially ground-breaking. We show (i) how Example-Driven Development (EDD) enriches TDD with live programming, (ii) how examples can be molded with tiny tools to answer analysis questions, and (iii) how examples can be embedded within live documentation to make a system explainable.
format Preprint
id arxiv_https___arxiv_org_abs_2409_00514
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Example-driven development: bridging tests and documentation
Nierstrasz, Oscar
Chiş, Andrei
Gîrba, Tudor
Software Engineering
Software systems should be explainable, that is, they should help us to answer questions while exploring, developing or using them. Textual documentation is a very weak form of explanation, since it is not causally connected to the code, so easily gets out of date. Tests, on the other hand, are causally connected to code, but they are also a weak form of explanation. Although some tests encode interesting scenarios that answer certain questions about how the system works, most tests don't make interesting reading. Examples are tests that are also factories for interesting system entities. Instead of simply succeeding or failing, an example returns the object under test so that it can be inspected, or reused to compose further tests. An example is causally connected to the system, is always live and tested, and can be embedded into live documentation. Although technically examples constitute just a small change to the way that to test methods work, their impact is potentially ground-breaking. We show (i) how Example-Driven Development (EDD) enriches TDD with live programming, (ii) how examples can be molded with tiny tools to answer analysis questions, and (iii) how examples can be embedded within live documentation to make a system explainable.
title Example-driven development: bridging tests and documentation
topic Software Engineering
url https://arxiv.org/abs/2409.00514