我们知道基于界面的软件自动化测试经历了4个发展阶段。

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

  在早期,自动化测试并没有框架这一说,自动化测试只是简单的录制/回放,由工具录制并记录操作的过程或数据,并形成脚本。通过对脚本的回放重复人工操作的过程。这种模式脚本与数据混合在一起。站在软件开发的角度来看,这种开发耦合度高,我们知道软件工程的思想,是高内聚低耦合。而简单的录制回放完全违背了这一思想,简单的录制回放,重用性非常低,同时维护成本非常高。

  (2)数据驱动框架阶段

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

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

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

  (4)混合模型框架阶段

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