web测试课笔记

2024-05-07

web测试课笔记(通用4篇)

篇1:web测试课笔记

Web性能测试

(1)连接速度测试

用户连接到Web应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽带上网,当下载一个程序时,用户可以等待较长的时间。但如果仅仅访问一个页面就不会这样,如果Web系统响应时间太长(例如超过5秒钟),用户就会因没有耐心等待而离开。另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登录了。而且,连接速度太慢,还可能引起数据丢失,使用户浏览不到本来的页面。

(2)负载测试

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

(3)压力测试

压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃,

web可用性测试

(1)导航测试

导航实际上是给访问者提供了一个类似地图的东西,让访问者更快捷的找到需要的东西。它描述了用户在一个页面内操作的方式,在不同的用户接口控制之间,例如,按钮、对话框、列表和窗口等;或在不同的连接页面之间。通过考虑下列问题.可以决定一个Web应用系统是否易于导航:导航是否直观?Web系统的主要部分是否可通过主页存取?Web系统是否需要站点地图、搜索引擎或其他的导航帮助?

(2)图形测试

在Web应用系统中,适当的图片和动画既能起到广告宣传的作用,又能起到美化页面

的效果。一个Web应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮

等。图形测试的内容有以下几个方面。

①要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间。Web应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面。

②验证所有页面字体的风格是否一致。

③背景颜色应该与字体颜色和前景颜色相搭配。

④图片的大小和质量也是一个很重要的因素,一般采用JPG或GIF压缩.

篇2:Web服务测试技术综述

SOA已成为基于Web分布式系统的主要发展趋势。Web服务采用SOA体系架构,引入了一种新的Web应用开发、部署和集成的模式,是实现各种异构平台上应用间的互操作的主要技术。目前,Web服务已经受到了广泛的应用,无论是平台供应商、解决方案供应商、技术供应商,还是服务提供商都纷纷在自己的平台、解决方案中加入Web服务。在这样的形势下, Web服务的质量成为了最为关注的问题。 一旦某一Web服务存在严重的质量问题,将可能给使用者造成不可估量的损失与危害,因此,需要对Web服务的质量进行评估。对Web服务质量评估的一个有效方法为测试。但是传统的软件测试方法与技术难以适应Web服务的测试的需求,这主要体现在几个方面:① Web服务在发布之前很难对其实际的运行场景进行预测;②Web服务基于接口进行设计与实现,对用户不提供源代码,只能进行黑盒测试;③Web服务的应用通常涉及到服务提供者、代理者和使用者三种角色,他们都需要参与到测试中来;④多个Web服务可以在运行时动态的组合成一个新的Web服务,需要对合成服务进行集成测试。目前,国内外已经开始对Web 服务测试进行研究并取得了一些初步的研究成果。本文研究了Web服务测试所面临的主要问题,总结和分析了现有的Web服务测试研究方法与技术,并对未来可能的研究方向进行了初步的探讨。

2 Web服务基本概念

Web服务是一个通过URL识别的软件应用程序,其界面与绑定使用XML文档定义、描述和发现,使用基于Internet协议上的消息传递方式与其他应用程序直接交互。Web服务是一种全新的技术架构,其主要的核心技术包括:简单对象访问协议(SOAP)、Web服务描述语言(WSDL)和统一描述、发现和集成协议(UDDI)。SOAP[1]是调用Web 服务的协议,提供了应用程序和Web服务之间的通信手段。WSDL是描述Web服务的格式,Web 服务采用WSDL[2]语言来描述。UDDI[3]提供了一个开放平台独立的技术框架,来使企业之间能在互联网上找到对方的服务,定义它们在Internet上的交互活动,以及这些信息的共享方式。

3 Web服务测试的难点与基本方法

3.1 Web服务测试的难点

由于Web服务的动态特征和分布式特点,任何人都可以在任何时间、任何地点发布、注册和请求Web服务,因此给Web服务测试带来了很多挑战。Web服务测试研究的难点主要集中在以下几个方面。

