谢栓库

摘 要:基于web的软件测试与传统意义上的单机软件测试既有相同之处,也有不同之处。用户需求的实现只是基于web的软件测试的基础。如何在时间短、任务量大的情况下进行web测试,对此提出了新的挑战。文章从web测试的测试类型方面入手,对功能、性能、可用性等基于web系统的测试方法进行讨论。

关键词:软件测试;web系统;测试研究

近年来随着internet的兴起与快速增长,web对于我们的工作和生活产生了深远的影响,电子商务和电子政务等web应用的兴起,基于b/s结构的软件日举国强劲发展,正在成为未来软件模式的趋势。同时,由于web系统开发的开发规模较小、周期较短、成本较低、便宜于维护等原因,使得多数的中小型规模的软件企业都愿意在此进行投入。通常意义上的大型软件例如《魔兽世界》、《星际争霸》等,从软件的设计、开发、测试到最终版本发布,周期通常以年来计算;而基于web的应用软件的发布周期则短很多,通常以月,甚至是以日来计算。本文的研究就是基于这种需求,作者基于最近几年的实际项目经验,结合已经进行过的web测试实践,总结出的在时间短、伤务量大的情况下,基于目标的web性能测试方法,具有较强的目的性和可操作性。

一、概述

一般来说,web测试主要可以分为功能性测试和非功能性测试两种:功能性测试就是参照软件产品的需求规格说明书,根据功能测试用例对软件的各个功能进行逐一验证,检查测试的软件是否达到最终的要求;而非功能性需求会涉及到一些诸如性能、可用性等属性。测试的目的:不同的阶段,测试的目的也是不同的。我对web测试分成三个阶段,第一阶段,主要是功能性测试,验证基本功能是否达到要求,同时进行部分非功能性测试,以检测系统是否易用;第二个阶段是系统的性能测试,这个阶段的目的是检测系统在功能达标的情况下,是否存在性能的瓶颈,为系统优化打好基础;第三个阶段是进行系统的安全性测试。

二 安全性测试

Web应用系统的安全性测试主要有:登录及权限、超时限制、目录设置、日志文件、加密解密、脚本权限。

1 登录及权限

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

登录及权限的主要测试内容包括:验证用户输入有效性,比如输入错误的用户名或密码则不能登录;不能输入非法字符,如:% 4.3 加密解密测试

加密解密测试主要测试内容包括:地址是否为明码?URL中是否用户名和密码是否为加密?加密是否正确?

2脚本语言测试

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

三、性能方面的测试

首先要做好性能测试的准备,包括:明确测试目标;依据产品功能说明书、性能需求说明书,确定系统要达到的性能指标。删除浏览器中的缓存数据。性能测试的场景选取:重点业务的逻辑点;与数据库测试相结合。

1)连接速度测试

连接速度测试主要包括:根据上网方式的变化而变化,如电话拨号、宽带上网等;不同用户操作,如浏览、下载;页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登陆了,也可能引起数据丢失,使用户得不到真是的页面。

2)负载测试

负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统需求范围内能正常工作。负载级别可以分为:某个时刻同时访问Web系统的用户数量;在线数据处理的数量。例如:Web应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什幺现象?Web应用系统能否处理大量用户对同一个页面的请求?负载测试要选取应用系统的重点业务功能进行测试,根据系统的功能来确定登录、浏览、查询、修改等不同操作的频度和比率,制定合适的负载测试计划。

3)数据库测试

在Web应用中,最常用的数据库类型是关系型数据库,可以使用SQL对信息处理。一般情况下,可能发生两种错误,分别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的。数据库测试主要内容包括:数据库安全性测试、数据备份恢复测试、灾难恢复测试、数据库性能测试。

四、web系统的非功能性测试

非功能性需求会涉及到一些诸如性能、可用性等属性。常见的非功能性测试主要包括以下几个类型:

(1)性能测试。性能测试包括很多种,但是主要分为以下几类:(1)连接速度测试。当用户点开一个页面或者激活一个窗口的时候,如果web系统响应时间太长,或者执行某个操作,系统由于程序或者带宽的限制导致得到的操作结果十分缓慢,这样就会导致用户的满意度直线下降。(2)负载测试。负载测试是为了衡量web系统,在某种特定负载级别上的性能,以确定web系统能够正常工作的范围。例如:web应用系统允许多少个用户同时在线?多少个用户执行并发操作?如果超过了这个范围,会有什幺影响?(3)压力测试。进行压力测试是指以施加压力破坏一个web应用系统的方式对系统进行测试,以检验系统在这种情况下的运行情况。压力测试不达标主要有以下两种情况。一是程序出现异常,大量数据的读写可能会出现代码或数据库的异常。二是程序读写效率低下。压力测试的目的是测试用系统在什幺情况下会崩溃?崩溃的后果是什幺?在web系统中,对于表单、登录和其他信息传输页面,都需要进行压力测试。

(2)可用性测试。可用性测量试主要进行的是非功能性测试,其中包括:(1)导航测试。导航测试是否直观?因为在同一个页面上放太多的信息,往往起到与预期相反的效果。(2)图形测试。一个web应用系统的图形可以包括图片、动画、按钮等。力片和动画除了能起到美化页面的功能之外,还可以进行广告宣传。图形测试的内容有:①保证页面元素的美观,不要杂乱无章地排列,同时图片和动画要尽可能的小,以免浪费传输时间。②验证所有相关联的页面布局和字体的风格是否一致。③背景颜色应该与字体颜色和前景颜色相搭配。(3)内容测试。内容测试用来检验web应用系统所提供信息是否准确,而错误的内容,很可能导致法律纠纷等一系列问题的出现。

四、结语

基于web的软件测试与传统意义上的单机软件测试既有相同之处,也有不同之处。如何在时间短、任务量大的情况下进行web软件测试,对此提出了新的挑战。因此,不论是基于web的软件测试,还是传统意义上的单机应用软件的测试,最好要由测试团队在充足的测试时间内来完成,这样可以将由于测试导致的风险降低至最小。

参考文献:

[1] Patton R.软件测试[M].周予滨,姚静,译.北京:机械工业出版社,2002.

[2] 齐治昌,谭庆学,宁洪.软件工程[M].2版.北京:高等教育出版社,2004.

[3] 杜文洁,景秀丽.软件测试基础教程[M].北京:水利水电出版社,2008.

[4] 路晓丽.软件测试技术[M].北京:机械工业出版社,2007.

[5] 陈能技.QTP自动化测试实践[M].北京:电子工业出版社,200