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

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

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

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

分享:
  2.1.5  数据驱动测试工具支持情况
  自动化测试框架为支持自动化软件测试设计了平台架构和最佳的实践经验。目前,大多数测试工具处于数据驱动到关键字驱动之间的阶段,有些工具厂商已经提出了支持关键字驱动的版本,但实践应用以及产品支持中,数据驱动框架仍然是当今的主流,数据驱动框架尝试减少执行所有测试数据所需要撰写的脚本数量,并且提供了更好的灵活性,尤其当需要开发对缺陷的重复验证以及执行维护功能。
  数据驱动测试只要非常少的代码,就能覆盖大量的测试用例。由于它的灵活性和成熟性,当今很多工具厂商已经提出支持数据驱动的版本,可以说是自动化测试框架是当前自动化测试技术中用的最多、最普遍的技术。当前支持数据驱动的主流测试工具主要包括WebKing、Rational Robot 、Winrunner、QTP等。
  1.WebKing
  WebKing是 Parasoft 公司推出的一款 Web 自动化测试软件,可以使用其进行白盒、黑盒和回归测试。它除了常规的录制、回放、数据驱动等技术,还可以方便地检查Web页面元素的有效性,如链接、图片、JS、CSS等,支持AJAX。
  2.Rational Robot
  Rational Robot是IBM公司Rational 的产品之一,提供了软件测试的功能,物如其名,Robot:机器人,它提供了许多类似机器人的重复过程,供测试用。
  Rational Robot 可以让测试人员对 .NET、Java、Web和其他基于 GUI 的应用程序进行自动的功能性回归测试。它是一种对环境的多功能的、回归和配置测试工具,在该环境中,可以使用一种以上的 IDE 和(或)编程语言开发应用程序。可以很容易地使手动测试小组转变到自动测试上来。使用 IBM Rational Robot 进行回归测试是早期步入自动化很好的一步,因为它易于使用,并且可以帮助测试者在工作的过程中学习一些自动处理的知识。
  3.WinRunner
  Mercury Interactive公司的WinRunner是一种企业级的功能测试工具,它是一种基于MS Windows的功能测试工具。它可以帮助用户自动处理从测试开发到测试执行的整个过程,可以创建可修改和可复用的测试脚本,而不用担心软件功能模块的变更。它利用录制--回放技术来实现自动化测试。录制,是将用户每一步操作都记录下来。这种记录的方式有两种:程序用户界面的像素坐标或程序显示对象(窗口、按钮、滚动条等)的位置,以及相对应的操作、状态变化或是属性变化。所有的记录转换为一种脚本语言(TSL)所描述的过程,以模拟用户的操作。回放时,将脚本语言所描述的过程转换为屏幕上的操作,然后将被测系统的输出记录下来同预先给定的标准结果进行比较。在迭代开发的过程中,它能够很好地进行回归测试。
  4.QTP
  QTP是QuickTest Professional的简称,是一种自动测试工具。使用QTP的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。QTP提供符合所有主要应用软件环境的功能测试和回归测试的自动化。采用关键字驱动的理念以简化测试用例的创建和维护。它让用户可以直接录制屏幕上的操作流程,自动生成功能测试或者回归测试用例。专业的测试者也可以通过提供的内置脚本和调试环境来取得对测试和对象属性的完全控制。
  2.2  数据驱动测试的关键内涵
  2.2.1  数据驱动的自动化测试框架
  基于数据驱动的自动化测试不是简单的录制回放过程,而是通过编程的形式来实现每个测试用例,它其中的数据文件独立于测试用例存在于测试脚本中。
  将数据驱动脚本技术运用到自动化测试框架中就形成了数据驱动测试框架。这种框架从某个数据文件(例如数据池、ODBC源、XML文件、Excel文件等对象)中读取输入、输出的测试数据,然后通过变量传入事先录制好的或手工编写的测试脚本中。其中,这些变量被用作传递(输入/输出),用来验证应用程序的测试数据。总的来说,基于数据驱动的自动化测试中采用三层框架结构,如图2-1所示。
  
图2-1  基于数据驱动的自动化测试框架
  其中最底层为UI Driver层,主要负责定义基本的通用元素库,如按钮、下拉框、文本框等在每个软件中都会出现的基本元素;对这些元素的基本操作以及通用操作(如等待某段时间的函数等)。这一层和测试的软件没有关系,因此通用性很强,既可以自己开发也可以用前人开发好的底层自动化Driver。
  第二层为代理(Agent)层,这一层是建立在被测软件上,对被测软件的每一界面(UI)均建立相关的类和对象,方便最上层调用,这一层需根据软件的不断更新而更改。
  最上层为测试用例层(Test Cases),这一层建立在代理层上,代理层建立好之后,可以提供给测试用例层所需的界面元素,使测试用例可以通过对界面元素的操作完成自动化测试过程。这一层是测试用例的实现层,如果有了比较完善、结构合理的底层以及代理层,此层实现起来就会非常简单。
  其中测试数据以及软件中元素的ID信息是存放在独立的XML文件、Excel文件、数据池或者其他对象中,测试用例层或者代理层需要用数据时,可以通过统一的接口读取。这样的方式不仅可以使整个测试工程结果清晰,最重要的是可以降低整个测试系统的维护费用,这样才能确保自动化测试的投入回报不断提升。
  2.2.2  数据驱动测试的流程
  数据驱动的自动化测试利用相同的测试过程测试不同的输入、输出组合。它将测试输入和预期输出组织为表,表中的一行对应一个测试,然后创建一个从表中逐行读入的自动化测试过程,执行每个输入步骤,并检验预期结果。当把数据驱动测试过程放在一起后,就可以反复使用该过程来执行新测试。这种手段对于有很多不同数据选项的应用来说是最有效。
  按照上面测试过程的描述,通常将数据驱动测试按以下三个步骤进行:
  a.参数化测试脚本的某些常量,并绑定到数据表中的某个字段。数据表可以记录在Excel文件(电子表格),CSV文件(易输出的以隔断文本文件格式存放的数据文件等对象中。
  b.编辑数据表格,在表格中编辑多行测试数据(取决于测试用例以及测试覆盖率的需要)。
  c.设置迭代次数,选择数据行,运行测试脚本每次迭代从中选择一行数据。
本文选自《软件功能测试自动化实战教程》,本站经作者的授权。
版权声明:51Testing软件测试网获作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
32/3<123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号