(1)在Web服务测试过程中,首先遇到的问题就是怎么产生测试案例。传统方法采用手工输入测试案例进行测试是非常耗时的,因此必须自动化的产生测试案例。但是由于Web服务提供的WSDL文档只包括一些基本的参数信息,很难只根据这些信息产生有效的测试数据,因此,自动化产生测试案例是一个主要的难点。

(2)由于Web服务是一个封装的软件,需要构建Web服务客户端来进行测试。每一次的Web服务测试都需要进行Web服务的调用,因此,当执行的测试案例数量庞大的时候,就会存在大量的Web服务调用,这就必然会导致网络负载的增加,从而引起测试时间延长、测试效率降低等现象。因此,怎样提高测试效率也是测试的一个难点。

(3)由于单个的Web服务不能满足日益变化的业务需求,因此,需要把单个的Web服务组合在一起形成一个新的Web服务来满足客户的需要。这种组合的Web服务具有多样性、分布性与动态性等特征,这给测试带来了新的挑战。

(4)由于Web服务所支持的业务经常需要改变,Web服务也需要经常快速的升级或修改。但是服务使用者并不知道服务已经发生了改变,一般情况下都采用回归测试。然而,手工的回归测试方法越来越不能满足Web服务的动态变化的需求,因此,需要进行自动化的回归测试。而怎样进行自动化的回归测试也成为了一个难点。

(5)测试进行到什么时候才算是进行了一次充分的测试,因此怎样分析测试的覆盖率来判断是否对Web服务进行了充分的测试也是一个难点。

(6)在SOA的体系架构下,Web服务通常会涉及到服务提供者、服务代理和服务请求者这三种角色,他们应共同的参与到测试过程中来,但是由于他们之间的分布式协作的特性使得测试的组合和管理变得更加困难[4]。

(7)Web服务都是以WSDL文档进行发布,这一做法增加了Web服务的安全隐患,加大了系统被攻击的机会。因此,对Web服务进行测试还需考虑安全性问题。

3.2 Web服务测试的基本方法

由于Web服务涉及到服务提供者,服务中介者和服务客户端,因此他们都需要参与到测试中来。服务提供者拥有服务实现的源代码,可以进行黑盒和白盒的充分测试。但是在服务提供者方进行的测试不能真实反映实际的运行情况,比如,网络负载,客户端的数量等等。因此需要在服务中介者和服务客户端进行进一步的测试,特别是在服务客户端。服务客户端是Web服务的直接使用者,在客户端进行测试对整个Web服务质量评估是非常重要的。因此测试也主要基于客户端进行。Web服务测试的基本方法如下:

(1)功能测试。Web服务测试的基础是功能测试。Web服务功能测试就是判断对正确的用户请求能否做出正确的响应。跟传统的功能测试不一样,由于服务消费者不拥有Web服务实现的源代码,因此需构建客户端程序进行黑盒测试。它发送SOAP请求消息调用Web服务,把返回的信息和期望的结果进行比较,验证Web服务的功能。目前,有很多针对Web服务功能测试的方法,大部分的方法主要是通过变化的输入的数据进行测试,例如,Samer Hanna[5]提出了基于缺陷技术的方法来测试Web服务的功能,进一步验证Web服务的鲁棒性。它利用输入参数的边界值,无效等价类划分,违反输入参数的说明规则来产生测试数据,利用这些产生的测试数据进行功能测试,分析测试结果。

(2)负载测试。除了对Web服务进行基本的功能测试之外,还需要进行性能测试,测试Web服务性能的一个比较好的方法就是对Web服务进行负载测试。通过模拟多个虚拟的客户端在同一时间段内进行Web服务调用来测试Web服务能够处理的最大请求数和分析请求返回的响应时间来判断Web服务的性能。

