Definition
Plain language
The written description of what a program is supposed to do.
As stated in the literature
The stated contract for a task's inputs, outputs, and behavior; behavior it leaves unstated is where model-authored tests tend to invent requirements.
Also called: specifications
Why it matters: Every gap in the written description is a place where a model will fill in a requirement of its own and then test against it, failing code that was never actually wrong.
For example, a specification might say a function takes a list of numbers and returns them in ascending order, but say nothing about what to do with an empty list.
Heard on the show
“The specification says nothing whatsoever about malformed input.”Episode 233 — Why a Model Can Grade an Answer But Not Write the Answer Key