您当前的位置:首页 > 计算机论文>计算机网络论文

WEB系统测试的应用与研究

2015-12-17 11:04 来源:学术参考网 作者:未知

摘 要:本文的目的是对现有的一些典型Web测试方法与技术进行剖析。首先讨论了Web测试的必要性及其特殊性;接着针对Web应用特殊的体系结构,分析故障可能产生的位置;然后详细讨论了各种具体的测试技术;最后介绍了一些Web测试的常见工具。

关键词:Web测试;自动化测试;功能测试

引言

  Web以其广泛性、交互性和易用性等特点迅速风靡世界,网页数量正以指数级飞速增长。能够吸引尽可能多的用户并对其长时间关注是网站追求的主要目标。也是衡量一个网站是否成功的主要指标,这就对网页功能的正确性、有效性和完善性提出了较高的要求,从而Web测试就成为Web应用开发过程中的一个重要环节。通过Web测试尽可能多地发现浏览器端和服务器端程序中的错误并及时加以修正,以保证Web应用的质量。

Web应用特点及其故障源分析

  与传统软件相比,Web应用有很多独特的地方,其中对测试有影响的方面主要有以下几点:其一,Web应用的用户数量巨大,并要求能提供对Web资源的跨平台全局访问,需要有并发处理事务的能力,因而需要进行多用户的性能测试[1]。其二,使用环境不尽相同。硬件设备、网络连接、操作系统、中间件、服务端支持、浏览器等都有所不同,形成了异构、自治的工作环境。这就需要考虑兼容性测试。总之,Web具有分布、异构、并发和平台无关的特性,传统的测试方法己经不能完全胜任对Web的测试,需要一套独特的测试体系。

  图1:Web应用体系结构图

  Web应用的结构示意图如图1所示。由于Web应用具有多层体系结构,各层之间的依赖关系又非常复杂,使得在每层内以及各层间都有可能发生故障。在客户机端,由于浏览器的型号、版本有很大的不同,以及对应的显示技术各不相同,使得有些信息往往不能正常地显示,从而产生兼容性问题以及显示故障;在服务器端,服务器、数据库的负载能力有限,在用户访问达到高峰时,响应时间太长甚至不接受用户的访问;并发用户的行为会影响到与站点交互的情况,用户之间也可能相互干扰。

  总之,由于诸多问题的存在,必须做功能测试、负载和强度测试、浏览器兼容性测试以及安全性测试等,各种基本的测试技术将在下部分详述。

Web测试的基本技术

1  功能测试

  功能测试就是结合规格说明的要求,保证功能上正确无误。根据测试要求的难易程度的不同,功能测试可分为:简单功能测试、任务特征测试、边界测试、强制错误情况测试、探测性测试等,以确保不同层次上的网站或网络应用程序运行的质量。简单功能测试主要做一些链接可达性的检查工作。任务特征测试是根据任务的交互性、不确定性等不同特征,进行有针对性的测试。边界测试是在输入数据域的边界抽取数据进行测试。强制错误情况测试是根据设计时的规格说明,人为输入明显错误的数据,然后观测系统的运行情况,主要测试系统的容错性。探测性测试就是边设计边执行测试,试探性地前进几步并及时调整。

2  负载测试

  负载测试主要是确定在用户可接受的响应时问内,系统能够承担的并发用户的数量。由于成千上万的用户可能在同一时刻访问一个网站,为了保证系统的正常运行,必须测试在最重的工作负载下网站的运行情况。

  可以通过脚本来生成成千上万的“虚拟用户”,同时访问站点并与站点交互。这些虚拟用户执行各种典型的任务,如浏览网页、购买商品、搜索数据库等。在虚拟用户执行这些任务的同时,记录下服务器的响应时间。当测试执行完成以后,分析通过负载测试得到的数据,如在不同交互情况下的网页传送所需时间、网页传送出错信息等。经过一定的分析、运算,得出网站能同时支持的用户数目、交互数目等,并尽可能找出多用户访问的瓶颈,最后以报告和图表的形式来显示测试情况下网站的执行情况以及潜在问题存在的地方。

3  浏览器兼容性测试

  浏览器兼容性测试主要是在不同的浏览器环境下对Web应用的显示作测试,使得Web应用的功能能够正确运行于广泛的操作平台之上,保证某些代码(如Java Applets、JavaScript、CSS等)的功能在不同配置上都具有正确性。

  浏览器有各种版本的Firefox、Internet Explorer、Maxthon等,可应用于Windows、Unix、Linux等平台,因而要在不同浏览器、操作系统的结合下进行网站测试。在不同的客户硬件配置、操作系统、浏览器类型和版本以及浏览器插件的组合使用情况下,观察浏览器显示的所有元素。检察浏览器命令,检验内容设置,确认浏览器安全设置,检查高级设置等。

