测试技术-Web应用测试

**

Web应用测试

**
1 Web系统测试概述
Web工程作为一门新兴的学科,提倡使用一个过程和系统的方法来开发高质量的基于Web系统。
1.1 Web系统的构成
Web工程,它使用合理的、科学的工程和管理原则,用严密的和系统的方法来开发、发布和维护基于web的系统。这里谈到的web系统是指以Browser/Server的访问方式为主,包含客户端浏览器、web应用服务器、数据库服务器的软件系统。首先从技术实现上来讲,一般的B/S结构都是多层构架,有界面层、业务逻辑层、数据层。从结构上来讲,都有客户端部分、传输网络部分和服务器端部分。
2 web应用设计测试
依据web应用系统的架构,把对web设计的测试分为总体架构设计的测试、客户端设计的测试、服务器端设计的测试三个部分。
2.1 总体架构设计的测试
2.1.1 采用瘦客户端或胖客户端是否适合需求
多数web新闻站点、门户网站及用于信息发布的web系统采用这种模式。这种模式适合于客户端没有特殊要求、用户量庞大并且分散的web应用系统。胖客户端既运行应用程序的用户界面,又执行部分业务逻辑。银行客户系统、网络游戏、网上办公系统等web应用系统这种模式。适合于对安全性要求较高、交互操作频繁或业务逻辑复杂的web应用系统。
测试的任务就是验证设计中采用的模式是否符合系统需求。
2.1.2 确定web架构的组成部分是否满足需求
服务器端可能是简单的web应用服务器,也可能是中间件、数据库和安全服务器等组成的服务器群。在确定服务器端的组成部分时,需要考虑到成本、功能、安全性、容量要求、传输实时性等多个方面。对web架构设计的测试除了要验证web架构的组成部分是否满足上述需求外,还要检查各组成部分是否有搭配不兼容的地方。
2.1.3 服务器的配置及分布是否满足需求
服务器软件可能分布在若干个物理服务器单元上,重点验证服务器端的配置和分布是否满足用户的功能、性能、成本等需求。
2.2 客户端设计的测试
客户端设计主要是面向用户的,包括功能设置、信息组织结构设计和页面设计。对客户端设计的测试也将从这三方面进行。
2.2.1 功能设置的测试
(1)信息服务
(2)办公自动化
(3)Internet支持
2.2.2 信息组织结构设计的测试
信息组织结构设计主要有线性结构设计、分层结构设计和非线性结构设计三种。
2.2.3 页面设计的测试
对页面设计的测试可从以下几个方面进行:1)页面的一致性如何;2)在每个页面上是否设计友好的用户界面和直观的导航系统;3)是否考虑多种浏览器的需要;4)是否建立了页面文件的命名体系;5)是否充分考虑了合适的页面布局技术,如层叠式表、表格和结构等。
2.3 服务器端的设计的测试
2.3.1 容量规划的测试
大多数进程被划分为两类:输入输出限制(I/O-bound)和CPU限制(CPU-bound)用于静态HTML的常常是I/O-bound,从硬盘检索文件的速度受到速率的限制,同时文件从网络接口移出时受到该速度的限制。动态HTML它常常是CPU-bound的,也就是说它用于产生页面的时间要比将页面移出网络接口的时间要长。依赖于数据库查询的动态内容常常受到数据库速度的限制,数据库又通常是I/O-bound的,因为它需要从硬盘上检索数据。
进行容量规划是非常必要和重要的,它和web应用系统的性能是息息相关的。对容量规划的测试也非常必要,评价容量规划设计的关键在于:将所要求的延迟和带宽与该体系结构中每一个环节的定额容量作一比较,每个组成部分都必须满足这些要求,其中还必须要考虑到系统各部分之间可能产生的内耗,以及对该体系的生命周期可能增加的负载。对容量规划的测试方法是,检查容量规划是否满足用户的需求,可以从以下几个方面进行检查。估算点击率是否满足需求。
点击率就是每秒HTTP的请求数,也叫每秒被访问的次数。对点击率的估算采用8020原理和UCML方法。1)估算延迟的流量是否满足需求;2)估算web应用系统所需服务器的资源消耗。服务器的内存是需要重点考虑,经常是性能瓶颈所在。当内存不足时,有的进程会转移到硬盘上去运行,造成性能急剧下降。估算所需的内存需要考虑几个方面:操作系统所需内存、web高速缓存所需内存、CGI所需内存等。
2.3.2 安全系统设计的测试
安全是贯穿web应用系统设计、运行、管理等全过程的一个非常重要的因素,需要从多方面考虑,才能制定出一个较为完善的安全策略,保证web应用安全运行。一般从以下几个方面进行审核和评估:
(1)常识性安全策略;
(2)使用加密技术;
(3)构造防火墙;
(4)构建网络防毒体系。
2.3.3 数据库设计的测试
数据库测试是依据数据库设计规范对软件系统的数据库结构、数据表及其之间的数据调用关系进行的测试。
2.4 Web应用开发测试
2.4.1 代码测试
对web应用系统的代码测试主要包括以下几个方面:
1)源代码规则分析。主要方法是使用基于规则检查的工具,读取输入的源代码,然后将源代码与编码标准或语言规则相对照,以找出存在于两者之间的不一致性,或者存在于源代码当中潜在错误。
2)链接测试。链接测试可分为三个方面。首先,测试所有链接是否按指示的那样确实链接到该链接的页面;其次,测试所链接的页面是否存在;最后,保证web应用系统上没有孤立的页面。
3)框架测试。主要检查以下几个方面:是否可随浏览窗口的变化自动调整大小;在当前窗口不能完全显示内容时是否提供滚动条功能;能否在正确的目标框架中打开新页面。
4)表格测试。主要检查表格能否随浏览器窗口的变化或页面的变化自动调整大小。
5)图形测试(Graphics)
2.4.2 组件测试
所谓web组件是指这样一个软件单元:它被用于web系统中,通常嵌入页面中,有些组件为完成一个特定的功能而存在于web页面中或服务器上,用户的使用请求可以通过浏览器的解释传递给组件,组件执行的结果经浏览器传递给用户。
1)表单(Forms)测试
2)Cookies测试。Cookies通常用来存储用户信息和用户在某应用系统的操作,当一个用户使用Cookies访问了某一个应用系统时,Web服务器将发送关于用户的信息,把该信息以Cookies的形式存储在客户端计算机上,这可用来创建动态和自定义页面或存储登录等信息。
3)脚本测试
4)CGI测试
5)ASP测试。ASP实际上一种含有脚本命令的文本文件,在测试ASP时需要注意以下几个方面:注意浏览器的缓存问题。缓存设置有时会影响到某些ASP的执行。正确设置超时。超时会导致一些ASP页面失效,从而不能正确执行。一些ASP的性能测试非常必要,如非常频繁的数据库查询等。
6)ActiveX控件测试。 ActiveX控件是客户端技术,实际上类似于win32程序中的OCX控件,也是一种很常用的控件,在很多web系统设计中都会用到。注意以下几个方面:ActiveX只能用于Windows客户端;ActiveX应用是编译后的应用,在用户浏览时需要下载到客户端运行,客户端的安全设置可能会影响到ActiveX控制的使用。由于用户有权拒绝使用ActiveX控件,若控件没有下载,web系统的功能受影响的程度。要专门进行ActiveX控件的安装与测试,考察安装与卸载过程是否能顺利进行。 测试之前需要确认测试环境中没有旧版本的控件,若有,一定要卸载后进行重新安装测试。
2.5 Web应用运行测试
考虑到Web应用本身的特点,其功能测试还要注意以下几个方面。1)客户端的选择。2)客户端浏览器的配置。3)客户端显示设置。
内容测试。
Web应用功能测试的自动化技术,一个是web应用链接质量保证技术,另一个是Web应用功能测试技术。
1)Web应用链接质量保证技术。要保证每个链接的质量,需要做好三件事情:(1)该链接将用户带到它所说明的地方;(2)被链接页面是存在的;(3)保证Web应用系统上没有孤立的页面。
2)Web应用功能测试技术
主要步骤包括:创建测试脚本、插入检查点、运行测试以及分析结果。
2.6 易用性测试
要评估一个Web系统是否易用,首先要分析最终用户的情况。用户的情况决定了Web系统在易用性方面需要花费多少时间,以及易用性设计的方向。从用户角度讲,我们主要考虑以下几个方面的情况。
1)用户的计算机使用经验;
2)用户对浏览器以及Web的使用经验;
3)用户的业务专业知识。
确定了最终用户使用的基础情况,我们就可以有针对性地测试一个web系统的易用性了。我们把Web系统的易用性测试分为界面测试、辅助功能测试以及图形测试三个方面进行测试。
2.6.1 界面测试;
在开始进行界面测试之前,我们需要重点调研两个问题:
1)Web应用系统的最终用户群是谁。
2)Web应用界面的设计策略是什么。
(1)页面中各元素布局的协调性;
(2)不同页面风格的统一性;
(3)用户在界面中操作的便利性;
(4)界面动态操作测试;主要测试方面: 1)屏幕分辨率设置的影响; 2)浏览窗口最大化/最小化的影响; 3)选定目标元素的置中与缩放。
2.6.2 辅助功能测试;
(1)使用说明。
(2)导航。
(3)站点地图。
(4)帮助。
2.6.3 图形测试
2.7 负载压力测试
Web系统的性能包含哪些方面呢?1)客户端向服务器发出一个请求;2)服务器分配请求并进行处理。3)服务器把处理的结果反馈给客户端。4)客户端对结果进行分析,显示出来或进一步执行。
负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web系统的用户数量,也可以是在线处理的数据量。负载测试应该安排在Web系统发布之后,在实际的网络环境中进行测试。
一般压力测试包含如下步骤:1)确定交易执行响应时间。2)估计Web系统能够承受的最大并发用户数量。3)模拟用户请求,以一个比较小的负载开始,逐渐增加模拟用户的数量,直到系统不能承受负载为止。4)如果负载没有达到需求,那么应该优化这个Web程序。
2.8 客户端配置与兼容性测试
面向用户的配置测试与兼容性测试可分为三个方面:
(1)浏览器的配置测试;
(2)平台兼容性测试;
(3)浏览器兼容性测试。
2.9 安全性测试
一个完整的Web安全体系测试可以从部署与基础结构、输入验证、身份验证、授权、配置管理、敏感数据、会话管理、加密、参数操作、异常管理、审核和日志记录等几个方面入手。
2.9.1 安全体系测试
(1)部署与基础结构
网络是否提供了安全的通信。
部署拓扑结构是否包括内部防火墙。
部署拓扑结构中是否包括远程应用程序服务器。
基础结构安全性要求的限制是什么。
目标环境支持怎样的信任级别。
(2)输入验证
如何验证输入
测试时应考虑下列问题,帮助识别潜在的漏洞。
是否清楚入口点;
是否清楚信任边界;
是否验证Web页输入
是否对传递到组件或Web服务的参数进行验证。
是否验证从数据库中检索的数据。
是否将方法集中起来。
是否依赖客户端的验证。
如何处理输入
1、应用程序是否易规范化问题的影响。
2、应用程序是否易受SQL注入攻击。
3、应用程序是否易受XSS攻击。
测试技术-Web应用测试_第1张图片
(3)身份验证
测试中需要考虑下列问题,确定在应用程序进行身份验证 的方法中的潜在漏洞。
是否区分公共访问和受限访问。
1、设计是否要求特权最少的账户。
2、应用程序是否要维护服务账户凭据。
如何验证调用者身份。
如何验证数据库的身份。
是否强制使用强账户管理措施。
如何向最终用户授权。
如何在数据库中授权应用程序。
如何将访问限定于系统级资源。
是否支持远程管理。
是否保证配置存储的安全。
是否隔离管理员特权。
测试中要考虑下列问题,帮助验证应用程序处理敏感数据的方法。
是否存储机密信息。
如何存储敏感数据。
是否在网络中传递敏感数据。
是否记录敏感数据。
测试技术-Web应用测试_第2张图片
(4)授权
测试技术-Web应用测试_第3张图片
(5)配置管理
测试技术-Web应用测试_第4张图片
(6)敏感数据
测试技术-Web应用测试_第5张图片
(7)会话管理
测试技术-Web应用测试_第6张图片
(8)加密
测试技术-Web应用测试_第7张图片
(9)参数操作
测试技术-Web应用测试_第8张图片
(10)异常管理
在这里插入图片描述
(11)审核和日志记录
测试技术-Web应用测试_第9张图片
2.9.2 应用及传输安全
Web应用系统的安全性从使用的角度可分为应用级的安全与传输级的安全,安全性测试也可从这两个方面入手。
应用级的安全测试的主要目的是查找Web应用系统自身程序设计中存在的安全隐患,主要测试区域如下:
1)注册与登录;
2)在线超时;
3)操作留痕;
4)备份与恢复。
传输级的安全测试是考虑到Web系统的传输的特殊性,重点测试数据经客户端传送到服务器可能存在的安全漏洞,以及服务器防范非法访问的能力。一般测试项目包括以下几个方面:
1)HTTPS和SSL测试;
2)服务器端的脚本漏洞检验;
3)防火墙测试。

你可能感兴趣的:(测试技术)