Web软件测试研究

时间:2023-04-25 16:54:04 公文范文 来源:网友投稿

摘要:随着Web应用软件的快速发展,作为保证Web软件正确性和可靠性的重要手段,Web应用软件测试受到了人们越来越多的重视。文章从web软件体系结构出发,分析了Web软件测试的主要特点和难点,指出了传统软件测试与Web软件测试之间的差别。总结了Web软件测试的内容和方法。这些对于提高和改善Web软件的质量具有指导意义。

关键词:Web;软件游览;体系结构;方法

0 引言

随着Intemet的普及和电子商务应用的深入。Web应用程序得到越来越广泛的应用,B/$架构也逐渐代替C/S架构成为主流的应用模式。与传统软件相比,Web应用程序具有分布式、并发、多用户异构等特点,这些特点对软件测试提出了新的要求。Web测试是保证Web应用程序质量的有效手段,目前在Web测试的方法和技术以及相关工具等方面的研究已进行了一些尝试。软件测试的自动化技术有助于开发出更高质量的产品,并且可以节省开发时间和开支。

1 Web软件体系结构

Web应用程序采用B/S结构,它是伴随着Intemet技术的不断进步,由C/S结构改进和发展起来的新型体系结构。B/S结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能。是一种全新的软件系统构造技术。这种结构已成为当今应用软件开发的首选体系结构。

Web系统的基本工作过程是:在客户端,用户通过浏览器向Web服务器中的控制模块和应用程序输入查询要求,Web服务器将用户的数据请求提交给数据库服务器中的数据库管理系统DBMS;在服务器端,数据库服务器将查询的结果返回给Web服务器,再以网页的形式发回给客户端。在此过程中,对数据库的访问要通过Web服务器来执行。Web系统的基本体系结构及工作过程如图1所示。

从上面的体系结构可以看出,Web测试应该分为三个层次,客户端测试、服务器端测试和数据库测试。客户端主要测试用户浏览器的基本功能和页面现实情况;服务器端主要测试用户请求响应情况;数据库端主要测试数据一致性和输出错误。

2 Web软件测试的主要特点与难点

Web软件由于其分布式应用、具有各种运行时行为、涉及多种标准协议,可能在硬件、软件、通信、对象管理等环节出现各种缺陷。其体系结构和应用的复杂性,以及技术和规范不断地发生变化,对测试提出了新的挑战。Web软件测试的特点与难点主要体现在以下几个方面:

(1)Web软件的开发环境与其应用环境有很大的不同,在发布之前,很难对其实际的运行场景进行预测,如用户类型、并发用户数量、Web服务调用的装载模式和访问方式等,这些差异和应用的不确定性都增加了Web服务测试的困难。

(2)Web软件测试主要基于软件接口进行设计和实现,因此必须采用自动化测试方法,与传统的需要大量人工干预的测试方法截然不同。

(3)Web软件由于其分布特征,会出现大量用户通过不同的环境访问同一个服务的情形,因此,性能和可扩展性是Web软件测试的重要方面。

(4)Web软件及软件集成的发布、发现和绑定都是动态完成的,其过程的不确定性和不可见性增加了测试难度。

(5)Web软件访问接口和访问方法发布后增加了Web软件的安全隐患,提高了被系统攻击的机会。此外,对于所调用的分散、异构的外部Web服务的安全性的管理也非常困难。如何提高Web软件的安全性也是测试者要考虑的重要问题。

(6)Web软件的应用通常涉及到软件提供者、发布者和使用者三种角色,都需要参与到测试的不同阶段,其分布式合作的特征使得测试的组织、缺陷管理、结果评估等活动都更加困难。

目前。针对Web软件的测试方法和技术的研究还处于初始阶段,代表性的研究主要有基于形式化方法对协议及规格说明的验证(如WSFL验证技术、SOAP验证)和Web服务的集成测试。

3 传统软件测试与Web软件测试

传统软件测试经常是静态、离线的测试,尽管这些传统的测试技术也可以应用到Web服务的测试当中,然而相当有意义的一部分Web软件测试都必须是动态的和在运行时间内的即时测试。Web软件这种动态和即时测试对传统的测试理论提出了新的挑战和要求。表1比较了传统软件和Web软件测试的差别。

4 Web软件测试的内容和方法

Web测试主要目标是确保提交高质量的Web软件。对于错综复杂的Web软件,从什么地方开始测试。哪些方面是测试的核心,有限的测试资源如何分配,这些都是Web软件测试需要重点考虑的问题。下面介绍Web软件测试的主要内容和方法。

4.1 功能测试

