主喷WEB测试

在Web工程过程当中,基于Web系统的测试、确认和验收是一项重要而富有挑战性的工做。基于Web的系统测试与传统的软件测试不一样,它不但须要检查和验证是否按照设计的要求运行,并且还要测试系统在不一样用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。然而,Internet和Web媒体的不可预见性使测试基于Web的系统变得困难。所以,咱们必须为测试和评估复杂的基于Web的系统研究新的方法和技术。
本文将 web 测试分为 6 个部分:

1.     功能测试

2.       性能测试(包括负载/压力测试)

3.       用户界面测试

4.       兼容性测试
5.       安全测试
6.       接口测试 

本文的目的是覆盖 web 测试的各个方面,未就某一主题进行深刻说明。
1 功能测试
1.1 连接测试
连接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。连接测试可分为三个方面。首先,测试全部连接是否按指示的那样确实连接到了该连接的页面;其次,测试所连接的页面是否存在;最后,保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有连接指向该页面,只有知道正确的URL地址才能访问。 
连接测试能够自动进行,如今已经有许多工具能够采用。连接测试必须在集成测试阶段完成,也就是说,在整个Web应用系统的全部页面开发完成以后进行连接测试。
采起措施:采用自动检测网站连接的软件来进行。
推荐软件:
Xenu Link Sleuth 免费 绿色免安装软件
HTML Link Validator 共享(30天试用)
1.2 表单测试 
当用户经过表单提交信息的时候,都但愿表单能正常工做。
如 果使用表单来进行在线注册,要确保提交按钮能正常工做,当注册完成后应返回注册成功的消息。若是使用表单收集配送信息,应确保程序可以正确处理这些数据, 最后能让顾客能让客户收到包裹。要测试这些程序,须要验证服务器能正确保存这些数据,并且后台运行的程序能正确解释和使用这些信息。
当 用户使用表单进行用户注册、登录、信息提交等操做时,咱们必须测试提交操做的完整性,以校验提交给服务器的信息的正确性。例如:用户填写的出生日期与职业 是否恰当,填写的所属省份与所在城市是否匹配等。若是使用了默认值,还要检验默认值的正确性。若是表单只能接受指定的某些值,则也要进行测试。例如:只能 接受某些字符,测试时能够跳过这些字符,看系统是否会报错。
1.3 数据校验
若是系根据业务规则须要对用户输入进行校验,须要保证这些校验功能正常工做。例如,省份的字段能够用一个有效列表进行校验。在这种状况下,须要验证列表完整并且程序正确调用了该列表(例如在列表中添加一个测试值,肯定系统可以接受这个测试值)。
在测试表单时,该项测试和表单测试可能会有一些重复。
1.2和1.3的采起措施:第一个完整的版本采用手动检查,同时造成WinRunner(QTP)脚本;回归测试以及升级版本主要靠WinRunner(QTP)自动回放测试。
1.4 cookies测试
Cookies一般用来存储用户信息和用户在某应用系统的操做,当一个用户使用Cookies访问了某一个应用系统时,Web服务器将发送关于用户的信息,把该信息以Cookies的形式存储在客户端计算机上,这可用来建立动态和自定义页面或者存储登录等信息。 
  若是Web应用系统使用了Cookies,就必须检查Cookies是否能正常工做。测试的内容可包括Cookies是否起做用,是否按预约的时间进行保存,刷新对Cookies有什么影响等。若是在 cookies 中保存了注册信息,请确认该 cookie可以正常工做并且已对这些信息已经加密。若是使用 cookie 来统计次数,须要验证次数累计正确。
采起措施:
     1 采用黑盒测试:采用上面提到的方法进行测试
2 采用查看cookies的软件进行(初步的想法)
能够选择采用的软件
IECookiesView v1.50 
Cookies Manager v1.1
1.5 数据库测试
在Web应用技术中,数据库起着重要的做用,数据库为Web应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。在Web应用中,最经常使用的数据库类型是关系型数据库,可使用SQL对信息进行处理。
在使用了数据库的Web应用系统中,通常状况下,可能发生两种错误,分别是数据一致性错误和输出错误。数据一致性错误主要是因为用户提交的表单信息不正确而形成的,而输出错误主要是因为网络速度或程序设计问题等引发的,针对这两种状况,可分别进行测试。
采起措施:暂时没有更好的测试方法
     考虑结合到1.2和1.3的测试中
