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

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

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

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

分享:
(51Testing软件测试网获得作者授权连载本书部分章节。任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。)
  2.2.3  数据驱动测试中的驱动脚本
  数据驱动脚本就是那些和应用程序相关联的脚本。这些脚本通过录制或手工编写写进自动化工具中,然后对其中的变量赋予合适的数值,作为测试数据的输入。这些变量作为一些关键应用程序输入的媒介,使脚本能通过外部的数据来驱动应用程序。
  1.可变数据,硬编码组件标志
  这些数据驱动的脚本经常包含硬编码的数据,有时是一些窗口组件中非常脆弱的识别字符串。出现这种情况时,脚本很容易由于程序的更改而失去作用。
  2.高度技术化的、重复的测试设计
  数据驱动脚本的另一个共同特点就是所有在测试设计上所作的努力最终都体现在自动化工具的脚本语言中,或者复制到手工和自动化测试脚本中。这意味着每个和自动化测试开发或执行有关的人必须对测试环境和自动化工具的编程语言非常精通。
  2.2.4  数据驱动测试中数据的选择
  数据的选择是数据驱动测试中最重要的一步。选择驱动被测程序执行所需的执行步骤,或者表示输入到系统中的测试数据序列,或者两者兼有。这个段落将简要种分析五种不同的方式来选择测试数据:基于风险、基于需求、基于可用性、使用产品发布后的数据,或者使用随机生成数据。
  1.基于风险选择数据:
  测试数据选择的首要标准是风险。当指认一个风险时,考虑什么会出错。始终寻找在可控的时间和预算下可能发生的导致减少提交正确的功能以及高质量的项目代码的事件。有三种方法来分类风险:
  (1)风险带来的负面影响--与计划的偏差,实际成效,或者项目计划的花费(如果风险可以被成本化)。
  (2)风险发生的可能性--风险发生的可能性(通常表示成百分比)。
  (3)风险暴露率--负面影响与发生可能性的乘积。
  2.基于需求选择数据:
  可以选择那些直接针对需求而设计的测试数据。寻找应用程序中可以用来测试新功能、容错能力以及安全特性的数据,考虑下面2个问题:
  (1)如果应用程序有不同的角色,用什么数据来验证每一种角色。
  (2)哪种特性希望包括进测试覆盖范围,以及你需要使用什么数据。
  另外,考虑被测程序在各种不同部署目标机器、环境中会有什么样的影响。问题的校验列表应该要包含被测应用程序和目标环境。这些数据是需要去测试的:硬件设备、设备驱动、操作系统、网络和通信软件、第三方软件组(例如Email软件,因特网浏览器)、各种配置和设置相关的组件以及各种组合、全球化。
  3.基于可用性选择数据:
  可能要使用已经存在的数据,这些包括:生产环境中的数据(在下一部分中深入讨论,如果是容易获取的格式封装起来的)、从之前版本中获得的数据、项目中手工测试的表格数据(文件上传)、公司中其他类似项目中得来的数据:从其他资源获得的数据(在最后一部分讨论)。
  主要的思路是,如果数据是容易获取的,即其有意义并且容易使用,包括这些数据在测试中可以节省时间和金钱。笔者特别强调可用性和有意义,因为这点很重要,这要求使得不选择已经有的某些,因为那些是不好的数据。
  4.使用生产环境中的数据:
  另一个策略是使用的测试数据是实际生产环境的数据。尽管也许不应该仅仅依赖于那些数据,但是这同时也是自动化测试场景中最丰富资源的来源,因为这些数据代表了真实环境中实际操作得来的数据,同时因为它尽最大可能地提供了不同场景的数据。在一个项目中,大约每周读取一次生产数据,同时几乎没有花费任何额外精力获取了300到500个测试场景。可以装载这些数据直接应用到测试环境中,将它们读到数据文件中用作后来的处理,就能立即了解测试系统是否与生产环境中的系统运行得一样好。这个技术特别适用于发现浮点数值问题、转换率问题、以及数据类型允许的长度问题。但是也许用户公司有种种制度限制使用实际数据用于测试环境,并且生产环境中的数据难以包括一些用来测试特殊的用例。特别是如果是外包某些测试工作,必须要仔细参考用户公司对测试数据的规范,因为可能会涉及到法律上的一些问题。即使不能直接拿生产环境的数据来用,但是通过加工处理,还是可以得到一些加工过的数据,并且所做的修改对系统测试几乎没有任何影响。
  5.使用随机数据生成的数据:
  很多工具包括了测试数据生成器。随机数据生成器可以用来产生大量的定制数据(依赖于测试者测试的是什么以及打算花多长时间来生成)。例如,如果需要测试金融信息中的进位错误,可以:随机生成大量的数据,将数据实际输入应用程序,通过windows计算器运行同样的运算(假设windows计算器没有进位错误),比较结果,确保它们匹配。
  如果需要,用工具生成500组不同的用户姓名、地址等信息(TestManager, Excel等等)应该要避免尝试一次性为测试用例选择好数据。相反,使用增量和循环的方法来处理测试数据,关注于当前测试周期中认为最有可能产生有用的评估信息。这能帮助避免将太多时间投入到单一的数据集或者同种类型的测试数据的风险,将花在测试方法上的精力最小化。忽略那些无关部分的测试数据,对系统测试的影响将被证明是微不足道的。
本文选自《软件功能测试自动化实战教程》,本站经作者的授权。
版权声明:51Testing软件测试网获作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
33/3<123
精选软件测试好文,快来阅读吧~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号