Earlier quoted context omitted.
The Mandelbrot set does consist of readily verifiable discrete data points, after all. Indeed it does, but in order to verify them I see only two options. One is that you have to choose test cases where the answer is trivially determined. However, with this strategy, it seems you must ultimately rely on the refactoring step to magically convert your implementation to support the general case, so the hard part isn’t r…
Whether the spec itself is correct is another question, but then we’re getting into verification vs. validation, a different issue. I think you get to the nub of it here. TDD lets you develop a spec that is consistent with requirements (the subset so far implemented) and the code at all times. Writing a comprehensive suite of tests before any production code is like writing a complete spec without any clue as to its…
This is another TDD-related argument that I just don’t understand.
A specification might say that the function add returns the sum of its arguments.
A unit test might verify that add(1,1) = 2.
One of these describes the general case. One of them describes a single specific case. Unless your problem space is small enough to enumerate every possible set of inputs and the expected result for each of them, no amount of unit tests can replace a full specification of the required behaviour. Unfortunately, not many real world problems are that convenient.