(3)回归测试。由于Web服务所支持的业务经常需要改变,所以Web服务也必须快速的调整,比如升级,修改等。然而服务使用者并不知道服务已经进行了修改,因此这些修改的部分也必须经过快速的验证。除了新增功能的正确性,还必须保证每一个修改的部分不会影响原有的功能。一个通常的做法就是进行回归测试。而回归测试的一个关键问题就是怎样减少进行回归测试的次数,当越来越多的测试案例增加到测试案例组的时候,如果选择所有现存的测试案例进行回归测试,将会非常耗时。文献[6,7]提出了一个安全回归测试选择(RTS)方法来选择测试案例。安全回归测试技术能够在不降低测试完整性的情况下减少回归测试的次数,提高回归测试的效率。

4 Web服务测试工具

在进行Web服务测试的时候,通常都需要有一个测试客户端,多数情况下我们必须花大量精力来编写和调试自己的客户端,并且往往缺乏通用性。因此必须使用Web服务测试工具根据WSDL 的URL地址自动产生客户端进行Web服务测试。目前市场上有部分的Web服务测试工具,比较优秀的测试工具有SOAtest[8],SOA PUI[9], Rational Tester[10]。这些测试工具都提供图形化的界面方便用户使用。它们允许用户导入WSDL文档,手动创建和编辑测试案例,运行测试案例和检查结果。其中的一些工具还能够根据WSDL文档所包含的信息,用随机、等价类划分、边界值分析等方法自动化的产生一些测试数据。但是仅仅根据WSDL文档中的类型定义产生的测试数据有大多数是无效的,降低了探测错误的效率。因此,为了提高探测错误的效率,一些研究人员也设计了自己的测试工具[11]。

5 Web服务测试技术研究现状

目前,国内外已经对Web服务测试做了大量的研究,并且取得了一定进展。具体的介绍如下:

(1)测试案列产生。为了实现自动化的Web服务测试,首要的要求是能自动的获得测试案例。文献[12]提出了一个基于WSDL文档的自动测试案例产生的方法,它主要是通过对数据类型进行语法分析,结合一个数据类型的约束定义的知识库,利用随机和边界值的方法来产生测试数据。这个方法只涉及到定义在WSDL文档中结构和类型信息,因此产生的测试案例大多数是随机的和无效的测试案例。文献[13]提出了一个基于决策表的方法来产生测试案例,它利用Web服务语义描述语言(WSDL-S[27])对WSDL文档增加了语义注释,将操作表述为输入、输出、前置条件和后置条件,然后分析这些语义标注的条件,利用有限决策表的方法产生测试案例,这种有限决策表的方法能够在满足Web服务测试要求的情况下达到减少测试案例的目的。文献[14]提出了一个实际方法来产生测试数据,它通过WSDL文档中的数据类型和用户自定义的约束规则产生测试数据,该方法能产生有效的测试数据,提高测试效率。文献[15]提出了一个基于模型方法和OWL-S来产生测试案例,它应用语义Web服务过程模型来建模Web服务测试过程,使用Petri-Net模型来捕获OWL-S过程的结构和行为,具体的测试案例从两方面产生:①测试步骤的产生是通过遍历Petri-Net各种执行路径,②测试数据产生是通过对IOPE(输入,输出,前置条件和后置条件)本体进行推理产生。

(2)合约测试。合约是一种规约、契约。合约可以在运行时被检查,便于捕获Web服务执行过程中的一些故障,提高Web服务的测试效率。Web服务中的合约用来表示服务提供者和服务我使用者相互的义务和利益,可区分软件失效时的责任。常见的合约种类有:前置条件、后置条件和不变式。前置条件表明方法正确运行所需的条件或限制,若是违反前置条件,则是使用者处存在错误;若是遵守了前置条件而导致错误,则是提供者处存在错误。文献[16]提出了基于合约的方法测试Web服务,它继承了传统的合约概念(前置条件,后置条件,不变式),使用OWL-S过程模型描述合约,通过检查Web服务是否满足它的合约,来测试Web服务。它的测试原理是:根据Web服务的输入域和合约中的前置条件来产生测试案例,然后运行这些测试案例得到实际的输出,将实际的输出结果和合约中的后置条件进行比较来验证Web服务的正确性。