1.6 应用程序特定的功能需求
最重要的是,测试人员须要对应用程序特定的功能需求进行验证。尝试用户可能进行的全部操做:下订单、更改订单、取消订单、核对订单状态、在货物发送以前更改送货信息、在线支付等等。这是用户之因此使用网站的缘由,必定要确认网站能像广告宣传的那样神奇。
采起措施:深入理解需求说明文档
1.7 设计语言测试 
Web设计语言版本的差别能够引发客户端或服务器端严重的问题,例如使用哪一种版本的HTML等。当在分布式环境中开发时,开发人员都不在一块儿,这个问题就显得尤其重要。除了HTML的版本问题外,不一样的脚本语言,例如Java、JavaScript、 ActiveX、VBScript或Perl等也要进行验证。
暂时没有方法测试,能够多参考一点讨论组内的更新信息

2 性能测试 
2.1 链接速度测试
用户链接到Web应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽带上网。当下载一个程序时,用户能够等较长的时间,但若是仅仅访问一个页面就不会这样。若是Web系统响应时间太长(例如超过5秒钟),用户就会因没有耐心等待而离开。 
另外,有些页面有超时的限制,若是响应速度太慢,用户可能还没来得及浏览内容,就须要从新登录了。并且,链接速度太慢,还可能引发数据丢失,使用户得不到真实的页面。 
2.2 负载测试 
负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工做。负载级别能够是某个时刻同时访问Web系统的用户数量,也能够是在线数据处理的数量。例如:Web应用系统能容许多少个用户同时在线?若是超过了这个数量,会出现什么现象?Web应用系统可否处理大量用户对同一个页面的请求? 
2.3 压力测试
负载测试应该安排在Web系统发布之后,在实际的网络环境中进行测试。由于一个企业内部员工,特别是项目组人员老是有限的,而一个Web系统能同时处理的请求数量将远远超出这个限度,因此,只有放在Internet上,接受负载测试,其结果才是正确可信的。 
进行压力测试是指实际破坏一个Web应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么状况下会崩溃。***经常提供错误的数据负载,直到Web应用系统崩溃,接着当系统从新启动时得到存取权。
压力测试的区域包括表单、登录和其余信息传输页面等。
负载/压力测试应该关注什么
测试须要验证系统可否在同一时间响应大量的用户,在用户传送大量数据的时候可否响应,系统可否长时间运行。可访问性对用户来讲是极其重要的。若是用户获得“系统忙”的信息,他们可能放弃,并转向竞争对手。系统检测不只要使用户可以正常访问站点,在不少状况下,可能会有***试图经过发送大量数据包来***服务器。出于安全的缘由,测试人员应该知道当系统过载时,须要采起哪些措施,而不是简单地提高系统性能。
瞬间访问高峰
若是您的站点用于公布×××的抽奖结果,最好使系统在中奖号码公布后的一段时间内可以响应上百万的请求。负载测试工具可以模拟 X 个用户同时访问测试站点。
每一个用户传送大量数据
网上书店的多数用户可能只订购 1-5 书,可是大学书店可能会订购 5000 本有关心理学介绍的课本? 或者一个祖母为她的 50 个儿孙购买圣诞礼物(固然每一个孩子都有本身的邮件地址) 系统能处理单个用户的大量数据吗?
长时间的使用
若是站点用于处理鲜花订单,那么至少但愿它在母亲节前的一周内能持续运行。若是站点提供基于 web 的 email 服务,那么点最好能持续运行几个月,甚至几年。可能须要使用自动测试工具来完成这种类型的测试,由于很难经过手工完成这些测试。你能够想象组织100 我的同时点击某个站点。可是同时组织 100000 我的呢。一般,测试工具在第二次使用的时候,它创造的效益,就足以支付成本。并且,测试工具安装完成以后,再次使用的时候,只要点击几下。
采起措施:采用测试工具WAS、ACT协助进行测试

