请原谅我的标题有点挑衅。我举个例子。假设你需要编写一个程序来制造一辆汽车。这是一个测试程序:
public void testCarBuilder()
{
expectedCar=someCar;
actualCar=carFactory.build(bigWhell, yellowBodyCar);
assertEqual(expectedCar, actualCar);
}
要知道,要造一辆汽车,我们需要一个以车轮和carBody为参数的函数,它至少应该对程序进行过分析。这种分析可以用自然语言、UML 甚至直接用编程语言编写!我们可以将这种分析写在一张纸上,留在我们的大脑中,或者写入文件。分析已经是一个程序的骨架!所以在测试之前总是至少要写一个程序骨架!说开发任务从写测试开始就是sybyllin,之前总会有第一个骨架程序(我们可以称之为分析)要写。除非有人告诉我相反的情况是如何可能的。