(3)变异测试。变异测试是使用变异算子对软件进行作用,从而产生许多不同的软件版本,称为“变异体”。当变异体的运行结果不同于源程序的运行结果时,称该变异体被杀死。当执行完所有的变异体后,测试者将获得两方面的信息:①被杀死的变异体数目;②未被杀死的变异体,其在功能上等价于源程序,称为等价变异体。变异测试使用变异充分度(被杀死的变异体数目与非等价的变异体数目的比值) 来衡量测试输入集的充分性程度。文献[17]提出了基于合约变异的Web服务测试技术,首先根据WSDL 文档采用随机法自动生成初始测试数据,然后使用合约变异技术进行测试数据的选择,据此可以生成一组达到一定合约变异充分度的有效测试数据,从而提高Web 服务的测试质量和效率。文献[18]提出了数据变异的方法来进行测试,数据变异包括数据值变异和合作变异,它通过变异请求消息中的数据和分析响应的消息进行测试。文献[19]提出了一个基于本体的变异分析方法,它对OWL-S说明进行变异,包括数据变异、条件变异、控制流变异和数据流变异。

(4)划分测试。划分测试是通过把Web服务所有可能的输入数据域划分成若干部分,从每一部分中选取少数有代表性的数据作为测试用例,用少量有代表性的测试数据得到比较好的测试效果,可有效减少测试次数,极大提高软件测试效率。划分测试的性能主要取决于合适的划分选择。文献[20]提出了一个基于本体的划分测试方法,它使用OWL-S对Web服务进行语义描述,然后通过对本体中类的属性和关系的计算推理产生初始测试数据,利用划分测试的方法对其进行划分,使用划分后得到的测试数据进行测试。

(5)组合Web服务测试。单个的Web服务不能满足日益变化的业务需求,需要把单个的Web服务组合在一起形成一个新的Web服务来满足客户的需要。这种组合的Web服务具有多样性、分布性与动态性等特征,给测试带来了一定的难度。文献[21]使用模型检测的方法对BPEL4WS描述的组合服务进行测试,它通过转换BPEL4WS模型到TTPN模型,自动的验证和分析业务流程。文献[22]提出了一个基于WS-BPEL的Web服务结构化测试方法来测试Web服务组合,该方法提出了一个测试模型来抽象WS-BPEL过程的控制流,使用业务过程建模标记法(BPMN)标注的控制流图(BCFG)来表示WS-BPEL过程的控制流,通过遍历这个控制流图得到流程的测试路径和测试案例来验证Web服务的组合。

(6)组测试技术。对于一个给定的功能说明,许多Web服务可能都满足这个功能说明。因此当组合个新的Web服务时候,就可能存在很多种满足要求的组合。例如,假设一个组合服务由6个原子服务组成,而每一个原子服务可以从10个有着相同功能描述的候选服务中选择,那么就可能会产生106种组合服务,如果对每一种组合都进行测试那么就需要花费大量的时间。文献[23-25]提出了组测试技术的方法。组测试技术的原理是:使用相同的测试脚本对有着相同功能描述的Web服务进行测试,得到每个Web服务的测试输出,通过比较它们的输出来确定Web服务的输出标准。文献[23]假设错误的Web服务通常会产生和正确Web服务不一致的结果,然后通过一个多数投票算法,确立输出标准,将不满足这个输出标准的Web服务排除出去。然而即使正确的Web服务都有可能会产生轻微不同的输出,而文献[23]提出的多数投票算法不能将轻微不同的输出和真正错误区分开来。文献[24]提出了一个随机投票算法进行Web服务组测试,这个投票机制可以将输出看作是一个给定的范围,这样就区分了轻微不同的输出,并且它采用了模拟退火算法来查找输出最优解,提高了确立输出标准的效率。运用组测试技术能够排除不正确的候选服务,减少组合的次数,达到减少测试时间的目的。

