TDD 周期是测试、编码、重构、(重复)然后交付。 TDD 意味着由测试驱动的开发,特别是意味着在开发或编写代码之前先了解需求,然后先编写测试。
我的自然倾向是支持 TDD 的哲学偏见;我想确信现在还有其他方法比 TDD 效果更好甚至更好,所以我问了这个问题。还有其他问题表明 TDD 成本高昂、难以实现、存在挑战……同意,但什么是好的替代方案?
什么是不使用/需要/不需要测试驱动开发的完全可接受的方法的好例子?
我可以想到很多不是 TDD 但可能比它们的值(value)更麻烦的方法......这不是道德判断,只是它们的成本超过它们的值(value)......以下只是示例作为学习练习可能没问题,但我发现在严肃的生产和非 TDD 中 Not Acceptable 方法可能包括:
最佳答案
洁净室软件工程是一种方法,一方面听起来非常僵化、静态、“不敏捷”,几乎与 TDD 正好相反,但另一方面,它实际上非常相似。例如,它是高度迭代的,就像所有敏捷方法一样。与 TDD 一样,您首先要编写规范,但与 TDD 不同的是,规范采用数学正确性证明的形式,而不是可执行的测试。
TDD 周期在哪里
洁净室循环是
我将测试放在括号中,因为它们通常是(半)自动从规范生成的。因此,虽然它们是开发周期的一部分,但它们并不是程序员必须完成的工作的一部分。
从我读到的内容来看,Cleanroom 的性能指标与 TDD 的性能指标非常相似,这让我相信 TDD 的真正值(value)实际上并不在于测试部分,而是在于思考部分。进行一个实验会很有趣,在该实验中,您将 TDD 的“红色”部分替换为一个简单的秒表,该秒表会在您编写新方法之前锁定您的键盘 30 秒。
关于tdd - 什么是不使用/需要/不需要测试驱动开发的*完全可接受*方法的好例子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4533397/