我想学习如何构建旨在测试自身的“健壮”软件。换句话说,我如何在我的软件中实现自动化测试(使用java或groovy或c ++)。
所以我想知道在哪里学习这些(书籍或网站)以及我需要哪些工具和库?
答案 0 :(得分:5)
答案 1 :(得分:1)
除了前面提到的测试驱动开发(TDD)技术之外,您还可以看一下design by contract,这是另一种技术,基本上,在生产代码中添加一个断言以在运行时验证 / strong>尊重组件之间的合同条款(输入,输出和不变量)。在交付软件时,可以删除或保留这些断言。
我想补充一下我的答案,以明确TDD不会导致“用于测试自身的软件”,但是一些软件,即单元测试套件,随着生产代码一起生长,测试另一个一块软件。
答案 2 :(得分:1)
答案 3 :(得分:0)
查看xUnit测试框架(C ++为cppUnit,Java为JUnit)并查看精彩的书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。
答案 4 :(得分:0)
JUnit是Java的自动化测试工具,它真正起到了推波助澜的作用。 The JUnit site是一个很好的起点。它汇总了大量文章和测试工具的链接。
答案 5 :(得分:0)
我不知道“测试自己”部分,但我的第一个想法是阅读测试驱动开发(http://en.wikipedia.org/wiki/Test-driven_development)并查看JUnit。
答案 6 :(得分:0)
我发现The Art of Unit Testing by Roy Osherove非常有助于理解单元测试,整合测试,TDD等基础知识。它有点适合.Net语言,但它也提供了有关自动化测试背后的想法的非常好的信息。