手动测试 和 自动化测试 感想

手动测试

优点:快速,成本低廉;

缺点:重复成本高。

 

自动化测试:

优点:重复成本低,可以实现无人测试。

缺点:首次成本高,技术要求高。

 

那么什么情况下用手动测试,什么情况下用要用自动化测试呢?

 

测试重复度, 如果有一个测试,可以预见会被重复很多次(3次以上或可以估计到重复成本高于自动化测试成本), 那么就应该用自动化测试.

如果一个测试测试重复度低,那么就用手动测试。

开发

测试重复度考量,对于开发来讲,要考量:

    如果一个东西对外部世界有影响,那么建议使用自动化测试来体现它;

  如果它只是内部的东西,那么没有必要用自动化测试覆盖它(手工测试必要)。

 

TDD 应该是从外部需求来 考量 代码的,TDD的测试是为了监视外部需求,而不是内部实现。所以TDD不要追求代码覆盖率。

Unit 测试 是为了 提高内部质量的,所以单元测试需要考虑代码覆盖率。

(建议代码覆盖率的测试,应该到后期补上,而不是TDD的时候考虑,只有代码稳定了,覆盖率才有投资的价值)

 

代码对外部的依赖,一般通过断言来保证。

手动测试可以快速检查代码的正确性;

而自动化测试可以长期监视 变化导致的 代码不能满足需求的错误。

 

如果有时间紧张,建议一定要分清 需求的重要性,对关键需求使用 自动化测试来保证。

 

测试部:

 测试永无止境,所以从投资的角度来看,应该要精力放到最重要的需求上(而不是最容易出错的地方)。

 测试最容易犯的一个错误是,以BUG数来体现价值。而不是以BUG本身的价值来体现。

 BUG的价值是 = 这个BUG发生的几率 × BUG 造成的损失。

 

  所以测试的主要考量,应该放到把握软件的市场价值上。

  用自动化测试来,监视 最重要(最有价值的)的需求。

 

  用手动测试来监视 一些难以自动化的测试(比如布局和可用性)。

  用手动测试来做发散测试。

 

 调试

  手动测试重现BUG,

  自动化测试, 简化BUG的重现条件;

  最后用自动化测试来,检验BUG的修改,以及以后防止BUG的重复出现。

posted @ 2010-02-03 11:06  napoleon_liu  阅读(1643)  评论(0编辑  收藏  举报