可以测试驱动开发正式验证吗?是否保证程序正确且正常工作?选择测试有正式的基础吗?是否有任何算法可以遵循它?
答案 0 :(得分:4)
以下是一些文章,可以帮助您了解要遵循的算法:
答案 1 :(得分:1)
值得注意的是,如果没有正式说明系统的功能,就很难编写一组已知足够的测试。以下是一些可能有用的论文,以及摘要中的引用:
http://www.pst.ifi.lmu.de/~baumeist/publications/baumeister04a.pdf
"本文的目的是表明,通过适当的工具支持,可以将正式规范与测试驱动开发相结合,而不会失去测试驱动开发的灵活性。"
http://wiki.overturetool.org/images/d/df/WS9Mochio.pdf
&#34;本文介绍了使用VDM ++正式规范语言作为可扩展敏捷形式(SAF)软件开发方法的基础,这是一种用于关键任务或大规模软件开发的敏捷方法&#34; < / p>
https://online.tugraz.at/tug_online/voe_main2.getVollText?pDocumentNr=275810&pCurrPk=67400
&#34;在本文中,我们提出将几种技术结合到一个敏捷的正式开发过程中:基于模型的测试,正式模型,模型的细化,模型检查和测试驱动的开发。&#34; < / p>
答案 2 :(得分:0)
但是,您可以应用Equivalence Partitioning等传统测试技术来提高TDD测试的完整性。 Code coverage分析还提供了关于测试有效性的(不完整)视图。
对于更加定理证明的方法,您可以查看Property-based Testing。虽然TDD周期在这样的背景下看起来肯定不像规范,但它可以用TDD思维攻击。
答案 3 :(得分:0)
可以测试驱动开发正式验证吗?
没有对测试驱动开发的正式验证,因为它的主要目标不是生成测试,而是提供一种方法来设计和编码。
是否保证程序正确且正常工作?
我不认为无论采取哪种方式,都能完全保证程序是正确的。
是否有选择测试的正式基础?
我们在TDD中选择测试的方式是编写那些应该引导我们完成下一个我们即将编写的代码单元的方法。
是否有任何算法可以遵循它?
它实际上非常简单(但很难熟练)。