我想学习如何构建旨在自我测试的“强大”软件。换句话说,我如何在我的软件中实现自动化测试(使用 java 或 groovy 或 c++ )。
所以我想知道在哪里学习这个(书籍或网站)以及我需要哪些工具和图书馆?
我想学习如何构建旨在自我测试的“强大”软件。换句话说,我如何在我的软件中实现自动化测试(使用 java 或 groovy 或 c++ )。
所以我想知道在哪里学习这个(书籍或网站)以及我需要哪些工具和图书馆?
除了前面提到的测试驱动开发 (TDD) 技术之外,您还可以看一下按合同设计,这是另一种技术,基本上,在生产代码中添加断言以在运行时验证合同条款(输入、输出和组件之间的不变量)得到尊重。在交付软件时,可以删除或保留这些断言。
我想补充我的答案,以明确 TDD 不会导致“旨在测试自身的软件”,而是一些软件 - 单元测试套件,与生产代码一起发展,可以测试另一款软件.
查看 xUnit 测试框架(用于 C++ 的cppUnit ,用于 Java 的JUnit)并查看精彩的书xUnit 测试模式:重构测试代码。
如果您真的想深入了解它,请查看测试驱动开发。一个很好的介绍是鲍勃叔叔的 TDD 的三定律和保龄球游戏 kata(另请参阅保龄球游戏插曲)。一本关于这个主题的好书是测试驱动开发:通过示例。
JUnit,Java 的自动化测试工具,是真正启动的工具。 JUnit 站点是一个很好的起点。它收集了许多文章和测试工具的链接。
我不知道“测试自己”部分,但我的第一个想法是阅读测试驱动开发(http://en.wikipedia.org/wiki/Test-driven_development)并查看 JUnit。
我发现Roy Osherove 的 The Art of Unit Testing对理解单元测试、整数测试、TDD 等基础知识非常有帮助。它有点为 .Net 语言量身定制,但它也提供了关于自动化测试背后想法的非常好的信息。