提高自动化测试套件的可维护性 - 3

原创 2004年05月21日 14:29:00

3.利用数据驱动体系<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

在讨论成功的工程中,我们得出两种分类,分别是数据驱动设计和基于框架的设计。他们可以孤立也可以集成在一起。

一个数据驱动的例子:假设测试一个用户创建和打印表格的程序。你要处理这样几件事情:

表格标题。可以设置不同的字体,大小,样式(粗体,斜体,小写,正常)。

标题位置 (在表格上下,在表格旁边) 和方向 (字母显示水平方向还是垂直方向).

标题绘图(在标题上下还是旁边),图形打下(大,中,小)。他可以是位图(pcx,bmp,tiff)或者是矢量图(CGM,WMF)。

表格边框边线稠密

表格行列数量和大小。

每个单元格字体,大小,样式。每个单元格内图形大小,位置,旋转。

表格打印输出纸张的大小,方向。

 

<<<放置大图>>>

标题

 

        顶行框边

        行列

 

特征1 表格的一些特性

 

因为他们在同一时间同一张纸上操作所以参数都是相关的。如果一些行特别大,就没有留给图形的地方。如果字体太多,程序有可能内存溢出。例如在组合设置这些参数测试,那么将有上万种组合。

假设编写一百个脚本测试一百个组合。如果界面的一个元素变化了,举例,如果标题字体从一个对话框移到另一个对话框,那么你不得不修改每一个脚本。

标题位置,标题字体,标题样式,标题图形(CG—Caption Graphic),宽度

1.  顶部 Times  PCX  3pt

2.  Arial 斜体 2pt

3.    Courier 粗体 1pt

4.  Helevtica  粗体斜体  TIFF中间无

 

特征2 从一个只有几行的格式化的测试矩阵的表格开始

 

我们从测试矩阵开始工作。测试用例包含很多参数变量的组合。在这个矩阵里,每一行制定测试用例,每一列都指定参数设置。例如,列一可能指定标题位置,列二标题字体,列三标题样式。还有其他一些列。

 创建电子表格创建你自己的矩阵,比如Excel。

 执行这些测试用例,编写测试脚本从读取电子表格中一次读取一行数据(测试用例)。执行脚本设置在电子表格中指定的参数。如果我们继续工作在特征2弟子表格中的第二行。第一次运行的脚本从第一列中读取数据(标题位置),正确设置对话框并写入字段中,然后设置标题位置,这个值可以在测试矩阵中看到。一旦所有的参数正确设置,你可以做剩下的设置,你可以打印这个表格并评估输出是否正确。

 

测试程序将执行每一行的小脚本。

换句话说,你的结构是:

加载测试用例矩阵

 

For each row I (row = test case)

For each column J (column = parameter)

     Execute the script for this parameter:

     正确操作对话框或者菜单

               设置从测试矩阵中(i,j)位置读取的值

               返回测试结果

 

    如果软件设计变化,那么标题位置将移到不同的对话框,你只要改动很少行的代码,每个mini脚本中处理标题位置。你需要改动这些行一次:只要改变每个在电子表格中的测试用例。比较修改每个测试用例的脚本来说分离代码和数据是很有效的方法。

还有其它几种建立数据驱动的方法。比如,Bret Pettichord(LAWST会议参加者)在表格中填写一系列命令。每行列出了要执行的测试用例需要执行的一系列命令(一个单元格里一个命令)。如果用户界面变化了,需要稍稍修改命令序列,这时测试人员通过修改电子表格中数据要比从新写代码来修改测试用例方便的多。其他测试人员用简单的测试用例序列或者当前状态就可以了。

 

    另一个方法驱动数据用以前的文档,假设测试文档处理器处理成千上万的文档。每个文档,脚本驱动文档处理器加载文档,然后执行一些列简单的操作(比如打印)

    

     一个有名的设计数据驱动的方法能很容易让非功能测试计划人编写测试用例,因为他们只要简单的把测试用例写入测试矩阵中就可以。其他的测试用例都可以用这种方法生产,如果你做的很好,只要建立简明的告诉测试工具如何运行的一套表格。

 

4.  用基于框架的体系

 

