一种减少RFT测试脚本开发迭代次数的方法(上)

发表于:2010-6-01 14:14

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

 作者:cathybxq(blogbus)    来源:51Testing软件测试网采编

  手工开发 Rational Functional Tester(RFT测试脚本的过程和开发普通的程序类似,需要经过“编写、执行、发生错误、退出执行、查找并修改错误、再次执行脚本……开发成功”的过程。其中“执行、发生错误、退出执行、查找并修改错误”几个环节可能需要多次的循环迭代。对于步骤繁多的大型脚本,上述迭代次数的大幅增加将会产生巨大的时间成本。本文提出一种实现快速开发脚本的方法,该方法综合调试、异常处理、流程控制等技术,以调试的方式实现脚本的开发。该方法把编写和调试脚本的过程合一,可以一边开发脚本,一边执行脚本;当脚本执行出现错误时,能够迅速定位错误,并且在修改错误之后无需从头执行脚本。这种方法能够有效地缓解传统开发方法存在的迭代问题,特别适合于中大型测试脚本的开发。

  传统开发模式中的迭代问题

  为提高代码的重用性,测试人员一般不直接录制功能性自动化测试脚本,而是采用手工方式开发测试脚本,传统的开发流程如图1所示:

  减少迭代的开发模式

  这里先简单介绍一下我们的设想。

  基本设想

  为了缓解传统开发方式存在的迭代问题,实现快速地开发脚本,我们设想:

  * 把脚本的编写与执行过程合一,一边编写脚本,一边执行脚本,那么脚本编写的结束就意味着脚本执行的成功。

  * 在定位并修改脚本错误之后,允许从出错代码开始恢复执行脚本,就可以避免从头运行脚本带来的时间消耗。

  * 当脚本执行发生错误时,能够立刻暂停执行脚本(而不退出)并保持出错现场,这对于我们迅速定位和修改错误将是十分有帮助的。

  理论技术依据

  我们能否用现有的技术来实现上述的设想呢?答案是肯定的。为了实现这些设想,我们可以借助的理论依据和技术有:

  * 测试脚本的结构特点:自动化功能测试脚本具有线性的特点,脚本代码大多呈现为顺序结构(见图 2 的测试脚本)。脚本中很少出现选择或者循环结构的代码,即使脚本中出现非顺序结构的代码,其覆盖范围也是有限的。这种结构特点为分割脚本代码提供了可能。

  * 测试步骤的可重复性:测试步骤主要描述对产品界面进行什么操作,操作引起的产品状态变化可以通过人工的方式进行回滚,因此,我们可以反复执行某些测试步骤,只需要在每次重复执行之前消除测试操作所造成的影响(例如数据、产品界面的变化)。

  * 断点技术:在软件调试技术中,断点技术是最为常用的技术之一,通过在脚本中设置断点,我们能够在需要的地方暂停脚本的执行,以便检查脚本以及产品的状态(例如对象以及变量的内容,产品界面的变化等)。我们通过在调试状态下动态地设置断点,从而可以控制脚本的执行进度。

  * 异常处理机制:Java 语言所提供的异常 (Exception) 机制用于捕获和处理程序发生的异常。我们同样可以使用异常机制捕获脚本中出现的错误和异常。通过在异常处理语句中设置断点,可以在脚本出错时,立刻捕获脚本错误并暂停执行脚本,同时也能够获得第一出错现场:产品界面,变量和对象的内容。

  * 热交换错误修正功能:RFT 构建于 Eclispe 平台之上,而 Eclipse 提供了热交换错误修正(Hotswap Bug Fixing)的功能。它允许在调试会话过程中实时地更改源代码 , 而不必退出程序的执行状态,关于该功能的介绍参见参考资源 1。借助热交换错误修正功能,我们可以达到在执行状态下开发脚本的目的。

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号