`

理解自动化测试

    博客分类:
  • Test
阅读更多

自动化测试”有时也叫“测试自动化”,由两部分组成,“自动化”和“测试”,所以我们要理解自动化测试,就必须理解“自动化”和“测试”。

何为自动化:
在理解自动化之前,我们首先来看看如果没有自动化,人类是怎样与计算机进行交互的:我们对计算机的直接操作无非就是鼠标和键盘,使用鼠标定位并操作对象(如窗体上的一个按钮或网页中的一个超链接),使用键盘输入文本(如文本框或地址栏)。那么如果我们要将鼠标定位和操作与键盘输入让计算机自动完成,原理非常简单:用一个程序来记录鼠标的移动轨迹和各种事件(如单击,双击,右鍵,滚动等),将记录键盘事件,然后顺序地把这些记录的操作回放一遍,便实现了自动化。众所周知的自动化软件“按键精灵”,便实现了上述自动化过程。

但是我们很容易地发现,单纯只是记录鼠标和键盘操作很容易由于定位和坐标变化的问题导致运行时出错,所以我们需要寻找更可靠的自动化技术。一种基于对象识别的自动化技术应运而生,将使自动化更加可靠,基于对象识别的自动化技术将不再依靠鼠标来进行定位,而是直接通过某一个对象的属性来对当前系统运行中的窗体进行搜索,找到某个对象后对该对象执行合理的操作。如通常大家使用的宏或AutoIt便属于这类工具。对象识别是自动化技术的基础,同时也是自动化测试的基础。

测试的本质:
作为一个软件测试人员,我们应该思索这样一个问题:测试的本质是什么?大家能想到的很多术语或许都可能成为测试的本质,如需求,业务,测试用例,缺陷等,看上去都像是测试的本质,但是最后都有可能被推翻。笔者在从事测试工作的过程中也从未停止过思考,并得出了测试的本质:期望结果。这看上去或许有点牵强,那么让我们尝试回答以下几个问题:
1.        理解需求,分析需求项的目的是为了什么?
2.        如果理解需求是为了理解解软件的业务流程,那么搞清业务流程的目的又为了什么?
3.        如果搞清业务流程的目的是为了设计出高效的测试用例,那么设计测试用例的目的又是什么?
4.        如果设计测试用例的目的是为了找到更多的缺陷,那么我们判定缺陷的标准是什么?
5.        答案是:期望结果与实际结果不符。

如果我们能理解测试的这一“本质”,我们对软件测试如何开展的思路将会更加清晰,单纯从技术角度上来说,我们的测试要做的最重要的工作就是搞清楚一个软件的功能块的期望结果是什么,不管用什么方法,只要能把期望结果理解清楚,我们的测试便成功了一大半。

自动化测试的本质:
到目前为止我们应该已经理解了自动化技术的基本原理,也理解了软件测试的本质,那么这两者的结合体“自动化测试”又该如何理解呢?自动化测试的本质可归纳为三类十一个字:
1.        对象识别
2.        验证点
3.        数据驱动
“对象识别”技术是自动化测试的基础,任何自动化测试工具如果不能实现对象识别,将不成其为自动化测试工具。那么光能实现对象识别还不行,它只符合自动化的要求,不符合测试的要求,如果要达到测试的要求,则必须使用“验证点”,自动化测试工具中的验证点其实就是期望结果,有时也叫“检查点”。
如果能实现对象识别和验证点功能,便可作为自动化测试工具使用,这是由自动化和测试的本质所决定。但是这样的自动化测试工具将很难应用在实际测试过程中,比如我们要验证一个计算器的功能,我们要验证1+2,要验证1.1+2.2,还得验证1-2或者1.1-2.2等很多测试用例,这个自动化过程的操作都一样,只有计算数和运算符不一样,那么我们便需要使用“数据驱动”(或叫“参数化”)来实现对相同操作的各种测试用例进行测试。理论上来说,数据驱动不是必需的,没有数据驱动也可以完成自动化测试,读者可以在第二章中发现我们并未使用数据驱动,但并不影响我们进行自动化测试。但是现实情况是我们必须使我们的自动化测试脚本足够灵活,没有数据驱动将导致开发和维护测试脚本的成本非常高,甚至高过手工测试的成本。

(声明: 本文版权归作者个人所有, 如需转载, 请注明出处, 如有需要, 请联系QQ: 15903523 (强子))

分享到:
评论

相关推荐

    软件测试自动化测试教案.docx

    理解自动化测试的概念 理解手工测试及自动化测试在软件测试过程中的具体实施 了解手工测试和自动化测试的特点及各自适用场合 本节重点 自动化测试的概念 自动化测试的具体实施 自动化...

    深入理解Android自动化测试 PDF

    深入理解Android自动化测试 PDF 下载深入理解Android自动化测试 PDF 下载深入理解Android自动化测试 PDF 下载深入理解Android自动化测试 PDF 下载

    如何正确理解自动化测试技术

    谈到自动化测试,一般就会提到测试工具。许多人觉得使用了一、两个测试工具就是实现了测试自动化,这种理解是不对的,至少是片面的。的确,测试工具的使用是自动化测试的一部分工作,但“用测试工具进行测试”不等于...

    如何正确理解自动化测试?

    谈到自动化测试,一般就会提到测试工具。许多人觉得使用了一、两个测试工具就是实现了测试自动化,这种理解是不对的,至少是片面的。的确,测试工具的使用是自动化测试的一部分工作,但“用测试工具进行测试”不等于...

    走出自动化软件测试的乌托邦

    1. 如何理解自动化测试框架................................17 2. 测试自动化框架元素管理.................................18 (1) 测试规范管理.........................................18 (2) 测试资源管理......

    深入理解Android自动化测试 (移动开发)

    深入理解Android自动化测试 (移动开发) - 许奔 著.mobi

    深入理解Android自动化测试

    非扫描版 带书签许奔 著ISBN:978-7-111-52120-4目录本书赞誉前言第一部分 基础篇第1章 Android自动化测试基础1.1 Android自动化分析1.2 什么样的兵器最称手1.3 如何耍好你手上的兵器1.4 你了解你的兵器吗1.5...

    许奔-深入理解Android自动化测试(带书签完整版)

    许奔-深入理解Android自动化测试(带书签完整版)

    自动化测试框架思想与构建

    其实这不全面,真正的自动化测试框架可以不是一个程序,它仅仅是一种思想和方法的集合,说白了,就是一个架构,大家应该都知道操作系统其实也是一个架构吧,你可以把其理解成一个基础的自动化测试框架为一个简单的...

    基于python的接口自动化测试框架讲解用PPT

    基于python的接口自动化测试框架讲解用PPT,为了能让学员更好的理解接口自动化测试框架的PPT。

    软件自动化测试工具的评测方法

    正确理解不同的软件平台其自动化测试使用正确的自动化测试工具。

    自动化测试框架,支持接口自动化、WEB UI自动化、APP UI自动化、性能测试;等

    自动化测试框架,支持接口自动化、WEB UI自动化、APP UI自动化、性能测试;支持多系统相互调用;支持接口与UI相互调用;支持dubbo接口调用.zip 适合学习/练手、毕业设计、课程设计、期末/期中/大作业、工程实训、...

    Python接口自动化测试.pdf

    本篇文章将介绍Python接口自动化测试的基本原理、常用工具和实践经验,帮助读者理解和应用Python进行接口自动化测试。 ## 一、接口自动化测试的基本原理 接口自动化测试是通过模拟用户的请求,向系统的接口发送...

    fitness自动化测试框架

    阅读建议:这个资源旨在通过亲自动手实现简化版自动化测试框架,帮助您深入理解其原理和内核。不仅仅是代码编写,更注重对需求分析和方案设计的理解。因此,在学习过程中,建议结合内容需求分析和方案设计,同时通过...

    selenium2 python自动化测试实战

    集成测试阶段的自动化测试工作,所以,在分层的自动化测试中,我们有必要对这些定义重新理解和定义。 单元测试:我们需要规范的来做单元测试同样需要相应的单元测试框架,如java 的Junit、testNG, C#的NUnit ,...

    深入理解Android自动化测试.许奔.2016

    深入理解Android自动化测试.许奔.2016 深入理解Android自动化测试.许奔.2016

    深入理解Android自动化测试学习下载

    深入理解Android自动化测试,仅供学习下载使用。。。。

    KW-2200配电网自动化测试系统V1.1.rar

    KW-2200配电网自动化测试系统是一款规约模拟分析应用程序,支持遥测/遥信/遥脉等,支持源码解析,用于电力规约104开发/模拟仿真测试。可进行主站和子站模拟,配置好通讯参数及终端定义后,添加测试终端、测试计算,...

Global site tag (gtag.js) - Google Analytics