【发布时间】:2010-01-17 17:09:32
【问题描述】:
我想学习如何构建旨在自我测试的“强大”软件。换句话说,我如何在我的软件中实现自动化测试(使用 java 或 groovy 或 c++ )。
所以我想知道在哪里学习这个(书籍或网站)以及我需要哪些工具和库?
【问题讨论】:
-
好问题,但我认为这个话题有点。应该是“我在哪里以及如何学习自动化软件测试技术?”
标签: unit-testing testing tdd xunit
我想学习如何构建旨在自我测试的“强大”软件。换句话说,我如何在我的软件中实现自动化测试(使用 java 或 groovy 或 c++ )。
所以我想知道在哪里学习这个(书籍或网站)以及我需要哪些工具和库?
【问题讨论】:
标签: unit-testing testing tdd xunit
【讨论】:
除了前面提到的测试驱动开发 (TDD) 技术之外,您还可以查看 design by contract,这是另一种技术,基本上,在生产代码中添加断言以在运行时验证 组件之间的合同条款(输入、输出和不变量)得到尊重。在交付软件时,可以删除或保留这些断言。
我想补充一下我的答案,以明确 TDD 不会导致“旨在测试自身的软件”,而是一些软件 - 单元测试套件,与生产代码一起发展,可以测试另一个一块软件。
【讨论】:
【讨论】:
JUnit,Java 的自动化测试工具,是真正启动的工具。 The JUnit site 是一个很好的起点。它收集了大量文章和测试工具的链接。
【讨论】:
我不知道“自我测试”部分,但我首先想到的是阅读测试驱动开发 (http://en.wikipedia.org/wiki/Test-driven_development) 并查看 JUnit。
【讨论】:
查看 xUnit 测试框架(cppUnit 用于 C++,JUnit 用于 Java)并查看精彩的书籍 xUnit Test Patterns: Refactoring Test Code。
如果您真的想参与其中,请查看test-driven development。一个很好的介绍是鲍勃叔叔的The Three Laws of TDD 和bowling game kata(另见bowling game episode)。关于这个主题的一本好书是Test Driven Development: By Example。
【讨论】:
我发现The Art of Unit Testing by Roy Osherove 对理解单元测试、整数测试、TDD 等基础知识非常有帮助。它有点为 .Net 语言量身定制,但它也提供了关于自动化测试背后想法的非常好的信息。
【讨论】: