如果我正在开发一个概念验证应用程序,那么花时间编写自动化测试是否合理?这是个人项目,我是唯一的开发人员。
我认为此时自动化测试的唯一好处是:
与为此类项目编写自动化测试相关的一些缺点可能是:
任何人都可以在早期阶段为应用程序编写自动化测试时投入时间的利弊吗?
答案 0 :(得分:4)
Google测试自动化大会的全部演讲是关于您的问题: http://www.youtube.com/watch?v=X1jWe5rOu3g
基本上,结论是,更重要的是要知道你正在构建正确的东西而不是构建正确的东西(构建正确的“它”,而不是构建“它”正确)。最重要的是要通过概念验证,并确保它的工作和喜欢。如果人们喜欢你的东西,那么他们就会容忍错误;但如果他们不喜欢你的东西,它就没有错误,他们仍然不喜欢它。
答案 1 :(得分:2)
你的问题是:你需要一个好的设计吗?设计有助于维护,大多数开发人员在添加第一个功能后立即认为自己处于维护模式。
从一个更务实的角度来看:如果你是唯一的开发者,有非常准确的规范并且在这个代码上工作并且永远不会返回它(也不会让其他人返回它),我会说它制作它工作就够了。
但是如果您的POC正常工作,那么不要试图从中获取任何东西,只是重做它。
我估计你应该在设计中付出多少努力(因为过度设计也可能是一个大问题)的最佳建议是:尝试估计代码存活多长时间
参考:我建议你对座右铭"Make it work, make it right, make it fast"进行一些研究。你问的问题是关于2个第一点,但你迟早会问自己同样的优化问题(第三点)
答案 2 :(得分:1)
没有“正确”的答案。 TDD可以使您的概念更强大,更有弹性,更容易开启,并有助于推动API开发。这也需要时间,而根本性的变化意味着测试的变化。
但是,现实生活中很少能完全抛弃“原型”代码。
答案 3 :(得分:1)
答案完全取决于你证明自己的概念会发生什么。 真实无论结果如何,概念验证应用程序都会被丢弃,如果PoC被证明,真正的应用程序将在之后编写。那些PoC显然不需要测试。但方式太多“产品化的PoC”在那里。这些应用程序可能应该预先编写测试。您收到的其他答案会为您提供坚实的支持,您只需要决定您正在构建哪种类型的PoC。