链接测试 链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。链接测试可分为三个方面:①测试所有链接是否按指示的那样确实链接到了该链接的页面。②测试所链接的页面是否存在。③测试Web应用系统上有无孤立的页面。所谓孤立页面是指没有链接指向的页面,只有知道正确的URL地址才能访问。

表单测试 单元当用户给Web应用系统管理员提交信息时,就需要使用表单操作。例如用户注册、登陆、信息提交等。在这种情况下,我们必须测试提交操作的完整性,以校验提交给服务器的信息的正确性。例如:用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等。

Cookies潮试Cookies通常用来存储用户信息和用户在某应用系统的操作。当一个用户使用Cookies访问了某一个应用系统时,Web服务器将发送用户的信息,把该信息以Cookies的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登录等信息。如果Web应用系统使用了Cookies。就必须检查Cookies是否能正常工作而且对存储的信息已经加密。测试的内容可包括Cookies是否起作用,是否按预定的时间进行保存,刷新对Cookies有什么影响等。

设计语言测试 Web设计语言版本的差异,例如使用不同版本的HTML等,可以引起客户端或服务器端严重的问题。在分布式开发环境中,开发人员都不在一起,这个问题就显得尤为重要。除了HTML的版本问题外,不同的脚本语言,例如Java、JavaSeript、ActiveX、VBScript或Perl等也要进行验证。

数据库测试 数据库为Web应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。在使用了数据库的Web应用系统中,一般情况下,可能发生两种错误,分别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的。针对这两种情况,可分别进行测试。

4.2 性能测试

网站的性能测试对于网站的运行而言异常重要,但是目前对于网站的性能测试做得不够,我们在进行系统设计时也没有一个很好的基准可以参考,因而建立一整套网站的性能测试方案将是至关重要的。

连接速度测试 用户连接到Web应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽带上网。当下载一个程序时,用户可以等较长的时间,但如果仅仅访问一个页面就不会这样。连接速度太慢。还可能引起数据丢失,使用户得不到真实的页面。

负载测试 负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web系统的用户数量,也可以是在线数据处理的数量。例如:Web应用系统能允许多少个用户同时在线;如果超过了这个数量,会出现什么现象。

压力测试 压力测试是指实际破坏一个Web应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到Web应用系统崩溃,接着当系统重新启动时获得存取权。

4.3接口测试

服务器接口 第一个需要测试的接口是浏览器与服务器的接口。测试方式一般是,测试人员提交事务,然后查看服务器记录,并验证在浏览器上看到的正好是服务器上发生的。测试人员还可以查询数据库,确认事务数据已正确保存。

外部接口有些Web系统有外部接口,例如,网上商店可能要实时验证信用卡数据以减少欺诈行为的发生,测试的时候,要使用Web接口发送一些事务数据,分别对有效信用卡、无效信用卡和被盗信用卡进行验证。

错误处理 最容易被测试人员忽略的地方是接口错误处理。通常我们试图确认系统能够处理所有错误,但却无法预期系统所有可能的错误。为此,可以尝试在处理过程中中断事务,看看会发生什么情况,订单是否完成,尝试中断用户到服务器的网络连接,系统能否正确处理这些错误。

4.4 兼容性测试

平台测试市场上有很多不同类型的操作系统,最常见的有Windows、Unix、Macintosh、Linux等。Web应用系统的最终用户究竟使用哪一种操作系统,取决于用户系统的配置。这样,就可能会发生兼容性问题,同一个应用可能在某些操作系统下能正常运行,但在另外的操作系统下运行可能会失败。因此,在Web系统发布之前,需要在各种操作系统下对其进行兼容性测试。

浏览器测试 浏览器是Web客户端最核心的构件。来自不同厂商的浏览器对JavadavaScript、ActiveX或不同的HTlML规格有不同的支持,例如,ActiveX是Microsoft的产品,是为Intemet Explorer而设计的,JavaScript是Netscape的产品,Java是Sun的产品等等。测试浏览器兼容性的一个方法是创建一个兼容性矩阵,在这个矩阵中,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性。

4.5 安全测试

景登 现在的Web应用系统基本采用先注册,后登录的方式,因此,必须测试有效和无效的用户名和密码。要注意到系统是否对大小写敏感,可以试行登录多少次,是否可以不登录而直接浏览某个页面等。

日志文件为了保证Web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进了日志文件、是否可追踪。

安全漏洞 服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。

5 结束语

一般软件的发布周期以月或年计算。而Web应用软件的发布周期以天甚至以小时计算。Web测试人员必须处理更短的发布周期,他们面临着从测试传统的C/S结构和框架环境到测试快速改变的Web应用系统的转变。基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证系统是否按照设计要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。因此,我们必须为测试和评估复杂的基于Web的系统软件研究新的方法和技术。

推荐访问:测试 研究 软件 Web