<自动化测试方案_2>第二章、自动化测试是什么?(What)

第二章、自动化测试是什么?(What)

自动化测试是相对于手工测试而言:通过脚本自动去执行测试用例,从而代替人完成测试工作。

自动化测试相对手工测试优缺点

测试方式

优点

缺点

手工测试

1,完整的对所有业务场景进行覆盖

1,功能较大时需要更多的时间去覆盖所有业务场景

2,测试中更加灵活

2,无法实现快速重复性测试

3,能够进行探索性测试

3,回归测试中,测试人员会有强烈的心理疲劳

4,每次都要写新的测试用例

4,无法实现持续集成

5,测试用例的执行时间长

 

6,不需要懂编程代码

 

 

测试方式

优点

缺点

自动化测试

1,能够实现快速测试所有业务场景

1,需要维护测试用例,保证可执行

2,一次用例可以长期使用

2,首次编写自动化用例时间较长

3,可以实现持续集成

3,无法进行探索性测试

4,执行用例时间短

4,测试用例需要定期维护

 

5,需要懂一些编程代码

 

对于自动化测试,其实又可以分为很多块。见下图:

 

 

同时根据平台UI界面层也可以分成,PC自动化测试,手机端自动化测试

PC自动化测试浏览器页面、GUI程序

手机端自动化测试:APP、微信H5页面、微信小程序

 

为什么要画成一个金字塔形,则不是长方形 或倒三角形呢? 这是为了表示不同阶段所投入自动化测试的比例。如果一个产品从没有做单元测试与接口测试,只做UI层的自动化测试是不科学的,从而很难从本质上保证产品的质量。如果你妄图实现全面的UI层的自动化测试,那更是一个劳民伤财的举动,投入了大量人力时间,最终获得的收益可能会远远低于所支付的成本。因为越往上层,其维护成本越高。尤其是UI层的元素会时常的发生改变。所以,我们应该把更多的自动化测试放在单元测试与接口测试阶段进行

 

既然UI层的自动化测试这么劳民伤财,那我们只做单元测试与接口测试好了。NO! 因为不管什么样的产品,最终呈现给用户的是UI层。所以,测试人员应该更多的精力放在UI层。那么也正是因为测试人员在UI层投入大量的精力,所以,我们有必要通过自动化的方式帮助我们部分解放重复的劳动。

 

在自动化测试中最怕的是变化,因为变化的直接结果就是导致测试用例的运行失败,那么就需要对自动化脚本进行维护;如何控制失败,降低维护成本对自化的成败至关重要。反过来讲,一份永远都运行成功的自动化测试用例是没有价值。 

 

  至于在金字塔中三种测试的比例要根据实际的项目需求来划分。在《google 测试之道》一书,对于google产品,70%的投入为单元测试,20%为集成、接口测试,10% UI层的自动化测试。


分层测试的角度,自动化测试应该逐层进行。

最大量实现自动化测试的应该是单元测试,最容易实现也最容易在早期发现问题;其次是接口级测试,以验证逻辑为目的进行自动化,由于接口的相对稳定,自动化测试成本相对也可以接受;自动化成本最大的便是UI级自动化测试,然而UI界面是直接反馈给用户的效果展示,适度的尤其是BVT级的自动化测试也是非常必要的。

posted @ 2018-08-22 17:48  SonnyZhang  阅读(286)  评论(0编辑  收藏  举报