UML软件工程组织

用Visual Basic 6.0实现自动化测试
黄茂生(转载自赛宝软件评测中心)  2002年04月17日

 

一 现有自动化测试工具的不足

  当前,一个摆在软件测试自动化面前的一个很明显的事实是目前可用的工具并不能做一切我们想要它们做的事情;指望任何一种工具能够完全支持众多不同应用的测试自动化是不现实的。由于很难找到一个能完全满足测试自动化需要的测试工具,而且测试自动化工具都十分昂贵,所以常用的做法是使用一种主要的自动化测试工具,然后用传统的编程语言如Java, C++ 和 Visual Basic编写自动化测试脚本以弥补该工具的不足之处。

二 Visual Basic 应用于自动化测试的优点和局限性

  利用Visual Basic之所以能实现一些比测试自动化工具更好的功能的原因在于它毕竟是针对实际的项目而编写测试脚本,而且,事实上Visual Basic确实存在比其他编程语言更明显的优点可应用于测试自动化项目。

  众所周知,Visual Basic 不是一种测试工具,但它是一种非常流行的软件开发语言;使用Visual Basic最大的好处是它是一种非常流行的语言,它简单、易学易用和有非常广泛的懂得Basic语言的用户群基础,即使对不熟识Visual Basic 的测试工程师,要熟悉它也可以轻易找到大量有关的出版物和资料。

  Visual Basic本身拥有一些能支持测试过程的特性,例如,它具有返回有关测试平台和被测应用程序的重要信息的功能。Visual Basic 的Shell函数和SendKeys函数可以启动一个应用程序和操作它的图形用户界面,用Visual Basic可以编写所需要的一些脚本程序,例如,装载一个测试应用程序。Visual Basic中集成的可视化数据管理器可以直接连接一个数据库并查看它的数据结构。此外,Visual Basic 还可以用来测试一些后台操作的应用程序,例如,可以编写一些脚本存取初始化文件(.ini文件)和Windows注册表。从Visual Basic 中访问Windows 的应用程序接口(API)对操纵受测应用程序和报告一些重要信息都是非常有效的,而且Visual Basic语言比当前其他的编程语言花更少的时间去掌握和有更高的编程效率,适合要求快速建立测试脚本的测试自动化工作需要。

  由于Visual Basic不是一种专业的测试工具,因而有其局限型,首先它不包含目前已经成熟的自动化测试工具所具有的大部分的功能,例如,Visual Basic本身不提供缺陷报告、测试设计和文档管理等功能;它还缺乏录制功能和任何自动化测试设置,要在Visual Basic 测试代码中包含这些功能,需要手工编写这部份功能代码,而且目前大部分有关Visual Basic 的出版物和资料都是针对开发者而不是测试者。虽然如此,依然有一些不需要很多的投入而使Visual Basic应用于自动化测试项目的基本方法。

三 Visual Basic中支持测试自动化的工具集

  Visual Basic 6.0 包含一套不需任何编码就能支持测试的工具集,包括丰富的向导,可视化数据工具和对象浏览器等。

1 向导和模板

  在Visual Basic 中有众多的向导可以使用。其中一个对测试人员非常有用的向导是数据窗体向导,它可以创建一个能连接Access或ODBC数据库的数据窗口,该数据窗口可以设置成单独地查看单个记录或者用表格形式批量浏览数据记录,因而可以实现一个能快速定制而又易于使用的用来检查数据库内容的测试工具。

  窗体模板不但可以快速创建一个标准的窗口,而且能同时伴随着这些窗口产生源代码,这些自动产生的代码可以部分或全部应用到为测试而定制的窗口中,这对提高测试效率是非常有效的。

  此外,一些其他的向导如数据对象向导,ActiveX 控件窗口向导都可以实现花费最少的编码工作量去创建和配置一些有用的测试对象。

2 可视化数据管理器

  可视化数据管理器可以快速地连接到ODBC或OLEDB数据源,去查看数据库结构,数据表,视图和其他基本的对象。通过它去检查后台数据库实现数据库应用程序测试。也就是说如果被测应用程序包含一个在SQL Server,Sybase ,Oracle和 Access的数据库,则可以通过可视化数据管理器去检查所有的这些数据库而不需要分别登录DBMS界面。通过Visual Basic作为一个通用的前台数据库管理器去管理一个用ODBC或OLEDB存取的后台数据库,可以节省测试工程师的测试时间和可能花在熟悉这些数据库产品而花的培训时间。

  可视化数据管理器通过数据库输入和测试SQL语句支持白盒测试。利用它可以修改后台数据,甚至创建新数据对象如数据表,存储过程和数据视图。一些被用来测试数据的SQL语句(通常用来检索重复的数据行和暴露有关完整性的缺陷)甚至必要时可以在这里创建和执行。

