[关闭]
@songying 2018-06-29T12:46:48.000000Z 字数 587 阅读 1066

好的测试所具有的品质

单元测试


A-TRIP

  • 自动化(Automatic)
  • 彻底的 ( Thorough)
  • 可重复( Repeatable)
  • 独立的(Independent)
  • 专业的 (Professional)

自动化

调用测试自动话和检查结果自动化

维护这个环节最重要的在于: 不要引入一个由于需要手动步骤而打破这个自动化模型的测试。对于测试所需要的任何条件(数据库, 网络连接等)都应该让它们成为测试自身的一个自动化组成部分。

彻底的

它们测试了所有可能会出现问题的情况
- 一个极端: 对于每行代码,代码可能达到的每个分支,每个可能抛出的异常等,都可以作为测试的对象
- 另一个极端: 仅仅测试最可能的情况: 边界条件,残缺,和畸形的数据等

可重复

每个测试应该独立于所有其他的测试,而且还必须独立于周围的环境。
测试应该能够以任意的顺序一次又一次的执行,并且产生相同的结果。

独立性

每个测试应该有很强的针对性,且独立于环境和其他的测试。
在编写测试时, 确保你一次只测试了一样东西
一个测试函数应该专注于产品代码中的一个函数,或者组合起来并共同提供某个特性的一组函数。

专业的

必须使用和产品代码相同的专业水准来编写和维护测试代码。

对测试进行测试

  1. 在修正bug的同时改进测试
  2. 通过引入bug来证明测试

如何修正bug?

  1. 验明bug
  2. 编写一个将失败的测试来证明bug的存在
  3. 修正代码,让测试通过
  4. 验证所有的测试仍然可以通过

Spring the Trap

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注