(7)基于移动代理的测试。为了提高测试的效率和减少测试所花费的时间,文献[26]提出了一种基于移动代理的方法来测试Web服务。移动代理是一个可以在异构网络上的主机之间自主迁移和独立运行的计算机程序,它通过寻找合适的计算资源,利用和这些资源同处一台主机或子网的优势,快速的执行任务。基于移动代理测试Web服务的流程是:在本地主机和远程Web服务之间建立一个Http链接,携带测试案例的移动代理到达远程Web服务端之后,释放这个Http链接,执行Web服务调用,调用完成之后,收集测试结果信息,然后再重新建立一个Http链接将携带测试结果信息的移动代理传送回本地。传统的Web服务测试方法在整个的测试场景中都需要维持Http链接,而基于移动代理的方法只需要在移动代理迁移的时候建立Http链接,并且所有的测试案例调用都是通过移动代理在Web服务端的本地调用而不是传统的远程调用。这样当测试案例非常多的时候,基于移动代理的方法将大大的减少测试的总时间和网络负载,提高了测试的效率。

6 现有Web服务测试技术的不足与发展方向

目前,对Web服务测试的研究已经取得了一定的进展,但是还是存在很大的不足。首先,根据现有的方法自动产生的测试案例不够精确,存在很多的冗余,增加了测试所用的时间。其次,对组合的Web服务测试还处在初级阶段,主要都是基于分析WS-BPEL和OWL-S的文档的流程结构进行测试,对测试在运行时动态组合的Web服务还存在着很大的不足。再次,对分布式的协作测试也还处于研究阶段。因此,未来的发展方向包括几个方面:①进一步完善测试自动化技术,使自动化产生的测试案例更加精确有效。②对Web服务的动态组合的测试需进行进一步的研究。③建立完整的分布式环境下的测试过程模型,使在分布式的环境下,通过使用多种不同分工的测试代理完成测试任务。④对Web服务的安全测试方面需进行更进一步的研究。⑤对Web服务和SOA架构的可靠性和可信性进行研究。

7 结束语

篇3:小议Web测试

关键词:软件测试;web系统;时间短任务量大

中图分类号:TP393文献标识码:A文章编号:1007-9599 (2011) 03-0000-02

The Discussion on Web Testing

Su Li

(Neusoft Group Co.,Ltd.,Shenyang110179,China)

Abstract:The web-based software testing with the traditional stand-alone software testing both the similarities and differences.Implementation of user needs only a web-based software test basis,in addition,for the different resolutions,different browsers display manufacturers situation,whether to use,the system is safety tested.How time is short,the task carried out large amount of web software test cases,which presented new challenges.This type of test from the web test aspects of functionality,performance,availability,

client-side compatibility,security,and other web-based discussion of system testing methods

Keywords:Software testing;Web system;Short time for large amount of tasks

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

一、概述

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

二、web系统的功能性测试

在进行功能性测试的时候,各个模块的功能要必须与用户的需求保持一致,同时业务流程必须正常完成。常见的功能性测试主要包括以下几个类型:

(一)链接测试

链接是web应用系统的一个比较重要的功能,用户可以通过访问链接,进行自己想要进行的操作。链接测试目的是确认点击的链接是否已经按照设计的要求链接到了该页面、激活某个特定的页面或者窗口保证web应用系统上没有孤立的页面。

(二)表单测试

当用户向web系统提交例如注册、登录等信息时,通常需要使用表单的来进行,因此就要对表单内容的各个对话框输入数据的合法性以及提交数据完整性进行测试,以保证业务的顺利进行。

