数据驱动测试技术-软件功能测试自动化实战教程(1)

发表于:2015-3-30 09:59

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:周焕来、贾海涛    来源:51Testing软件测试网原创

  2.1  数据驱动测试技术概述
  2.1.1  数据驱动测试的概念
  数据驱动测试是从数据文件(如Excel文件、文本文件、XML文件或数据库等)中读取测试数据,然后通过变量传入事先编写或录制好的测试脚本中,这些变量既可传递测试输入数据也可传递测试输出的验证数据。测试数据只出现在数据文件中,测试脚本负责测试逻辑业务过程、测试状态以及数据文件读取,因此,测试数据和测试脚本是分开存放的。数据文件中的每一行表示一组测试数据,通过循环遍历数据文件中的每一行,将数据逐一注入到相同的测试流程进行反复的测试验证。
  数据驱动测试框架可减少为实现所有测试用例而需要编写的脚本数量,只需少量脚本即可产生大量测试用例,降低脚本创建和维护成本;测试数据单独存放于数据文件中便于修改和维护;数据存放结构清晰简单,有利于测试结果分析和错误跟踪。
  然而,数据驱动测试的开发和实现需要测试人员对测试脚本语言具有一定的专业基础。数据驱动的测试适应于对相同流程进行大数据量测试且测试结果可被预期的情况;当需要对不同流程进行测试时会受到限制,未提供良好机制适应被测程序的变动,一旦应用程序功能上发生变动,测试脚本和测试数据都可能需要发生相应的改动。
  2.1.2  数据驱动测试技术的来源
  自动化测试框架系统就是针对手工测试效率低,覆盖面不全等问题产生的。自动化测试技术,简单来说就是用计算机按照特定的流程或商业逻辑来模拟用户执行的操作,比较软件执行实际结果与预期结果的差别,将执行的结果记录到日志文件中去的过程。由于计算机能够做到执行重复的操作,并且每一次的操作都是无差异性的,从而弥补了手工测试对单一重复操作的不足,增强了过去纯手工测试过程。自动化测试是测试行业智能化中很重要的一个体现,这个转变大大提高了工作效率。
  软件自动化测试技术发展大致经历了三个阶段。第一个阶段是基于GUI的测试,这种测试检验了标准的GUI对象和控件。测试脚本是非结构化的,并且不可维护。在第二个阶段中,脚本编写者发展了"建立结构良好、健壮的、可维护测试"的能力,其关键特征是测试脚本组件的可重用性。测试自动化的第三个阶段的特征是控制了测试资源。在这个级别上,测试设计和测试自动化被看成是相互分开的行为。
  对于传统的自动化测试技术,即其发展的前两个阶段,当遇到数据输入改变、程序流改变和管理应用程序改变等情况时,由于被改编的数据都是经过硬编码的,若要改变或修改它们,必须编辑或重新记录脚本,这必将消耗大量的时间,达不到自动化测试应有的效果。传统自动化测试失败的主要原因是与捕获/回放方法相关联的维护的负担。而第三阶段的用户却用一个不同的方式使用脚本,即单个脚本处理每个测试用例。数据驱动测试是以此为基础的,将数据包含在数据文件中,并且数据控制自动化测试脚本执行的流程和动作。利用数据驱动自动化测试,既可以改善自动化测试初期比较耗时的情况,又便于自动化测试脚本后期的维护。
  2.1.3  数据驱动测试技术的特点
  自动化测试是对录制和编辑好的测试步骤进行回放,然而测试回放的只是录制时做出的界面操作以及输入的测试数据,或者是脚本编辑时指定的界面操作和测试数据。这种自动化测试方式,其缺点是非常明显的,就是测试覆盖面比较低。
  数据驱动方式的测试脚本开发是解决这类问题的重要手段。它的核心就是从数据文件中读取输入数据,将数据与测试脚本分离,从而可以在不修改测试脚本的情况下通过更新测试数据完成对测试用例的增加、更改和删除。通过变量的参数化,将测试数据传入测试脚本,不同的数据文件对应不同的测试用例。测试脚本的开发和维护是数据驱动自动化测试的重要环节,适当地调整和增强测试脚本实现少的脚本,大量的测试数据。因此,数据驱动测试的主要特点是提高了测试脚本的灵活性,增加测试覆盖面,以及提高应对测试对象变更的能力。
  2.1.4  数据驱动测试技术的适用测试阶段
  数据驱动测试,即黑盒测试(Black-box Testing),又称为功能测试,是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。数据驱动测试注重于测试软件的功能性需求,也即数据驱动测试使软件工程师派生出执行程序所有功能需求的输入条件。数据驱动测试并不是白盒测试的替代品,而是用于辅助白盒测试发现其他类型的错误。
  黑盒测试注重于测试软件的功能性需求,也即黑盒测试使软件工程师派生出执行程序所有功能需求的输入条件。黑盒测试并不是白盒测试的替代品,而是用于辅助白盒测试发现其他类型的错误。
  黑盒测试试图发现以下类型的错误:
  a.功能错误或遗漏;
  b.界面错误;
  c.数据结构或外部数据库访问错误;
  d.性能错误;
  e.初始化和终止错误。
  鉴于数据驱动测试的测试功能,基于数据驱动的自动化测试可以在单元测试、集成测试、系统或验收测试等任何层次中执行。
本文选自《软件功能测试自动化实战教程》,本站经作者的授权。
版权声明:51Testing软件测试网获作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号