zoukankan      html  css  js  c++  java
  • <自动化测试方案_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级的自动化测试也是非常必要的。

  • 相关阅读:
    go语言入门(三)
    go语言入门(二)
    Nand Flash 基础
    哈希技术
    NorFlash基础
    二阶构造模式
    C++基础知识汇总
    Arm寄存器介绍及汇编基础
    Linux Makefile详解
    Linux链接器脚本详解
  • 原文地址:https://www.cnblogs.com/1fengchen1/p/9519305.html
Copyright © 2011-2022 走看看