(三)cookies测试

cookies通常用来存储用户信息web系统上进行的操作。用户访问web应用系统,服务器会将此用户的信息,以cookies的形式给客户端决胜局,并且存储在客户端计算机上,以这种方式来创建动态页面或者存储信息。如果web应用系统使用了cookies,就必须对此进行检查。可以通过cookies是否按预定的时间进行保存,或者刷新对cookies有什么影响来进行验证,验证cookies是否有效。

(四)web程序设计语言与脚本语言的测试

现在网上常用的web程序设计语言有很多,但是程序设计语言版本的差异,都会引起客户端甚至服务器端严重的问题。除了web程序设计语言之外,不同的脚本语言,例如Java、JavaScript、ActiveX等也要对此进行验证。

(五)数据库测试

在web应用软件中,对于信息的记录通常使用数据库来进行,例如MySQL等。在web应用软件中,最常用的数据库类型是关系型数据库,例如系统中各个关联的下拉菜单可以使用这种方式进行配置。在进行数据库测试的时候,主要进行以下几种测试:数据库中表的关联是否正确、数据操作是否在对应的表单中进行、存储超界或者视图不全这类的操作是否会引起系统的异常如果有异常应当如何进行友好提示等。

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

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

(一)性能测试

性能测试包括很多种,但是主要的分为以下几类:

1.连接速度测试当用户点开一个页面或者激活一个窗口的时候,如果web系统响应时间太长(例如超过5秒钟,使用电话线拨号上网这种方式除外),或者执行某个操作,系统由于程序或者带宽的限制导致得到的操作结果十分缓慢,这样就会导致用户的满意度直线下降。

2.负载测试。负载测试是为了衡量web系统,在某种特定负载级别上的性能,以确定web系统能够正常工作的范围。例如:web应用系统允许多少个用户同时在线?多少个用户执行并发操作?如果超过了这个范围,会有什么影响?

3.压力测试。进行压力测试是指以施加压力破坏一个web应用系统的方式对系统进行测试,以检验系统在这种情况下的运行情况。压力测试不达标一般是主要有以下2种情况。

一是程序出现异常,大量数据的读写可能会出现代码或数据库的异常。二是程序读写效率低下。压力测试的目的是测试用系统在什么情况下会崩溃?崩溃的后果是什么?在web系统中,对于表单、登陆和其他信息传输页面,都需要进行压力测试。

(二)可用性测试

可用性测试主要进行的是非功能性测试,其中包括:

1.导航测试导航是否直观?因为在同一个页面上放太多的信息,往往起到与预期相反的效果。

2.图形测试一个web应用系统的图形可以包括图片、动画、按钮等。图片和动画除了能起到美化页面的功能之外,还可以进行广告宣传图形测试的内容有:

(1)保证页面元素的美观,不要杂乱无章地排列,同时图片和动画要尽可能地小,以免浪费传输时间。之前在进行某项目的web性能测试的时候就发现,系统中的某个特定页面,加载的时间始终是很长,经过分析,发现是页面中的一个图片元素过大所导致。

(2)验证所有相关联的页面布局和字体的风格是否一致。

(3)背景颜色应该与字体颜色和前景颜色相搭配。

3.内容测试。内容测试用来检验web应用系统所提供信息的是否准确,而错误的内容,很可能导致法律纠纷等一系列问题的出现。

(三)客户端兼容性测试

对于客户端兼容性的测试主要包括浏览器和操作系统两部分。而用户的操作习惯是不一样的,选择的浏览器通常也是不一样,例如MS IE、Firefox等。操作系统部分原则上说,由于操作平台绝大多数都是Windows系列平台,所以没有特殊要求的话,测试Windows几个有代表性操作系统的版本即可,例如MS Win XP SP2,Win2003和Win7。

(四)安全性测试

web应用系统的安全性测试主要包括:

1.登录测试:现在绝大多数的web应用系统都采用先注册、后登陆的方式来进行。对于登录功能,就需要对有效无效的用户名和密码、系统是否区分特殊字符与大小、错误密码数限制、是否可以通过登录后的地址栏中复制的链接直接访问某个页面等。

2.超时限制:如果用户在登录系统一段时间内(例如20分钟)没有进行任何页面的操作,则会话断开,需要重新登录系统才能正常使用。

3.为了保证web应用系统的安全,需要对系统进行操作日志文件的跟踪测试。

4.服务器端的脚本的安全性测试。例如脚本注入式攻击等等,常常被黑客利用对于这部分安全性测试来说,现在有很多现成的自动化的工具可以直接使用,例如Rational AppScan。

四、常用的web测试方法

进行web测试有很多种测试方法,通常来说有以下几种主要测试方法:点击页面上的链接,检查每个链接的跳转是否准确;在执行删除、增加等功能时,需要检查执行之后的信息是否准确?是否会对其它关联项产生影响;检查按钮的功能是否正确;检查对话框输入字符串长度的限制,对于超出部分是禁止输入还是给予提示,如果强制提交系统是否会出现异常;检查输入项的字符类型是否符合要求,例如只有数字的对话框是否可以输入字母或者密码框是否会显示明文;对于空格、各种引号、回车键等特殊符号,系统处理是否正确;关联页面的检查,例如对于新建信息页面中的必填项,在同样的修改页面中同样的选项是否仍然是必填;修改重名内容时,把不能重名的选项改为名称已存在的内容,检查系统是否会出现异常;使用tab键光标是否会按照预料的步骤进行跳转;检查是否支持常用快捷键,如Ctrl+C、Ctrl+V、Backspace等,系统的快捷键是否与常用的快捷键方式相同等等。

篇4:Web测试方法浅谈

与传统的单机版软件测试截然不同, 基于web的系统测试考虑范围更加宽泛, 不但要对软件功能需求正常运行进行检查和验证, 还要在不同的浏览器里面进行运行, 确认系统能否正常准确的显示, 此外随着web应用的范围越来越广泛, 个人应用涉及到诸多的财务以及个人信息的操作, 也更加注重客户体验和系统的反应速度, 因此对系统的安全性和可用性的测试备受关注。目前进行一项完整的web系统测试主要考虑的方面包括:功能测试、性能测试、可用性测试、客户兼容性测试和安全性测试

1 功能测试

功能测试的测试目的主要是验证系统的各项功能是否按照需求运行, 在测试过程中由系统需求说明书提炼测试计划, 进一步撰写功能测试用例, 根据测试用例逐项进行测试, 以确定系统是否能够满足用户需求, web系统的功能测试主要包括表单测试、cookies测试、链接测试和与数据库相关的测试。

1) 链接测试:对于链接测试主要验证所有的页面是否有准确的链接指向, 另外要确保系统中所有的链接能够找到对应的网页, 此外由于开发版本的升级和更正, 系统通常会出现孤页的情况, 浪费资源、占用空间, 因此有必要测试是否有孤页存在, 并及时将孤页进行处理。

2) 表单测试:作为动态网站的重点测试内容, 由于用户大部分数据从表单提交, 因此要针对用户提交数据的完整性、有效性和准确性进行验证, 避免提交到服务器的信息出现无效和垃圾数据, 为了避免用户输入错误, 有些系统使用了默认值和默认选项, 那么就要对其进行默认值的正确性进行验证, 另外如果用户输入无效数据, 系统应该能够及时针对错误的输入进行详细的说明和操作引导。

3) cookies测试:为了便于用户二次登录, 保存用户的操作信息, 很多Web应用系统都会默认发送Cookies信息, 对于这种系统的测试应该考虑Cookies的应用是否正常, 当刷新程序时对Cookies是否有影响, 并且要及时查看系统能否自动按照预定的时间将Cookies进行保存。

