回归测试是指修改了旧代码之后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。回归测试作为软件生命周期的一个重要组成部分,在整个软件测试过程中占有很大的比重,并且伴随着渐进和快速迭代开发的广泛应用,新版本的连续发布对回归测试的频率和效率都有了更高的要求。因此自动化回归测试无论是从时间、效率还是成本的角度考虑,都是解决这一问题的不二选择。本文随着回归测试的自动化程度不同而展开如下:手工回归测试 -> 自动化回归测试 -> 无需人工干预的自动化回归测试 -> 无需人工干预的跨平台并发自动化回归测试。
1. 手工回归测试
手工回归测试软件一般由以下步骤组成:
监测并下载最新版本的被测软件
准备测试环境
安装被测软件
手工执行测试用例
记录执行结果
2. 自动化回归测试
2.1. 自动化回归测试工具
回归测试的步骤以及回归测试用例本身相对固定的特点,保证了自动化回归测试的可行性。除了利用 Java,ANT 等直接开发自动化脚本以外,各种自动化测试的软件和工具也保证了自动化回归测试的可行性:
IBM® Rational® Functional Tester(RFT)是一个面向对象的自动化测试工具,用于测试 Windows® 2000、Windows® XP 和 Linux 平台上的基于 Java、HTML、VB.NET、Microsoft® Windows® 的应用软件。
Software Test Automation Framework (STAF) 是一个开源的、跨平台、支持多语言的自动化测试框架,它是基于可重用的组件来构建的。
2.2 .自动化回归测试的可行性
将手工测试自动化,首先需要考虑的是手工测试的每一步(见章节 1)是否可以实现自动化。换而言之,也就是是否可以利用命令行操作或者脚本语言来代替手工测试中需要人机交互的部分:
MILY: Arial">(自动)监测并下载最新版本的被测软件
根据被测软件存放的服务器类型、协议的不同,可以利用相应的命令行操作工具,实现自动监测并下载最新版本的被测软件。例如:wget,mget。
(自动)准备测试环境
目前被广泛使用的 VMware 虚拟机,不但支持多种操作系统,可以通过 revert to snapshot 恢复到任何环境,还提供了命令行工具 vmrun 。因此,我们可以利用命令行操作实现自动将虚拟机还原到最初的干净的测试环境,并且开启虚拟机。举例如下 :
<VMware Install Path>VMware VIXvmrun revertToSnapshot <your-VM> <some-snapshot>
<VMware Install Path>VMware VIXvmrun start <your-VM>
(自动)安装被测软件
大部分的软件都会提供命令行安装方式,也就是所谓的“ Silent Installation ”。利用提前设置好的安装配置信息,实现无需用户输入的自动安装软件并不是一件难事。
(自动)执行测试用例
Rational Functional Tester 是目前非常流行的一个面向对象的自动化测试工具。通过编写 RFT 脚本,可以实现对 Java、.Net 以及基于 Web 的各种应用程序的自动测试。
(自动)记录执行结果。
Rational Functional Tester 提供了两种开发环境:Eclipse 框架中的 Java™ 或者 Microsoft™ Visual Studio™ 开发系统中的 Microsoft™ Visual Basic™ .NET 。无论是使用哪一种脚本,都可以通过嵌入 DAO 的方式访问数据库,进而将 RFT 脚本的执行结果自动记录到数据库中,再经由网页展现出来,见图 1 。
图 1. 自动记录执行结果
2.3. 自动化回归测试
基于以上的可行性分析,手工回归测试的每一步都是可以通过命令行操作,或者脚本语言来实现的。如果将把手工回归测试的每一步分别自动化,比喻成一颗颗的珍珠,那么 STAF/STAX 就是一根绳子,它将一颗颗珍珠串起,构成了一根美丽的项链。
Software Test Automation Framework (STAF) 是开源、跨平台、支持多语言并且基于可重用的组件来构建的自动化测试框架。 STAF eXecution engine (STAX) 是基于 XML 的执行引擎,它是 STAF 提供的众多外部服务中的一种。简单来说,STAX 脚本不但可以利用 STAF 提供的各种内部、外部服务,方便快捷地实现很多功能,而且它还可以在任何一台装有 STAF 的机器上远程同时执行。基础架构见图 2 。
图 2. 基础架构
为了方便重用,我们可以把手工回归测试的各个部分写成独立的 STAX 脚本,如图 3 所示。
文章来源于领测软件测试网 https://www.ltesting.net/