4  安全性测试

  对一个网站而言,安全性是至关重要的。尤其对网上交易、网上银行等来说,如果安全得不到保障,那么业务很难进行。通常的安全机制包括信息存取控制、用户身份校验以及对机密信息进行加密等,同时要能根据用户的访问情况判断出该用户是正常的用户还是蓄意的破坏者。因而,安全性测试所做的工作也是围绕这几方面进行的。对信息存取控制进行测试,采用的方法类似于功能测试,选择的测试用例应该能够反映不同的控制级别。对用户身份校验的方法有密码设置、数字签名等,相应的测试方法是在输人密码或数字签名后,看输出的结果正确与否。对加密信息进行测试,主要是看解密后的信息是否正确。另外还要检查其是否具有识别恶意访问者的功能。

5  回归测试

  在软件生命周期中的任何一个阶段,只要软件发生了改变,就可能给该软件带来问题。软件的改变可能是源于发现了错误并做了修改,也有可能是因为在集成或维护阶段加入了新的模块。每当软件发生变化时,我们就必须重新测试现有的功能,以便确定修改是否达到了预期的目的,检查修改是否损害了原有的正常功能。同时,还需要补充新的测试用例来测试新的或被修改了的功能。为了验证修改的正确性及其影响就需要进行回归测试。 

  回归测试在软件生命周期中扮演着重要的角色,因忽视回归测试而造成严重后果的例子不计其数,导致阿里亚娜5型火箭发射失败的软件缺陷就是由于复用的代码没有经过充分的回归测试造成的。 

  在上述各种具体测试的过程当中,要完成这些任务,仅靠手工实现是难以想象的,必须要有工具的帮助。接下来我们就介绍一些Web自动化测试工具。

Web自动化测试工具的介绍与比较

  目前国内比较流行的自动化测试工具多种多样,下表列出了一些有代表性的自动化测试工具。

Segue Software

Silk Test

功能测试

http://www.segue.com/products/index.asp

Silk Performer

性能测试

Silk Central Test Manager

测试管理

Empirix

e-Tester

功能测试

http://www.empirix.com/Empirix/Web+Test+Monitoring/Testing+SolutionsIntegrated+Web+Testing.html

e-Load

性能测试

e-Monitor

测试管理

Thought

Works

Selenium

功能测试

http://selenium.thoughtworks.com/

Microsoft

Web Application Stress Tool

性能测试

http://www.microsoft.com/technet/archive/itsolutions/intranet/downloads/webtutor.mspx

表 1:典型Web自动化测试工具

  对以上各种自动化测试工具进行研究我们就会发现每个工具都有其支持的侧重点,尤其对被测试软件中各种控件的录制和识别,需要工具进行严格的支持。所以在进行一项自动化测试之前,对测试工具的选型显得尤为重要。一般地,对于自动化测试工具具有如下要求:

  1. 支持脚本化语言:包括支持数组、列表、结构等多种常用的变量和数据类型、各种条件逻辑和循环、函数的创建和调用。脚本语言的功能越强大,就能为测试者提供更灵活的使用空间,或者用它写出比被测软件还要复杂得多的测试系统。

  2. 对程序界面中对象的识别能力:工具必须能够将程序界面中的所有对象都区分并标识出来,录制的测试脚本才具有更好的可读性、灵活性和更大的修改空间。

  3. 支持数据驱动测试:在数据驱动测试中,只需编制少量的脚本,而准备大量的测试数据,测试工具可以自动重复完成大量的测试工作。

  4. 支持函数的可重用:用它可以建立一套比较通用的函数库,一旦程序做了修改,只需把原脚本中的相应函数进行更改,而不用把所有可能的脚本都改动,可以大大节省工作量。

  5. 支持外部函数库:一些外部函数同样能够为测试提供更强大功能,如Windows程序中对DLL文件的访问,Client/Server程序中对数据库编程接口的调用等。

  此外,还有错误处理、软件配置管理、支持脚本的命令行方式执行、知识管理、抽象层等要求,由于篇幅原因,就不在这里一一赘述了。

结束语  随着Web应用种类的不断增加,作为保证Web质量和可靠性的重要手段,Web测试受到人们越来越多的重视。基于Web的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的挑战。测试人员需要在全面认识各种测试方法及测试工具的长处及其局限性,针对针对不同的开发语言、不同应用领域、在软件工程的不同阶段选择合适的测试工具,只有这样才能充分发挥自动测试工具的作用,提高软件测试和软件开发的效率。

参考文献:

.计算机工程与应用,2002,2:55-57

相关文章
学术参考网 · 手机版
https://m.lw881.com/
首页