In math geek terms, specifications are universally quantified statements, ones of the form "for all inputs such that <something> is true of them, <something else> is true of the output." Tests are constant statements, ones with no variables. They look like this: "given input 5, the output is 87."

This distinction comes into play when we use TDD with Agitation. The tests help us move forward one case at a time and then Agitiator helps us review if we've accurately captures the specification of the system, or if we've missed boundary cases. It is a shift from the "There Exists" to the "For All" mindset.