3 Object Browser对象浏览器

  对象浏览器是另一个非常有用的Visual Basic工具,通过它去检查对象输出的属性和方法以及各种必要的参数;测试人员可以利用这些信息创建这些对象的验证性和功能性的测试,特别是对面向对象测试,非常有用而且非常有效的。

  对象浏览器可以显示一个定制COM对象的信息库,这个库列出了该对象的属性,方法和事件,而这个对象可以用任何支持COM对象模型的语言来开发。在对象浏览器里设置一个对象相关信息的捕获和查看对一个缺乏测试培训的测试人员而言只需很短的时间,当然,要建立Visual Basic测试脚本去测试对象的属性,方法,事件需要做一些编写代码工作。

四 Visual Basic在自动化测试工作的应用举例

  下面列举了一些在实际测试工作中应用Visual Basic通过简单的编码实现测试自动化或相关工作的例子,如记录测试结果信息、简单的GUI测试等。

1 利用文本文件记录测试信息

例1

  Open "testlog.txt" For Input As #1 ‘打开记录文件

  Print #1,FileDateTime(“c:\windows\calc.exe”) ‘记录被测试程序创建的日期和时间

  Print #1,FileLen("c:\windows\calc.exe") '记录被测试程序的长度

  Print #1,CurDir '记录当前目录路径

  Print #1,Environ("Windir") '记录当前Windows 目录路径

  Print #1,Now '记录测试开始日期和时间

  ……. ‘记录测试过程信息

  Close #1 ‘关闭记录文件

  在测试过程中经常要做的一项工作是为了查找错误信息而检查应用程序的登录文件,这些登录文件通常是文本文件,而对任何编程语言来说利用本身基本的文件操作函数都很容易取打开和读取这些文件。而另一项工作是记录测试过程信息和测试结果,它实质上跟上面所说的是使用相同的函数功能:一个简单的记录方法是将测试结果写进一个文本文件。例1所示的代码就是实现了这些记录功能。

2 GUI功能测试

例2

  Shell("c:\windows\calc.exe") '启动计算器
  For i = 1 To 100 '设置计算循环
  SendKeys I & "{+}", True '发送击键动作到计算器
  Next I '累加每一次I的值
  SendKeys "=", True '计算总和

  在黑盒测试中,实现自动化测试要编写测试脚本去模拟用户日常的操作输入。使用Visual Basic的Shell函数和Sendkeys函数可以简单有效地实现一些GUI功能测试。

  例子2的所示代码打开了一个Windows计算器,然后发送击键动作模拟用户输入,计算一系列数值(1到100)的总和;启动程序调用Visual Basic的Shell函数,SendKeys指令被用来发送击键动作到应用程序去模拟用户输入和计算结果。

3 读取和设置注册表信息

例3

  Dim astrSettings() as string ‘定义变量
  lstSettings.Clear ‘清除列表框内容
  astrSettings = GetAllSettings(testAppname, txtSection) ‘调用专用函数返回VB
  ‘专用位置的注册表信息
  For iCount = 0 To UBound(astrSettings) ‘通过循环将注册表信息
  ‘显示在列表框中
  lstSettings.AddItem astrSettings(iCount, 0) & ": " _
  & astrSettings(iCount, 1)
  Next iCount

  注:testAppname是被测试应用程序的名称

  测试人员很多时候都要检查注册表,注册表是一个存储应用程序安装设置、选项等重要信息的地方。Visual Basic 6.0 包含了一些可以从预留给Visual Basic 应用软件专用的注册表键值位置返回信息的新的功能函数。这些功能函数简单地设置和返回这些注册表键值,这对测试用Visual Basic 开发的应用程序尤其有用。

  例子3所示代码返回注册表中位置"HKEY_CURRENT_USER\VB and VBA Program Settings\"中的所有注册表信息并把这些信息显示在一个名为lstSettings的列表框中。如要存取其他位置的注册表信息,需要调用Windows API函数。

五 小结

  由此可见,为弥补当前自动化测试工具的不足,选择用一些编程开发语言编写一些测试脚本或测试辅助工具在实际工作中证明是切实可行的,而Visual Basic 6.0由于其强大的功能,易学易用,有广泛用户群基础等优点而成为应用于测试自动化比较有应用前景的工具之一。

参考书目

1 《软件测试自动化技术》美 Mark Fewster & Dorothy Graham 著,电子工业出版社 2000年1月
3 《软件工程---实践者的研究方法》(美)Rgoer S.Press著,机械工业出版社,2000年9月
2 《Visual Bsaic 6 技术内幕》(美)Steven Holzner著,机械工业出版社,1999年4月

作者简介

  黄茂生(1973—),男,广东肇庆人,1997年7月本科毕业于华南理工大学自动控制专业后一直在中国赛宝软件评测中心(http://www.scstlab.com.cn)从事第三方软件评测工作。E-mail:huangms@scstlab.com



版权所有:UML软件工程组织