软件测试自动化的探索与管理(八)

发表于:2011-5-25 10:31

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

 作者:lyscser    来源:51Testing软件测试博客

  (b)自动化对象管理

  如果在QTP自动化测试脚本中全部使用描述性编程,那么测试脚本基本可以完全脱离对象库的使用,但是笔者的观点是:如果要放弃对象库的使用而全部采取描述性编程,那么QTP本身基于关键字的脚本录制、编写的优点将消失殆尽,进而也就没有使用QTP的必要了。笔者咨询了几位经验比较丰富的QTP使用者,大家认为对象库和描述性编程在Web自动化测试脚本开发中的使用比例应该是根据系统特点在7:3到9:1之间,当然这个比例并不重要,如果需要也可以是5:5,这个要结合被测系统的特点来分析。所以,既然使用QTP,那么免不了就要面对它的对象管理问题,描述性编程的确好,不过也不能完全迷信,QTP捕捉的对象的属性要比我们自己描述性编程描述的完整,而且只要配置好对象捕捉的参数,基于对象库的脚本编写还是比较方便快捷的。对象库的管理分为两个层次:

  ● 第一层是测试脚本自身的对象库管理,包括对象的收集方法、对象的层次与命名规则、对象的复用粒度等等。例如,同一个页面在不同功能中被多次引用,那么这个页面的对象就应该是公用的。我们在长期的项目或者系统维护中使用的测试脚本通常会因为脚本自身的原因运行失败,修复一个脚本的耗时可比重新开发1个甚至2个、3个所用的时间,究其原因,绝大部分原因是因为对象库的使用和维护不力,对象库层次不清晰、对象命名凌乱的脚本常常运行失败,尤其在脚本数量庞大的时候,脚本修复的时间花费的非常多,一旦修复操作被其他工作延迟,累积的“债务”就会越来越多。久而久之,测试人员面临的问题就是测试脚本的重新开发,这是一个恶性循环。

  ● 第二层是框架下的对象库管理,在框架对应的目录下,可以有很多子系统或项目的子目录,每个子系统目录下可以直接存放或者分类存放QTP的对象库文件。测试脚本中单独引用这些对象库而并不把它们合在一起保存,这样就从一个很简单的层次上实现了对象和操作的分离,为脚本设计的关键字驱动打下良好的基础。客观地说,无论脚本和对象库以什么样的形式保存,只要对象是可复用的,那么对象库有必要和脚本操作分开,否则是没必要这么分离的。即便是关键字驱动,也不需要追求复杂又不可复用的页面上的Description和Objects的分离。

  (c)自动化数据管理

  测试数据不仅仅是自动化测试的一个重要元素,也是所有类型的测试所共有的一个基本元素,离开测试数据的测试基本上就丧失了它的可靠性与意义。对于自动化测试来说,首先我们需要明确一点:绝大多数脚本与数据共生的自动化测试用例都是不够灵活的,每次更换数据进行测试都要对测试脚本进行修改,这是不方便的、低效的。分离开的测试脚本与测试数据之间体现为一种应用程序和配置文件的关系,数据分离意味着维护成本的降低和灵活性、可移植性的增加。通常自动化测试脚本所使用的测试数据以下面几种方式存在:

  ● 文件配置:txt、xml等文本形式的测试执行基础配置,主要用于框架下所使用的各个元素的所在路径引用、管理和运行模式控制。

  ● 文件存储:txt和Excel等文件数据,其中txt多用于跨系统、跨流程的一次性参数传递和基础配置管理,例如相对路径配置等;Excel等文件多用于实际的测试数据保存,系统页面上每一个需要参数化的可编辑域和特定的需记录输出值的区域都可以对应文件中规定好的一个字段,保存一条或多条测试数据。

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号