4) 数据库测试:对于数据测试, 一方面从表单进行, 另一方面要从数据库中数据的一致性和输出正确性进行测试。由于页面设计或用户输入错误导致的表单信息提交不正确, 通常会导致数据一致性错误;当网络的速度异常或程序算法有缺陷是会出现输出结果错误的情况, 在进行数据库设计时应该考虑到这两点, 测试时可分别进行。

2 性能测试

Web性能测试是确定影响web服务器性能的关键因素, 因此需要针对性进行分析和改进。所谓性能测试就是对系统的各项性能指标例如内存占有率, CPU使用率等进行测试, 通常要使用自动化测试工具来完成, 在测试时通过设置虚拟用户和虚拟的操作环境设定各种正常和异常的负载条件来获取数据, 并进行分析。性能测试主要包括负载测试、压力测试和链接速度测试等:

1) 链接速度测试:确定系统的响应时间是否在用户需求满足的范围内, 通常系统的响应时间通常保持在3 s左右为宜。

2) 负载测试:根据需求, 确定系统是否满足同一时间规定的用户数量能在线正常操作, 如果用户量超出范围是否会出现服务器反馈异常, 对用户的页面请求能否处理等。

3) 压力测试:与负载测试不同, 压力测试主要验证系统的极限运行能力和故障恢复能力, 通常使用自动化测试工具对系统进行施压, 包括用户访问量的超额或系统配置 (内存、CPU) 的降低, 在压力情况下确认系统是否会崩溃, 何时会崩溃。

3 可用性测试

由于软件产品越来越重视用户体验, 易懂易用的界面操作能够吸引更多的用户, 可用性测试也备受关注。测试时通常会邀请一些特征用户群对产品进行体验使用, 测试人员获取用户对导航栏、图形、内容以及整体界面的反馈, 以进一步提升用户满意度

导航测试主要考虑系统导航是否有效直观, 主页是否能够将系统主体部分进行显示, 以及是否能够提供例如搜索引擎站点地图以及帮助信息;图形测试主要考虑页面风格是否统一, 避免将图片杂乱无章的摆放在页面, 为了满足用户的感官需求, 也要对图片的大小、摆放位置;字体大小、颜色和页面元素整体色调搭配进行测试;根据客户群体的喜好针对页面结构设计进行测试, 为了更好满足用户需求可以发布测试版征求用户的意见来改善。

4 客户端兼容性测试

浏览器的兼容性主要包括网页兼容性和网站兼容性, 当同一个网页在不同浏览器显示不同时, 就出现了兼容性问题, 兼容性测试主要针对设计的程序与硬件和浏览器的匹配, web应用程序的兼容性测试包括平台测试和浏览器测试。

1) 平台测试:目前PC机的操作平台五花八门, 主流的操作系统包括Windows、Unix、Macintosh、Linux等。由于系统无法确定用户使用哪种操作环境, 所以在发布前要在各种系统下进行运行, 来完成兼容性的测试。

2) 浏览器测试:浏览器产品多种多样, 层出不穷, 不用的浏览器支持不同的HTML规格, 对Java的设置和对安全性的支持也有所不同, 为了避免用户操作故障, 必须在不同的浏览器产品和版本上进行测试。

5 安全性测试

在对Web应用所执行的测试中, 安全性测试极为重要。Web应用系统的安全性测试区域主要有:

1) 用户注册及登录的安全测试:主要测试用户是否可以跨越登录直接浏览页面, 用户密码是否能够复制粘贴, 是否在地址栏中显示用户敏感信息, 用户密码大小写是否敏感, 以及错误输入的限制等。

2) Web应用系统是否有超时的限制, 当用户在一定的时间没有刷新页面, 是否需要重新登录才可以操作, 是否允许重复登录等。

6 结语

上一篇:合伙经营宏达摩托车修理行的协议书下一篇:关于重庆旅游的作文