前言:本节主要讲解自动化测试的基本概述,包括分层自动化测试、自动化测试中用到的工具、以及关于自动化测试的想法
一、分层自动化测试
上图是经典的测试金字塔。用它来形容目前测试投入的价值是比较适合的,同样也可以用来说明自动化测试的投入价值。
UI层:界面(web)自动化测试,投入价值较小,所以适当的自动化测试是有必要的,但是没有必要100%投入。
Service层:接口测试,价值适中,自动化测试覆盖大多数主要的接口是比较合适的。
Unit层:单元测试,最有价值的,对于测试人员的要求比较高,最好是研发和测试人员配合。
小结:自动化测试主要指的前两种,UI测试和Service测试;特别是UI自动化测试,虽然投入的价值较小,最能提升测试人员的能力。
二、界面自动化测试工具
常用工具:QTP、AutoIt、Selenium
QTP:最新版本是UFT,QTP的优势是可以使用录制回放(注:QTP是用VBScript脚本编写的,用VBS做web测试的工具:AutonomyV)
AutoIt:主要是Windows下的UI测试,用于标准Win32对象,对于非标准的,比如Delphi或者PowerBuilder之类的AutoIt就无能为力了
Selenium:做web测试最全面的工具,支持的浏览器种类全面,而且又是直接在浏览器中操作,所以接近真实操作
小结:AutoIt和Selenium这两个工具,现在在RF里都有对应的测试库,可以用来进行自动化测试。对于QTP来说RF完全取代了它的功能,唯一的缺陷就在于不能录制回放。
三、关于自动化测试的想法
手动测试可以做到覆盖100%,可以把自动化测试比如成一个防弹衣,防弹衣不可能100%保护身体的每一个部分,如果变成100%覆盖率就不是防弹衣了是宇航服了;自动化测试如果100%覆盖会导致投入更多的人力在维护上面。
自动化测试做到什么样才算是最好:
UI层面:保证少量必要的主流程序即可,没有必要追求自动化率越高越好
Service层面:接口自动化测试,可以考虑覆盖大部分流程
Uint层面:可以做到100%的覆盖率,即使需求有变化一般很少影响到自动化测试案例。