3 用户界面测试 
3.1 导航测试 
导航描述了用户在一个页面内操做的方式,在不一样的用户接口控制之间,例如按钮、对话框、列表和窗口等;或在不一样的链接页面之间。经过考虑下列问题,能够决定一个Web应用系统是否易于导航:导航是否直观?Web系统的主要部分是否可经过主页存取?Web系统是否须要站点地图、搜索引擎或其余的导航帮助?
在一个页面上放太多的信息每每起到与预期相反的效果。Web应用系统的用户趋向于目的驱动,很快地扫描一个Web应用系统,看是否有知足本身须要的信息,若是没有,就会很快地离开。不多有用户愿意花时间去熟悉Web应用系统的结构,所以,Web应用系统导航帮助要尽量地准确。 
导航的另外一个重要方面是Web应用系统的页面结构、导航、菜单、链接的风格是否一致。确保用户凭直觉就知道Web应用系统里面是否还有内容,内容在什么地方。 
Web应用系统的层次一旦决定,就要着手测试用户导航功能,让最终用户参与这种测试,效果将更加明显。 
3.2 图形测试
在Web应用系统中,适当的图片和动画既能起到广告宣传的做用,又能起到美化页面的功能。一个Web应用系统的图形能够包括图片、动画、边框、颜色、字体、背景、按钮等。图形测试的内容有: 
(1)要确保图形有明确的用途,图片或动画不要胡乱地堆在一块儿,以避免浪费传输时间。Web应用系统的图片尺寸要尽可能地小,而且要能清楚地说明某件事情,通常都连接到某个具体的页面。
(2)验证全部页面字体的风格是否一致。
(3)背景颜色应该与字体颜色和前景颜色相搭配。
(4)图片的大小和质量也是一个很重要的因素,通常采用JPG或GIF压缩,最好能使图片的大小减少到 30k 如下
(5)最后,须要验证的是文字回绕是否正确。若是说明文字指向右边的图片,应该确保该图片出如今右边。不要由于使用图片而使窗口和段落排列古怪或者出现孤行。
一般来讲,使用少量或尽可能不使用背景是个不错的选择。若是您想用背景,那么最好使用单色的,和导航条一块儿放在页面的左边。另外,图案和图片可能会转移用户的注意力。
3.3内容测试 
内容测试用来检验Web应用系统提供信息的正确性、准确性和相关性。
信息的正确性是指信息是可靠的仍是误传的。例如,在商品价格列表中,错误的价格可能引发财政问题甚至致使法律纠纷;信息的准确性是指是否有语法或拼写错误。这种测试一般使用一些文字处理软件来进行,例如使用Microsoft Word的"拼音与语法检查"功能;信息的相关性是指是否在当前页面能够找到与当前浏览信息相关的信息列表或入口,也就是通常Web站点中的所谓"相关文章列表"。
对 于开发人员来讲,可能先有功能而后才对这个功能进行描述。你们坐在一块儿讨论一些新的功能,而后开始开发,在开发的时候,开发人员可能不注重文字表达,他们 添加文字可能只是为了对齐页面。不幸的是,这样出来的产品可能产生严重的误解。所以测试人员和公关部门一块儿检查内容的文字表达是否恰当。不然,公司可能陷 入麻烦之中,也可能引发法律方面的问题。测试人员应确保站点看起来更专业些。过度地使用粗体字、大字体和下划线可能会让用户感到不舒服。在进行用户可用性 方面的测试时,最好先请图形设计专家对站点进行评估。你可能不但愿看到一篇处处是黑体字的文章,因此相信您也但愿本身的站点能更专业一些。最后,须要肯定 是否列出了相关站点的连接。不少站点但愿用户将邮件发到一个特定的地址,或者从某个站点下载浏览器。可是若是用户没法点击这些地址,他们可能会以为很迷 惑。
3.4 表格测试 
须要验证表格是否设置正确。用户是否须要向右滚动页面才能看见产品的价格?把价格放在左边,而把产品细节放在右边是否更有效? 每一栏的宽度是否足够宽,表格里的文字是否都有折行?是否有由于某一格的内容太多,而将整行的内容拉长?
3.5 总体界面测试 
总体界面是指整个Web应用系统的页面结构设计,是给用户的一个总体感。例如:当用户浏览Web应用系统时是否感到温馨,是否凭直觉就知道要找的信息在什么地方?整个Web应用系统的设计风格是否一致? 
对总体界面的测试过程,实际上是一个对最终用户进行调查的过程。通常Web应用系统采起在主页上作一个调查问卷的形式,来获得最终用户的反馈信息。
对全部的用户界面测试来讲,都须要有外部人员(与Web应用系统开发没有联系或联系不多的人员)的参与,最好是最终用户的参与。
采起措施:手动测试,参与人员最好有外部人员

