计算机科学2004Vo1.31 N2-9A
Web测试自动化研究
刘 泉 金 新 娟
(武汉理工大学信息工程学院武汉430070)
摘要/随着Web应用的不断发展,0使用手工对Web应用进行测试是一项艰巨的任务。
不断出现,使用自动化测试工具进行Web测试可以大大提高测试效率。本文首先在时Web
而随着自动化测试工具
应用的特性进行分析的
墓础上,提出了使用自动化测试工具的必要性,然后详细论述了各种墓本测试技术,最后讨论了自动测试工具
类键词Web应用,Web Mil试,自动化浏试工具
。)
An Overview on Automated Web Testing
LI U Q ua rt J IN X in -Ju an
(Schoolo fIn formationE ngineering,W uhanU niversityo fT echnology,W
uhan4 30070)
AbstractW ithth eex tensiveap plicationof W ebte chnology,itbe comesim
practicalto te sta W e兮application_by ha nds., Butwi 生h
thed evelopmento fa utomat叫softwaret estingt ools,thee ttlclencyc anb
eim provedb yt heu seo fau tomateat esting.too ls.lrir st,
basedon th ean alysesof W ebte atures,thispa perdi scussest些
necessity。,岁ebte stingby th eu气 e‘ of‘ automatedte stingto
ots.anu
then it discusses various methods of Web testing in details. rinalty,it
introauces some automatea testing toots.
Keywords Weba pplication,Webt esting,A utomatedt estingt ools
1 引言
随 着 W eb技术的发展,Web应用已经变得越
来越庞大和复杂,如何保证Web应用的正确性和可
靠性成为一个重要的课题。软件测试技术已有数十
年的发展历史,但是Web应用测试至今仍没有引起
人们足够的重视。另外,由于Web具有分布、异构、
并发和平台无关的特性,使得对Web应用测试提出
了新的要求。目前能够吸引尽可能多的用户并对其
长时间关注是网站追求的主要目标,也是衡量一个
网站是否成功的重要指标,而随着Web应用的不断
发展,使用传统的测试技术对Web应用进行测试是
一项艰巨的任务。
随着 自动 化测试工具不断出现,使用工具进行
Web测试可以大大提高测试效率。因此,本文主要
讨论Web测试自动化。首先,在对Web应用的特性
进行分析的基础上,提出了使用自动化测试工具的
必要性,然后详细论述了各种基本测试技术,最后讨
论了自动测试工具。
2 自动化测试的引人
随 着 互 联网技术的发展,Web应用越来越广
泛。Web应用的特点如下[Csl
(1) W eb 应用的用户数量巨大,并要求能提供
对Web资源的跨平台全局访问,需要有并发处理事
务的能力。
(2) W eb 应用的使用环境不尽相同,包括硬件
设备,网络连接,操作系统、中间件、服务端支持、浏
览器等都有所不同,从而形成了异构、自治的工作环
境。
(3) W eb 着重于信息的发布。与大多数传统软
件强调的运算的功能不同,在Web中信息的搜索和
获取占了很大的一部分。总之,Web具有分布、异
构、并发和平台无关的特性。
We b 可 以看成是一个使用方便、接受全局访
问,具有图形化界面的数据库的前端,其结构示意图
如图1所示[P],由于Web应用具有多层体系结构,客
户、数据通信、硬件以及服务器之间的依赖关系又非
常复杂,使得在每层内以及各层间都有可能发生故
障。在客户机端,由于浏览器的型号、版本有很大的
不同,以及对应的显示技术各不相同,使得有些信息
往往不能正常地显示,从而产生兼容性问题以及显
示故障;在服务器端,可能存在超级链接不可达或者
根本不存在的问题(孤页),影响用户的使用;服务
器、数据库的负载能力有限,在用户访问达到峰值
时,会造成响应时间太长甚至不接受用户的访问,并
发用户的行为会影响到与站点交互的情况,用户之
间也可能会互相干扰。
由此 可 见 ,由于诸多问题的存在,Web测试将
是一项非常繁重的工作,只靠手工实现Web测试几
刘泉博士.教授,博士生导师,主要从事计算机网络通信、信号处理和非线性系统理论及应用等研究.金新娟研究生,从事计算机网络通
信等方面的研究。
.194.
乎是难以想象的,而使用自动测试工具就能大大提
高测试的工作效率。实践已经证明了当正确地实施
自动测试并遵守严格的过程时,自动测试(与手工测
试结合)可提供若干好处[31:
图1 Web应用体系
(1) 生 产 出可靠的系统;
(2) 提 高 测试工作质量;
(3) 减 轻 了测试工作量并缩短了测试进度。
因此 , 本 文将介绍使用自动测试工具对Web应
用进行基本测试,下面将介绍各种基本的Web测试
技术。
3 W e b基本测试技术
We b 应 用的结构特性决定了各种Web故障的
分布情况,因此要发现、分析、排除故障通常需要进
行多方面的测试,以保证Web应用具有完善良好的
功能、性能、兼容性、可用性和安全性。在文[5〕中,己
经介绍了Web应用的几种基本测试技术,本文主要
结合自动测试工具介绍Web应用的基本测试技术。
3.1 功 能测试
功能 测 试 根据功能需求的要求,检查Web应用
以发现与功能需求不一致的情况。它的基本目标是
评定Web应用是否按照指定的需求完成的。
由于 网 页 一般包含的基本元素是文字、图形、指
向网站其他网页的超级链接,一些网页有用户可以
输入信息的域,还有一些网页可以播放视频。因此其
测试内容包括文字检查,图形检查,链接检查,表单
测试等。文字检查是指检查听众级别、术语、内容、主
观因素、准确度(可能过期的信息)、拼写和语法。图
形检查主要检查图形的正确加载和显示。链接检查
指检查超级链接的可达性。表单测试是指测试网页
上用于输入和选择信息的文本框、列表框和其他域,
可以采用输入边界数据、次边界数据、空值和无效数
据来测试。端到端交互测试是根据任务的交互性,不
确定性等不同特征,进行有针对性的测试。此外,网
站还可能包含点击计数器,滚动块文字,变换的广告
和站内搜索等特性。因此在计划网站测试时,要仔细
验明每个网页上的所有特性,把每一个特性视为常
规程序特性分别进行测试。而手工测试一个简单的
网页,只是简单地单击所有的链接,验证其正确性就
会花去大量的时间,因此使用手工测试将是一项复
杂的工作。
3.2 配 置测试
配 置 测 试又称兼容性测试,主要是在不同的硬
件配置下,不同的浏览器环境下对Web应用的显示
作测试,使得Web应用的功能能够正确运行于广泛
的操作平台之上,保证某些代码(如Java Applets,
ActivexC ontrols,Ja vaScript,CC S,H TML)的功能
在不同配置上都具有正确性。
We b浏 览 器有很多种,如NetscapeN avigator,
Internet Explorer,Mosaic,Opera和Emacs等,可
应用于Windows,M acintosh,U nix,L inux平台。每
个浏览器和版本支持的特性都有细微的差别,不同
的硬件平台(如Ma。机、PC机、TV浏览设备、手持
电脑等)也会影响Web应用在屏幕上的外观。因此
要保证网站能很好地为预定的观众服务,就要研究
他们可能拥有的配置。在不同的客户硬件配置、客户
操作系统、浏览器类型和版本、浏览器插件和浏览器
选项和设置的组合使用情况下,观察浏览器显示的
所有元素,确认视频分辨率和位深、文字大小、连接
速度等等。其中乔冶亚工程学院图形、可视化和易用
性中心(GVU)的WWW用户年报[91技术示意图信
息列出了平台、连接速度、连接类型、浏览器、电子邮
件程序、视频大小和分辨率等属性,是决定测试何种
配置重要的第一步。如果要考虑全部可能性测试,那
么测试最简单的网站也可能成为艰巨的任务,而通
过手工在不同的配置下进行兼容性测试是不可能
的。
3.3 易 用性测试
易用 性 测 试验证Web应用是否易使用。易用性
是交互适应性、实用性和有效性的集中体现。虽然易
· 19 5 .
~尸
."2
用性测试是难以定义的过程,但遵守和测试一些基
本规则有助于使网站更加易用。Jakob Nielsen对网
站易用性进行深入研究,列出了十个常见的网络错
误[Eta1:无谓使用不成熟技术;滚动文字、滚动块和不
停运行的动画;滚动显示的长页面;不标准的链接颜
色;过期信息;过长的下载时间;缺少导航支持;弧
页;复杂的网站地址(URL )。在文[6〕中,详细介绍
了针对关键页面的可用性测试,并提出了全面的测
试方法。
3.4 负 载测试
负载 测 试 主要是确定在用户可接受的响应时间
内,系统能够承担的并发用户数量。
网站 每 天 可能要接受数百万次点击,每一次点
击都要从网站的服务器下载数据到浏览器的计算
机。如果测试系统的性能和加载速度,就必须找到一
种方法来模拟数百万个连接和下载。自动测试工具
可以生成成千上万的“虚拟用户”,同时访问站点并
与站点交互,这些虚拟用户执行各种典型的任务,如
浏览网页,网上交易,检索信息等。在虚拟用户执行
这些任务的同时,自动测试工具记录下服务器的响
应时间,当测试执行完成以后,分析通过负载得到的
数据,如在不同交互情况下的网页传送所需时间。网
页传送出错信息等经过一定的分析、运算得出网站
能同时支持的用户数目,交互数目等,并尽可能找出
多用户的瓶颈,最后以报告和图表的形式来显示测
试情况下网站的执行情况以及潜在问题存在的地
方。
3.5 安 全测试
安全 测 试 检查验证系统访问和数据访问机制特
有的性能。设计测试程序去扰乱系统安全检查,测试
人员使用安全测试确认安全级别和访问权限,验证
与特定安全需求和任何可适用的安全规则的一致
性。
对于 一 个 网站,安全性是至关重要的。随着电子
商务的发展,对安全性的要求越来越高,如果安全得
不到保障,那么交易很难进行。通常的安全机制包括
信息存取控制,用户身份校验以及对机密信息进行
加密等,同时要能根据用户的访问情况判断出该用
户是正常的用户还是蓄意的破坏者。因而,安全性测
试所作的工作也是围绕这几个方面进行的,对信息
存取控制进行测试,采用的方法类似于功能测试,选
择的测试用例应该能反映不同的控制级别。对用户
身份校验的方法有密码设置、数字签名等,相应的测
试方法是在输人密码或数字签名后,看输出的结果
正确与否。对加密信息进行测试,主要看解密后的信
息是否正确。另外还要检查其是否具有识别恶意访
问者的功能。
3.6 回 归测试
实施 回 归测试的意图是确认纠正系统缺陷的行
为没有在系统的其他部分产生新的错误。在测试过
程中,根据测试到的错误,可能需要进行一定的程序
修改。由于修改后的程序仍可能存在错误,并且修改
过程中可能会带来新的错误,因此还需要进行有针
对性的测试,也称为回归测试。在进行回归测试时,
只需要测试与修改相关的部分,这可通过分析程序
中定义一使用等关系来确定。具体来说就是,如果在
定义部分做了修改,那么所有使用到这一定义的部
分必须重新测试;如果被依赖部分有改动,所有相应
的依赖部分也必须重测。使用自动测试工具进行回
归测试工作可以节省大量的时间。
3.了 本 地化测试
如果 要 测 试的网页是全球范围的,还要进行多
语种测试,即本地化测试。本地化测试指除了翻译语
言,还要考虑用户的国家和地理位置,使其适应特定
地域特征。
当对 W e b应用进行本地化测试时,需要考虑翻
译的准确性,并且要考虑当语言从A翻译到B,字
符长度变化是否影响页面效果。除此之外,还要测试
将要本地化的Web应用,仔细检查内容,以确保其
内容适应该地区的习惯。在翻译时,可能出现文本扩
展的现象,这种现象可能出现在任何地方,因此要重
新进行UI测试。本地化测试的许多内容都要使用
前面的测试技术,因此,这里就不详细介绍。
4 自动化测试工具
通过 上 面 对基本测试技术的分析,可以看到,对
一个网站进行测试,只是简单地单击所有的链接,验
证其正确性就会花去大量的时间,再加上测试网站
特性的基本功能,进行配置和兼容性测试,设法模拟
数千甚至数百万用户来测试性能和加载速度以及重
复地进行回归测试,其任务的艰巨性是难以想象的,
而自动测试工具的使用能自动检查网站并测试其浏
览器兼容性、性能问题、破碎超级链接、HTML标准
符合程度和拼写,甚至可以指出站点上哪个图形可
能太大,可能影响速度。这些工具比手工执行节省了
大量的时间,提高测试员的效率,留出更多的时间进
行测试计划和测试案例开发。
目前 已 经 开发了一些实用的测试工具,如Weblint,
W3C Validator, SilkTest, Visual Test, Net
Mechanic,Doctor HTML,TCAT for Java等。而我
们采用自动化测试工具来进行Web应用的测试,熟
悉不同类型的自动化测试工具是有必要的。Marick
根据在测试过程中何时以及如何使用,将它们分类
如下[s3
(1) 测 试 设计工具:用于为软件测试活动做计
划,产生测试产物以驱动后续的测试活动。
(2) 静 态分 析工具:用来分析程序,而不用执行
程序。例如,审查和遍历。
·196·
05}
(3)动态分析工具:通过执行软件来对它进行测不允许通过GUI进行交互的应用的测试自动化。
试。(7)其他的测试实现工具:各种各样的工具都有
(4)负载和性能测试工具:为自动化的压力和容助于测试实现。
量测试模拟不同的用户负载条件。(8)测试评价工具:用来对测试工作的质量进行
(5)GUI测试驱动和捕获/回放工具:运用大规评价。
模记录功能来自动测试使用GUI的应用程序。其测试工具如表1所示。
(6)非GUI测试驱动和测试管理器:实现了对
表1 测试工具清单
工具类型工具描述工具范例
因特网测试工具
静态和动态分析工具
负载和性能测试工具
GUI测试驱动和捕获/回放
工具
非GUI测试驱动和测试管
理器
能够测试因特网应用、Java应用等
描述代码质量和结构
能够进行负载/性能和压力测试
能够进行自动GUI测试,捕获/回
放工具记录用户与联机系统的交
互,因此可以自动回放
便于对不包含GUI的产品自动执
行测试
Segue's SilkTest,ParaSoft's Jtst,RSW e-Test Suite
LDRA Testbed,Discover
Rational Performance Studio
Rational Suite TestStudio,Visual Test,Mercury Interactives's
WinRunner,Segue's Silk,Software Research's
STW/Regression,AutoScriptor Inferno
Aprobe by OC System
其 中 F. R icca等提出了两种辅助测试工具:
ReWeb和TestWeb,使用这两种工具可以实现自动
化的Web测试,其流程图如图1所示C}7
图2 应用ReWeb和TestWeb的测试流程图
Re We b 和TestWeb两种工具用来分析和测试
Web应用。ReWeb是用来从网站收集页面信息以
生成UML模型,并对这个模型进行分析、显示的工
具。结合Web模型,使用TestWeb实现测试案例.
整个模型是半自动化的。
另外 介 绍 一下SilkT ools['t〕家族因特网测试工
具,包括SilkTest,S ilkPerformer,S urf!, S ilkTest
采用Segue的通用测试体系结构实现功能和回归测
试,以确保Web应用的可靠性;SilkPerformer可以
仿真实际的Web流量,测量Web服务器的容量和
规模。通过测量服务器的性能,可以在计划部署之前
预测和调整Web应用的总体性能;而Surf可以自
动生成对功能进行的回归测试,以确认因特网的所
有链接。在这个过程中,不需要录制或编码。
结束 语 随着Web技术的不断发展,作为保证
Web应用质量和可靠性的重要手段,Web测试受到
人们越来越多的重视。但只依靠传统的手工测试不
可能实现越来越复杂的Web测试工作,而使用自动
测试工具可以提高测试效率。本文主要讨论自动化
测试的优点,然后介绍了几种Web基本测试技术,
以及自动化测试工具,为实现自动化测试Web应用
提供基础.
参考文献
1 PattonR .软件测试〔M].北京:机械工业出版社,2002
2 Mosley D J,Posey B A.软件测试自动化[M].北京:机械工业出
版社 ,2003
3 DustinE ,RashkaJ ,Pa ulJ·
软件自动化测试:引入、管理与实施
[M ]·北京:电子工业出版社,2003
4
卢虹,徐宝文.一种Web应用的状态侧试方法[J7.计算机工程
与应 用 ,2002:(2):55^-57
5
许蕾,徐宝文,陈振强.Web测试综述〔J7.计算机科学,2003,30
(3 ): 10 0^-104
6
许蕾,徐宝文,陈振强.基于统计数据的Web站点测试CJ7.计算
机科 学 , 2003,30(8):21^-24
7 RiccaF ,TonellaP .B uilda t oolfo rt hea nalysisa ndt estingo f
We ba pplications:pr oblemsa nds olution.S pringer,20 01.37 3
38 8
8 Marick, Brian. Testing Tools Supplier List. ht tp ://
ww w.te stingfags.or g八
ools.ht m
9 http:// www.gv
u.ga tech.ed u/user-surveys
10h ttp://
www.us eit.co m
11h ttp://
www.se gue.co m/
.197.