这个框架提供了完全不同的方法,虽然他经常运用把多个数据驱动测试策略。Tom Arnold(LAWST成员)在他的书和课程中讨论了这个方法。

  

   这个框架通过共享的函数库中的一系列函数把被测试应用程序和测试脚本分离。脚本开发者人员把这些函数看作测试工具本身的开发语言中的基础命令。他们因而把软件界面和测试脚本分离。

   

    举例,一个框架编写者可能创建一个函数---OpenFile(p)。函数打开文件p。下拉文件菜单,选择打开命令,拷贝文件名字到文件字段,选择ok按钮关闭对话框,然后操作。或者函数比这要做得多,假如错误处理。函数可能检查文件p是否被打开或者把试图打开文件的操作写入日志,把结果写入日志。这个函数也可能通过快捷方式命令替换操作菜单来打开打开文件对话框。程序可以利用应用程序编程接口(API)或者Macro语言来测试,或许函数能调用简单的命令并把文件名和路径作为参数发送。这个函数的定义不断的变化。脚本开发者只要知道函数名字openfile(x)来打开文件x。

 

提高自动化测试套件的可维护性 - 2

思考可维护性脚本维护的需求不是不需要,而是卖自动化工具的人没有提到这点而已。在二月LAWST会议上我们不停的讨论两件事。当软件用户界面发生变化的时候,你们要做多少修改测试脚本的工作能让脚本正确适应软件...
  • piaocl
  • piaocl
  • 2004年05月21日 13:17
  • 2275

提高自动化测试套件的可维护性 - 5

 6.考虑用其他自动化测试类型 LAWST会议上主要集中在GUI层次上衰退测试工具,所以这篇文章主要写的是关于这方面的。在开会前我们参加会议的人主要描述了我们在测试自动化中的经验。一些人作了生动的成功...
  • piaocl
  • piaocl
  • 2004年05月23日 17:31
  • 2151

提高自动化测试套件的可维护性 - 1

                                                作者:Cem Kaner                                        ...
  • piaocl
  • piaocl
  • 2004年05月19日 13:23
  • 1596

提高自动化测试套件的可维护性 - 4

 在你创建的库中很多函数可以在几个应用程序中用(或者你把他们设计得很灵活)。不要期望百分之百的灵活。比如openfile函数的一个版本中可能对每个用到标准文件对话框的程序都有用,但是你有些时候你要用到...
  • piaocl
  • piaocl
  • 2004年05月21日 18:08
  • 2132

提高自动化测试套件的可维护性 - 6

 用于自动化测试的值是不确定(比如随机)的尽管我们需要确定测试用例的方法。(一致通过)我们不确定盲目测试。需要知道运行的是什么测试,有时候你需要输入严格的和一定顺序的输入。但是如果你决定是否程序是正在...
  • piaocl
  • piaocl
  • 2004年05月24日 09:56
  • 2437

如何提高代码可读性、可维护性

高质量代码的三大要素: 可读性、可维护性和可变更性 做好代码规范、提高代码质量,能显著增强代码的可读性、可维护性和可变更性。努力提高代码的读写可维护性,是做好代码规范的必要非充分条件。代码规范和架...
  • zm1_1zm
  • zm1_1zm
  • 2016年07月21日 16:05
  • 3070

保持应用系统可维护性的八个实际措施

应用系统的可维护性: 整体组织;逻辑分割;细粒度措施;技术决策; 一致处理;有效隔离;消除重复; 对维护敏感...
  • shuqin1984
  • shuqin1984
  • 2013年09月03日 18:00
  • 3764

《java与模式》笔记(一) 软件的可维护性和可复用性

ξ 3.1 软件系统的可维护性☆ 导致一个软件设计的可维护性较低,也就是说会随着性能要求的变化二“腐烂”的真正原因有四个: ① 过于僵硬 加入一个新性能,不仅仅意味着建造一个独立的模块,而且因为这个新...
  • plusir
  • plusir
  • 2006年08月05日 12:27
  • 1247

程序的可维护性和可扩展性

可维护性是指当需要修改程序的某个模块时,对其他模块的影响和修改的代价;可扩展性是指当需要为程序添加新的功能时,对其他模块的影响和添加的代价,可以从下面几个方面提高程序的可维护性和可扩展性   代码...
  • dongye2016
  • dongye2016
  • 2017年08月27日 02:13
  • 685

谈谈软件的可维护性问题

前言       很多包括自己在内的开发人员都会经常去借用(我们不用剽窃这个词了!呵呵)开源代码进行二次开发;或者在前辈的遗留代码下,继续修修补补。这种经历往往并不像看起来那么简单——有时看懂,进而修...
  • kanghua
  • kanghua
  • 2008年12月30日 17:08
  • 15879
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:提高自动化测试套件的可维护性 - 3
举报原因:
原因补充:

(最多只允许输入30个字)