4 兼容性测试 
4.1 平台测试
市场上有不少不一样的操做系统类型,最多见的有Windows、Unix、Macintosh、Linux等。Web应用系统的最终用户究竟使用哪种操做系统,取决于用户系统的配置。这样,就可能会发生兼容性问题,同一个应用可能在某些操做系统下能正常运行,但在另外的操做系统下可能会运行失败。 
所以,在Web系统发布以前,须要在各类操做系统下对Web系统进行兼容性测试。 
4.2 浏览器测试 
浏览器是Web客户端最核心的构件,来自不一样厂商的浏览器对Java,、JavaScript、 ActiveX、 plug-ins或不一样的HTML规格有不一样的支持。例如,ActiveX是Microsoft的产品,是为Internet Explorer而设计的,JavaScript是Netscape的产品,Java是Sun的产品等等。另外,框架和层次结构风格在不一样的浏览器中也有不一样的显示,甚至根本不显示。不一样的浏览器对安全性和Java的设置也不同。
测试浏览器兼容性的一个方法是建立一个兼容性矩阵。在这个矩阵中,测试不一样厂商、不一样版本的浏览器对某些构件和设置的适应性。 
4.3 分辨率测试
页面版式在 640x400、600x800 或 1024x768 的分辨率模式下是否显示正常? 字体是否过小以致于没法浏览? 或者是太大? 文本和图片是否对齐?
4.4 Modem/链接速率
是否有这种状况,用户使用 28.8 modem下载一个页面须要 10 分钟,但测试人员在测试的时候使用的是 T1 专线? 用户在下载文章或演示的时候,可能会等待比较长的时间,但却不会耐心等待首页的出现。最后,须要确认图片不会太大。
4.5 打印机
用 户可能会将网页打印下来。所以网也在设计的时候要考虑到打印问题,注意节约纸张和油墨。有很多用户喜欢阅读而不是盯着屏幕,所以须要验证网页打印是否正 常。有时在屏幕上显示的图片和文本的对齐方式可能与打印出来的东西不同。测试人员至少须要验证订单确认页面打印是正常的。
4.6 组合测试
最后须要进行组合测试。600x800 的分辨率在 MAC 机上可能不错,可是在 IBM 兼容机上却很难看。在 IBM 机器上使用 Netscape 能正常显示,但却没法使用 Lynx 来浏览。若是是内部使用的 web 站点,测试可能会轻松一些。若是公司指定使用某个类型的浏览器,那么只需在该浏览器上进行测试。若是全部的人都使用 T1 专线,可能不须要测试下载施加。(但须要注意的是,可能会有员工从家里拨号进入系统) 有些内部应用程序,开发部门可能在系统需求中声明不支持某些系统而只支持一些那些已设置的系统。可是,理想的状况是,系统能在全部机器上运行,这样就不会限制未来的发展和变更。
采起措施:根据实际状况,采起等价划分的方法,列出兼容性矩阵

