软件测试工具中使用WinRunner的几点建议

发表于:2010-01-05来源:作者:点击数: 标签:软件测试工具winrunnerWinRunnerWinrunner
软件测试工具 中使用 WinRunner 的几点建议 分解 TestCase 在大型程序测试中,往往有很多任务是可以分开来Record。同时,如果录制的代码过 长的,进行调试是很麻烦的事情,此外如果今后某一部分的程序进行了修改的话,修改和重 新录制的工作也是非常痛苦的一

软件测试工具中使用WinRunner的几点建议

分解TestCase

  在大型程序测试中,往往有很多任务是可以分开来Record。同时,如果录制的代码过

  长的,进行调试是很麻烦的事情,此外如果今后某一部分的程序进行了修改的话,修改和重

  新录制的工作也是非常痛苦的一件使用。

  因此我们可以将一个TestCase 进行分解,分解TestCase 可以采用以下几种方式

  1、将任务分段,比如Log、Logout、公共窗口的打开、关闭

  2、错误处理的分类,比如将某一输入项目的各中错误输入分开录制

  3、公共界面的操作函数化统一处理,这种方式主要可以象移动BOSS 的业务受理等不

  同窗口使用同一子界面的情况,如DELPHI/C++ Builder 中的Frame。

  将不同任务(TestCASE)的分解之后,我们可以使用call 函数及自定义函数机制来调

  用不同的子Script、函数来完成一个的TestCase

  通过随机组合实现大规模路径覆盖

  有时候我们需要将一组数据随机组合来进行大量数据测试,如填写某些表单。那么我们

  有两种办法:一是使用外边工具随机生成大量数据,也可用使用先将各个数据按测试要求生

  成一小组数据,然后使用rand 方法随机抽取数据来测试

  伪代码如下

  data a[];

  date b[];

  for (i=0;i<要测试的次数;i++){

  ca=a[rand()]

  cb=b[rand()]

  dosomething;

  }

  使用这种代码的好处是随意调整测试力度,缺点是数据单一,不想外边工具一样生产的

  数据的多样化。如果想根据数据分段标准动态产生不同数据,应该使用其他编程工具来生产

  而不应采用这种办法。

  动态修改chk 文件实行参数化的动态Check

  有时候我们知道在测试过程中的某些数据是动态生产的,比如某些按顺序或随机产生的

  单号,而我们又往往需要根据这个单号进行一些判断,比如数据库中对应的数据是否完整。

  还有,当我们需要根据输入的某些条件来判断输出的条件是否正确,这个时候WINRUNNER

  就无能为力了,因为它目前没有提来实现参数化的Check。

  但是我们可用使用WINRUNNER 的函数及WINNRUNNER 的录制功能,先录制一个使

  用ULTRAEDIT(或类似工具)手工修改chk 文件的函数。然后将要修改的内容参数化,在

  主SCRIPT 执行Check 以前先调用该函数。

  在Script 里面管理GUI

  使用WINRUNNER 都知道GUI 文件的重要性,MI 推荐的一种方式是专人来管理GUI

  文件,整个测试使用同一个/系列GUI 文件。但实际我觉得这很困难的,特别是程序比较的

  话,光是找出所有的窗口就已经是很痛苦的一件事情。我认为应该首先应该将GUI 与SCRIPT

  同时存储在同一目录下。

  然后使用GUI_load 在SCRIPT 开始以前就装载GUI,在SCRIPT 开始增加:

  if (GUI_load(".\\login.gui")!=0)

  {

  pause ("Can't load login.gui");

  texit;

  }

  使用Winner 做过复杂测试的可能会问,如果不同GUI 文件中的对象名称相同的话,运

  行时候就会出问题。因此我们应该在SCRIPT 完毕的时候加入

  GUI_close(".\\login.gui");

  注意恢复测试前的状态

  此外,如果我们要连续运行多个测试CASE、就必须考虑将被测试程序恢复测试前的状

  态,比如我们在测试SCRIPT A 中打开了窗口A,如果下一个TESTCASE 不需要用到窗口A,

  那么在SCRIPT A 窗口A。这样下一个TESTCASE 才能正常运行。

  如果我们采用采用批处理及CALL 的方式来组织SCRIPT 的话,就应该坚持这样一个原

  则:“谁打开、谁关闭”,这样才便于管理。

  此外如果对数据库的操作也要根据具体要求考虑恢复。这些操作可以考虑通过录制通过

  数据库客户端的操作来实现。

  WinRunner 脚本标准格式

  目录结构

  存放目录要求:

  1、根目录与项目名称相同,如江西移动BOSS 测试目录为JXBOSS

  2、根目录下应该是按子项目存放,如SALES、ACCOUNT。如果有公共脚本,存

  放在Share 目录下面

  3、子项目下面应该根据功能/TestCase 来存放,如果有公共脚本也应该存放在

  Share 目录下

  4、为存取及备份方便,目录不能使用中文。使用的名称应该尽量与开发保持一致

  5、GUI 文件应该存放在脚本的同一目录,并且名称相同

  6、正确性测试(使用完全正确数据来检查程序功能是否完成)目录名称规定为

  validity

  以下是一个目录例子

  JxBoss

  -Sales

  --ChangeSimCard

  --validity

  --CheckSimNoExistAnIdError

  --Share

  --Share

  -Aclearcase/" target="_blank" >ccount

  脚本要求

  注释要求

  脚本创建及修改说明注释

  每个脚本的开头注释格式如下:

  #脚本名称:文件名称

  #创建人:创建人

  #创建日期:格式为YYYY/MM/DD

  #功能:脚本完成的功能描述

  #运行前要求:运行前的要打开的窗口及状态要求、数据库中的数据要求、被测试

  程序运行目录等

  #参考文档:描述录制代码是参考的有关设计测试文档

  #修改历史:

  # 修改人:

  # 修改 http://www.csai.cn 格式为YYYY/MM/DD

  # 主要修改内容:

  注意创建人及修改人必须是中文完整姓名,不允许使用其它任何名称。运行前的要求一

  定要描述清楚

  子功能注释

  

原文转自:http://www.ltesting.net