一、站点测试
站点测试囊括许多领域,包括配置测试、兼容性测试、易用性测试、文档测试、安全性测试,并且假如站点是面向全球范围的阅读者,还包括本地化测试。当然,黑盒、白盒、静态、动态测试都是要用上的。
要关注:
(1)网页的哪些基本部分须要测试
(2)在网页测试中要运用哪些基本的白盒测试技能和黑盒测试技能
(3)如何 运用配置测试和兼容性测试
(4)为什么易用性测试是网页的主要疑问
(5)如何 运用工具协助站点测试
1、网页基础
基本来说,网页就是由文字、图片、声音、视频和超级链接组成的文档。
在这些程序中,站点用户可以通过单击具有超级链接的文字和图片在网页间阅读,搜索单词或者短语,查看找到的信息。
网页的特征:
(1)不同大小、字体和颜色的文字;
(2)图片和照片;
(3)超级链接文字和图片;
(4)不断滚动的广告;
(5)下拉式文本选择框;
(6)用户输入数据的区域。
使站点更加复杂的特征如下:
(1)自定义的布局,允许用户修改信息出现在屏幕上的位置;
(2)自定义的内容,允许用户选择想看的新闻和信息;
(3)动态下拉式选择框;
(4)动态变化的文字;
(5)取决于屏幕分辨率的动态布局和可选信息;
(6)与不同网络阅读器、阅读器版本,以及硬件和软件平台的兼容性;
(7)大量增强网页易用性的潜藏格式、标记和嵌入信息。
安全电子商务站点更为复杂。
2、黑盒测试
最容易的测试起步是把网页或者整个站点当做是一个黑盒子。
留心:在测试站点时,首先应该建立状态表,把每个网页当做不同的状态,超级链接当做状态之间的连接线。完整的状态图有利于对整个任何更好地执行 审视。
(1)文本
网页文本应该当做文档对待,并依据文档测试的要领执行 测试。
检查核实读者的水平、术语、内容以及题目素材、准确度——特别是可能过期的信息,经常不断地检查拼写。
留心:不要依赖拼写检查工具来做,尤其是用在网页文本内容的检查上。
拼写检查工具可能只检查常规文本,但不检查包含在图片、滚动块、表单等中的文字。用拼写检查工具执行完所谓的完全拼写检查之后,检查者可能认为检查很彻底,但事实上网页中仍然会有拼写不正确。
如果有电子邮件地址、电话号码或者邮政编码等联系信息,要检查能不能正确。
保证版权声明正确、日期无误。
测试每个网页能不能都有正确的标题,标题文本的正确性。
常常被忽视的一种文本是文字标签(ALT text),用以替代文字(ALTernate text)。当用户把鼠标光标移动到网页中的图片上时,可以看到弹出对图片语义信息的说明。
留心:并非所有的阅读器都支持显示文字标签。
通过大幅缩放阅读器窗口来检查文字布局疑问。
(2)超级链接
链接可以和文字或者图片拴在一起。每一个链接都要检查,确保它的正常跳转。
超级链接一定要明显,文字链接一般有下划线。
如果链接打开电子邮件信息,就填写内容并发送,要确保能够得到回应。
查找孤页,它是站点的一部分,但是不能通过超级链接访问,因为网页作者忘记把它挂接上。须要向站点设计人员索取网页清单,与自制的状态图执行 比较。
(3)图片
图片中可能出现的许多软件缺陷在易用性测试时被掩盖下来,但是运用 基本的黑盒测试要领可以检查一些明显的地点。图片的正确载入和显示的疑问。
如果网页中文本和图片交织在一起,要保证文字正确地环绕在图片周围。
载入网页时的性能如何 ?
(4)表单
表单是指网页中用于输入和选择信息的文本框、列表框和其它域。
域的大小能不能正确?能不能接受正确数据,拒绝不正确数据?
(5)对象和其它各种基本的功能
站点可能包含诸如单击计数器、滚动文本选择框、变换的广告和站内搜索等特征。
在计划站点测试时,要仔细验明每个网页上的所有特征,把每一个特征按照常规程序的功能对待,并运用 所学的标准测试技能分别执行 测试。
二、WebTesting-站点测试
web 测试分为 6 个部分:
用户界面测试
功能测试
接口测试
兼容性测试
负载/压力测试
安全测试
本文的目的是覆盖 web 测试的各个方面,未就某一主题进行深入说明。
用户界面
使用 Web 浏览器作为应用程序的前台的一个原因就是它易于使用。用户知道如何浏览一个构建良好
的网站。如果你注重这方面的测试,那么验证应用程序是否易于使用就非常重要了。很多人认为这是测
试中最不重要的部分,但是如果你想通过网站赚钱,最好使你的网站使用起来更加方便。
使用说明
应该确认你的站点有使用说明。即使你认为你的网站很简单,也可能有人在某些方面需要征实一下
。测试人员需要测试说明文档,本文章来自中国IT实验室http://softtest.chinaitlab.com/
验证说明是正确的。还可以根据说明进行操作,确认出现预期的结果。
站点地图和导航条
确认你测试的站点是否有地图。有些网络高手可以直接去自己要去的地方,而不必点击一大堆页面
。另外新用户在网站中可能会迷失方向。站点地图和/或导航条可以引导用户进行浏览。需要验证站点地
图是否正确。确认地图上的链接是否确实存。地图有没有包括站点上的所有链接。是否每个页面都有导
航条? 导航条是否一致? 每个页面的链接是否正常? 导航条是否直观?
内容
对于开发人员来说,可能先有功能然后才对这个功能进行描述。大家坐在一起讨论一些新的功能,
然后开始开发,在开发的时候,开发人员可能不注重文字表达,他们添加文字可能只是为了对齐页面。
不幸的是,这样出来的产品可能产生严重的误解。因此测试人员和公关部门一起检查内容的文字表达是
否恰当。否则,公司可能陷入麻烦之中,也可能引起法律方面的问题。测试人员应确保站点看起来更专
业些。过分地使用粗体字、大字体和下划线可能会让用户感到不舒服。在进行用户可用性方面的测试时
,最好先请图形设计专家对站点进行评估。你可能不希望看到一篇到处是黑体字的文章,所以相信您也
希望自己的站点能更专业一些。 最后,需要确定是否列出了相关站点的链接。很多站点希望用户将邮件
发到一个特定的地址,或者从某个站点下载浏览器。但是如果用户无法点击这些地址,他们可能会觉得
很迷惑。
颜色/背景
由于 web 日益流行,很多人把它看作图形设计作品。不幸的是,有些开发人员对新的背景颜色更感
兴趣,以至于忽略了这种背景颜色是否易于浏览。典型的站点是在紫色图片的背景上显示黄色的文本(如
果你没有见过这样的站点,请浏览一下 GeoCities 或 AOL 上的个人主页,有不少这样的)。这种页面显
得"非常高贵",但是看起来很费劲。通常来说,使用少许或尽量不使用背景是个不错的选择。如果您想
用背景,那么最好使用单色的,和导航条一起放在页面的左边。另外,图案和图片可能会转移用户的注
意力。
图片
无论作为屏幕的聚焦点或作为指引的小图标,一张图片都胜过千言万语。有时,告诉用户一个东西
的最好办法就是将它展示给用户。但是,带宽对客户端或服务器来说都是非常宝贵的,所以要注意节约
使用内存。是否所有的图片对所在的页面都是有价值的,或者它们只是浪费带宽? 使用其它的文件格式
(.GIF, .JPG) 是否能使图片的大小减小到 30k 以下? 通常来说,不要将大图片放在首页上,因为这样
可能会使用户放弃下载首页。如果用户可以很快看到首页,他可能会浏览站点,否则可能放弃。
表格
需要验证表格是否设置正确。用户是否需要向右滚动页面才能看见产品的价格?把价格放在左边,
而把产品细节放在右边是否更有效? 每一栏的宽度是否足够宽,表格里的文字是否都有折行?是否有因
为某一格的内容太多,而将整行的内容拉长?
回绕
最后,需要验证的是文字回绕是否正确。如果说明文字指向右边的图片,应该确保该图片出现在右
边。不要因为使用图片而使窗口和段落排列古怪或者出现孤行。
功能测试
Web 站点的功能是贵公司雇佣开发人员而不只是艺术家的原因。就是这一部分与服务器通讯并且最
终完成任务。
链接
链接是使用户从一个页面浏览到另一个页面的重要手段。对于每个链接,需要验证两件事情: 一是
该链接将用户带到它所说明的地方,另外就是被链接页面是存在的。这句话听起来有些问题,但是有很
多多站点的内部链接都是空的。这实在是无法忍受。
表单
当用户通过表单提交信息的时候,都希望表单能正常工作。如果使用表单来进行在线注册,要确保
提交按钮能正常工作,当注册完成后应返回注册成功的消息。如果使用表单收集配送信息,应确保程序
能够正确处理这些数据,最后能让顾客能让客户收到包裹。要测试这些程序,需要验证服务器能正确保
存这些数据,而且后台运行的程序能正确解释和使用这些信息。
数据校验
如果系根据业务规则需要对用户输入进行校验,需要保证这些校验功能正常工作。例如,省份的字
段可以用一个有效列表进行校验。在这种情况下,需要验证列表完整而且程序正确调用了该列表(例如在
列表中添加一个测试值,确定系统能够接受这个测试值)。
Cookies
很多用户喜欢甜食,但是开发人员喜欢 web cookie (小甜饼)。如果系统使用了cookie,测试人员
需要对它们进行检测。如果在 cookies 中保存了注册信息,请确认该 cookie能够正常工作而且已对这
些信息已经加密。如果使用 cookie 来统计次数,需要验证次数累计正确。
应用程序特定的功能需求
最重要的是,测试人员需要对应用程序特定的功能需求进行验证。尝试用户可能进行的所有操作:
下订单、更改订单、取消订单、核对订单状态、在货物发送之前更改送货信息、在线支付等等。这是用
户之所以使用网站的原因,一定要确认网站能像广告宣传的那样神奇。
接口测试
在很多情况下,web 站点不是孤立。Web 站点可能会与外部服务器通讯,请求数据、验证数据或提交订
单。
服务器接口
第一个需要测试的接口是浏览器与服务器的接口。测试人员提交事务,然后查看服务器记录,并验
证在浏览器上看到的正好是服务器上发生的。测试人员还可以查询数据库,确认事务数据已正确保存。
外部接口
有些 web 系统有外部接口。例如,网上商店可能要实时验证信用卡数据以减少欺诈行为的发生。测
试的时候,要使用 web 接口发送一些事务数据,分别对有效信用卡、无效信用卡和被盗信用卡进行验证
。如果商店只使用 Visa 卡和 Mastercard 卡, 可以尝试使用 Discover 卡的数据。(简单的客户端脚
本能够在提交事务之前对代码进行识别,例如 3 表示 American Express,4 表示 Visa,5 表示
Mastercard,6 代表Discover。)通常,测试人员需要确认软件能够处理外部服务器返回的所有可能的消
息。
错误处理
最容易被测试人员忽略的地方是接口错误处理。通常我们试图确认系统能够处理所有错误,但却无
法预期系统所有可能的错误。
尝试在处理过程中中断事务,看看会发生什么情况?订单是否完成?尝试
中断用户到服务器的网络连接。尝试中断 web 服务器到信用卡验证服务器的连接。在这些情况下,系统
能否正确处理这些错误?是否已对信用卡进行收费?如果用户自己中断事务处理,在订单已保存而用户
没有返回网站确认的时候,需要由客户代表致电用户进行订单确认。
兼容性测试
需要验证应用程序可以在用户使用的机器上运行。如果您用户是全球范围的,需要测试各种操作系统、浏览器、视频设置和 modem 速度。最后,还要尝试各种设置的组合。
操作系统
你的站点能否在 MAC 和IBM 兼容系统上浏览? 有些字体在某个系统上可能不存在,因此需要确认选择了备用字体。如果用户使用两种操作系统,请确认站点未使用只能在其中一种操作系统上运行的插件。
浏览器
站点能否使用 Netscape、Internet Explorer 或Lynx 进行浏览? 有些 HTML 命令或脚本只能在某些特定的浏览器上运行。请确认有图片的替代文字,因为可能会有用户使用文本浏览器。如果您使用 SSL 安全特性,则只需对 3.0 以上版本的浏览器进行验证,但是对于老版本的用户应该有相关的消息提示。
视频设置
页面版式在 640x400、600x800 或 1024x768 的分辨率模式下是否显示正常? 字体是否太小以至于无法浏览? 或者是太大? 文本和图片是否对齐?
Modem/连接速率
是否有这种情况,用户使用 28.8 modem下载一个页面需要 10 分钟,但测试人员在测试的时候使用的是 T1 专线? 用户在下载文章或演示的时候,可能会等待比较长的时间,但却不会耐心等待首页的出现。最后,需要确认图片不会太大。
打印机
用户可能会将网页打印下来。因此网也在设计的时候要考虑到打印问题,注意节约纸张和油墨。有不少用户喜欢阅读而不是盯着屏幕,因此需要验证网页打印是否正常。有时在屏幕上显示的图片和文本的对齐方式可能与打印出来的东西不一样。测试人员至少需要验证订单确认页面打印是正常的。
组合测试
最后需要进行组合测试。600x800 的分辨率在 MAC 机上可能不错,但是在 IBM 兼容机上却很难看。在 IBM 机器上使用 Netscape 能正常显示,但却无法使用 Lynx 来浏览。如果是内部使用的 web 站点,测试可能会轻松一些。如果公司指定使用某个类型的浏览器,那么只需在该浏览器上进行测试。如果所有的人都使用 T1 专线,可能不需要测试下载施加。(但需要注意的是,可能会有员工从家里拨号进入系统) 有些内部应用程序,开发部门可能在系统需求中声明不支持某些系统而只支持一些那些已设置的系统。但是,理想的情况是,系统能在所有机器上运行,这样就不会限制将来的发展和变动。
负载/压力测试
测试需要验证系统能否在同一时间响应大量的用户,在用户传送大量数据的时候能否响应,系统能否长时间运行。可访问性对用户来说是极其重要的。如果用户得到“系统忙”的信息,他们可能放弃,并转向竞争对手。系统检测不仅要使用户能够正常访问站点,在很多情况下,可能会有黑客试图通过发送大量数据包来攻击服务器。出于安全的原因,测试人员应该知道当系统过载时,需要采取哪些措施,而不是简单地提升系统性能。
瞬间访问高峰
如果您的站点用于公布彩票的抽奖结果,最好使系统在中奖号码公布后的一段时间内能够响应上百万的请求。负载测试工具能够模拟 X 个用户同时访问测试站点。
每个用户传送大量数据
网上书店的多数用户可能只订购 1-5 书,但是大学书店可能会订购 5000 本有关心理学介绍的课本? 或者一个祖母为她的 50 个儿孙购买圣诞礼物(当然每个孩子都有自己的邮件地址) 系统能处理单个用户的大量数据吗?
长时间的使用
如果站点用于处理鲜花订单,那么至少希望它在母亲节前的一周内能持续运行。如果站点提供基于 web 的 email 服务,那么点最好能持续运行几个月,甚至几年。可能需要使用自动测试工具来完成这种类型的测试,因为很难通过手工完成这些测试。你可以想象组织100 个人同时点击某个站点。但是同时组织 100000 个人呢。通常,测试工具在第二次使用的时候,它创造的效益,就足以支付成本。而且,测试工具安装完成之后,再次使用的时候,只要点击几下。
安全性测试
即使站点不接受信用卡支付,安全问题也是非常重要的。Web 站点收集的用户资料只能在公司内部使用。如果用户信息被黑客泄露,客户在进行交易时,就不会有安全感。
目录设置
Web 安全的第一步就是正确设置目录。每个目录下应该有 index.html 或 main.html 页面,这样就不会显示该目录下的所有内容。我服务的一个公司没有执行这条规则。我选中一幅图片,单击鼠标右键,找到该图片所在的路径"…com/objects/images"。然后在浏览器地址栏中手工输入该路径,发现该站点所有图片的列表。这可能没什么关系。我进入下一级目录 "…com/objects" ,点击 jackpot。在该目录下有很多资料,其中引起我注意的是已过期页面。该公司每个月都要更改产品价格,并且保存过期页面。我翻看了一下这些记录,就可以估计他们的边际利润以及他们为了争取一个合同还有多大的降价空间。如果某个客户在谈判之前查看了这些信息,他们在谈判桌上肯定处于上风。
SSL
很多站点使用 SSL 进行安全传送。你知道你进入一个 SSL 站点是因为浏览器出现了警告消息,而且在地址栏中的 HTTP 变成 HTTPS。如果开发部门使用了SSL,测试人员需要确定是否有相应的替代页面(适用于3.0 以下版本的浏览器,这些浏览器不支持SSL。当用户进入或离开安全站点的时候,请确认有相应的提示信息。是否有连接时间限制?超过限制时间后出现什么情况?
登录
有些站点需要用户进行登录,以验证他们的身份。这样对用户是方便的,他们不需要每次都输入个人资料。你需要验证系统阻止非法的用户名/口令登录,而能够通过有效登录。用户登录是否有次数限制? 是否限制从某些 IP 地址登录? 如果允许登录失败的次数为3,你在第三次登录的时候输入正确的用户名和口令,能通过验证吗? 口令选择有规则限制吗?
日志文件
在后台,要注意验证服务器日志工作正常。日志是否记所有的事务处理? 是否记录失败的注册企图? 是否记录被盗信用卡的使用? 是否在每次事务完成的时候都进行保存? 记录IP 地址吗? 记录用户名吗?
脚本语言
脚本语言是常见的安全隐患。每种语言的细节有所不同。有些脚本允许访问根目录。其他只允许访问邮件服务器,但是经验丰富的黑客可以将服务器用户名和口令发送给他们自己。找出站点使用了哪些脚本语言,并研究该语言的缺陷。最好的办法是订阅一个讨论站点使用的脚本语言安全性的新闻组。
结论
无论你在测试 internet、intranet 或者是 extranet 应用程序,web 测试相对于非 web 测试来说都是更具挑战性的工作。用户对 web 页面质量有很高的期望。在很多情况下,就像业务功能一样,页面用于维护和发展公共关系,所以第一印象非常重要。