5 安全测试
即便站点不接受信用卡支付,安全问题也是很是重要的。Web 站点收集的用户资料只能在公司内部使用。若是用户信息被***泄露,客户在进行交易时,就不会有安全感。
5.1 目录设置
Web 安全的第一步就是正确设置目录。每一个目录下应该有 index.html 或 main.html 页面,这样就不会显示该目录下的全部内容。我服务的一个公司没有执行这条规则。我选中一幅图片,单击鼠标右键,找到该图片所在的路径"…com/objects/p_w_picpaths"。而后在浏览器地址栏中手工输入该路径,发现该站点全部图片的列表。这可能没什么关系。我进入下一级目录 "…com/objects" ,点击 jackpot。 在该目录下有不少资料,其中引发我注意的是已过时页面。该公司每月都要更改产品价格,而且保存过时页面。我翻看了一下这些记录,就能够估计他们的边际利 润以及他们为了争取一个合同还有多大的降价空间。若是某个客户在谈判以前查看了这些信息,他们在谈判桌上确定处于上风。
5.2 SSL
不少站点使用 SSL 进行安全传送。你知道你进入一个 SSL 站点是由于浏览器出现了警告消息,并且在地址栏中的 HTTP 变成 HTTPS。若是开发部门使用了SSL,测试人员须要肯定是否有相应的替代页面(适用于3.0 如下版本的浏览器,这些浏览器不支持SSL。当用户进入或离开安全站点的时候,请确认有相应的提示信息。是否有链接时间限制?超过限制时间后出现什么状况?
5.3 登陆
有些站点须要用户进行登陆,以验证他们的身份。这样对用户是方便的,他们不须要每次都输入我的资料。你须要验证系统阻止非法的用户名/口令登陆,而可以经过有效登陆。用户登陆是否有次数限制? 是否限制从某些 IP 地址登陆? 若是容许登陆失败的次数为3,你在第三次登陆的时候输入正确的用户名和口令,能经过验证吗? 口令选择有规则限制吗?  是否能够不登录而直接浏览某个页面?
Web应用系统是否有超时的限制,也就是说,用户登录后在必定时间内(例如15分钟)没有点击任何页面,是否须要从新登录才能正常使用。
5.4 日志文件
在后台,要注意验证服务器日志工做正常。日志是否记全部的事务处理? 是否记录失败的注册企图? 是否记录被盗信用卡的使用? 是否在每次事务完成的时候都进行保存? 记录IP 地址吗? 记录用户名吗?
5.5 脚本语言
脚本语言是常见的安全隐患。每种语言的细节有所不一样。有些脚本容许访问根目录。其余只容许访问邮件服务器,可是经验丰富的***能够将服务器用户名和口令发送给他们本身。找出站点使用了哪些脚本语言,并研究该语言的缺陷。还要须要测试没有通过受权,就不能在服务器端放置和编辑脚本的问题。最好的办法是订阅一个讨论站点使用的脚本语言安全性的新闻组。 

6 接口测试
在不少状况下,web 站点不是孤立。Web 站点可能会与外部服务器通信,请求数据、验证数据或提交订单。
6.1服务器接口
第一个须要测试的接口是浏览器与服务器的接口。测试人员提交事务,而后查看服务器记录,并验证在浏览器上看到的正好是服务器上发生的。测试人员还能够查询数据库,确认事务数据已正确保存。
这种测试能够归到功能测试中的表单测试和数据校验测试中
6.2 外部接口
有些 web 系统有外部接口。例如,网上商店可能要实时验证信用卡数据以减小欺诈行为的发生。测试的时候,要使用 web 接口发送一些事务数据,分别对有效信用卡、无效信用卡和被盗信用卡进行验证。若是商店只使用 Visa 卡和 Mastercard 卡, 能够尝试使用 Discover 卡的数据。(简单的客户端脚本可以在提交事务以前对代码进行识别,例如 3 表示 American Express,4 表示 Visa,5 表示 Mastercard,6 表明Discover。)一般,测试人员须要确认软件可以处理外部服务器返回的全部可能的消息。
这种状况在远程抄表中可能会体现到
6.3 错误处理
最容易被测试人员忽略的地方是接口错误处理。一般咱们试图确认系统可以处理全部错误,但却没法预期系统全部可能的错误。尝试在处理过程当中中断事务,看看会发生什么状况?订单是否完成?尝试中断用户到服务器的网络链接。尝试中断 web 服务器到信用卡验证服务器的链接。在这些状况下,系统可否正确处理这些错误?是否已对信用卡进行收费?若是用户本身中断事务处理,在订单已保存而用户没有返回网站确认的时候,须要由客户表明致电用户进行订单确认。
采起措施:在理解需求的基础上,充分发挥想象力,尽可能比较全面的列出各类异常状况。

7 结论
   不管你在测试 internet、intranet 或者是 extranet 应用程序,web 测试相对于非 web 测试来讲都是更具挑战性的工做。用户对 web 页面质量有很高的指望。在不少状况下,就像业务功能同样,页面用于维护和发展公共关系,因此第一印象很是重要。
 html

相关文章
相关标签/搜索