自动化测试框架的发展及开发

如题所述

第1个回答  2022-07-02
自动化测试框架是自动化测试的核心,在开展自动化测试工作前,需要相应的自动化测试框架。一个好的自动化测试框架不但影响自动化测试的进程,也决定自动化测试的成败。

基于界面的软件自动化测试框架经历了四个发展阶段: 无框架→数据驱动→关键字驱动→混合模型,如图 17-2 所示。

(1)无框架阶段(即简单的录制/回放)。

■ 在早期,自动化测试并没有框架这一概念,只是简单的录制/回放,由工具录制并记录操作的过程和数据,并形成脚本,通过对脚本的回放重复人工操作的过程。这种模式脚本与数据混合在一起,导致一个测试用例对应着一个脚本,维护成本很高,并且当界面发生变化时,就得重新录制脚本,导致脚本的使用率很低。

(2)数据驱动(Data Driven)框架阶段。

■ 无框架阶段最大的缺点就是脚本与数据混合在一起,为了解决这一问题,自动化测试框架发展到数据驱动框架阶段,该框架从数据文件中读取数据,通过参数化的方式将数据文件中的数据写入脚本中,由于不同的数据对应着不同的测试用例,将脚本与数据彻底地分离,因此提高了脚本的使用率,大大降低了脚本的维护成本。虽然数据驱动框架解决了脚本与数据的问题,但并没有将被测试对象与操作分离。

(3)关键字驱动(Keyword Driven)框架阶段。

■ 关键字驱动测试是在数据驱动框架的基础上改进的一种框架模型。它将测试逻辑按照关键字进行分解,形成数据文件与关键字对应封装的业务逻辑。主要关键字包括三类:被测试对象(Item)、操作(Operation)和值(Value)。用面向对象形式将其表现为 Item.Operation(Value)。关键字驱动的主要思想是:脚本与数据分离、界面元素名与测试内部对象名分离、测试描述与具体实现细节分离。

(4)混合框架(Hybrid Framework)阶段。

■ 关键字驱动框架将自动化测试框架带入了一个新的阶段,自动化测试工具 QuickTest 也很好地使用了这个理念。但在实际开展自动化测试的时候,发现测试工具所带的关键字驱动方式还是无法很好地完成测试任务。该框架虽然将数据与脚本进行了分离,但是如果要更灵活地调用测试用例中的数据或输出测试结果,该框架无法做到;并且需要读取其他文件存储格式中的数据时也是无法很好地解决,这样在自动化测试开始的前期,工程师会开发一个符合实际测试的框架来支持后期的测试工作,这就是通常所说的混合模型自动化测试框架。

随着自动化测试框架的不断发展,自动化测试脚本类型也在不断地发生变化。 自动化测试脚本类型的发展经历了以下几个阶段:

(1)线性脚本。

▲ 通过录制直接产生线性执行脚本。线性脚本无法对其逻辑或顺序进行任何的调整,产生的线性脚本只能按顺序一行一行地执行。该脚本类型对应着自动化测试框架发展中的无框架阶段。

(2)结构化脚本。

▲ 很显然线性脚本无法处理逻辑和业务关系。为了解决该问题,在原来的线性脚本中添加了顺序、循环和分支等结构的脚本,形成结构化脚本。

(3)共享脚本。

▲ 在实际测试过程中,需要将调试的脚本进行共享,供其他工程师调用,这样脚本类型就发展到了可共享的阶段。

(4)数据驱动脚本。

▲ 数据驱动脚本将数据与流程控制进行分离,通过读入数据文件来驱动流程。

(5)关键字脚本。

▲ 脚本、数据、业务分离,数据和关键字在不同的数据表中,通过关键字来驱动测试业务逻辑。

自动化测试框架是由假设、约束以及为自动化测试提供支持的工具的集合。自动化测试框架最大的优点是可以减少测试脚本实现和维护的成本,测试用例只需要修改测试用例文件,而不需要更新脚本驱动程序和引擎驱动程序。自动化测试框架的优劣直接影响到自动化测试的成功与否。

假设自动化测试框架是形成自动化测试策略的基础,下面是常用的假设条件:

约束条件影响着自动化测试是否成功,如果不注意以下约束条件,自动化测试工作将很难成功:

一般自动化测试框架应该包括四部分内容:测试管理、数据驱动、结果分析和测试报告。

如图 17-3 所示是一个混合测试框架模型样例。
相似回答