一.概要
1 目的
本文档编写目的在于规范基于网站的系统测试,区别于传统的软件测试,本文对网站测试的流程与规范进行全面概述,以利于网站开发工作的质量和开发时间,帮助测试人员快速了解测试流程,进行测试活动。
2 适用范围
适用于所有基于WEB的网站测试的项目。
3 网站测试的简要说明
网站的开发与部署是为更多更广泛的用户提供信息服务,其针对性广、适用性强,故其性能要求与传统的软件不同,其系统的测试也与传统的软件测试不同。它不仅需要验证系统各个模块的功能是否与用户需求符合,还要测试系统在不同软硬件平台和不同的浏览器端的兼容性问题。还有用户的安全性和可用性测试。
Web网站的特点:网络集约型、内容驱动性、持续演化性、即时性、安全性、美观性。
二.基本流程
1.项目立项
项目立项阶段是用户与项目经理针对项目进行敲定,确定项目双方的职能及相关责任。在此过程中测试人员很多时候都不怎么会参与进来,其实测试经理或组长是可以以参与者的身份参与进来,了解项目的相关事宜。
2.需求分析阶段
需求分析阶段测试人员对业务关系进行了解,分析需求点。很多测试人员的测试工作都是从这一阶段开始。需求分析评审对项目需求分析的结果进行评审,评审团根据公司人员分配来定,一般包含用户、项目经理、开发人员、测试人员等,不要低于5人。
3.测试计划阶段
测试计划阶段:测试组长就要根据《用户需求手册》或《测试需求分析书》开始编写《测试计划》,其中包括人员,软件硬件资源,测试点,集成顺序,进度安排和风险识别等内容。评审团根据公司人员分配来定,一般应包含项目经理、测试人员等,不要低于5人。
4.测试设计阶段
此阶段要对测试工作提出测试方案,测试方案一般由对需求很熟的高资深的测试工程师设计,测试方案要求根据《需求分析》和《测试计划》上的每个需求点设计出包括需求点简介,测试思路和详细测试方法三部分的方案。《测试方案》编写完成后也需要进行评审。评审人员不要低于5人。
5.测试方案阶段
此阶段对测试进行详细设计,主要针对测试用例和规程的设计。测试用例是根据《测试方案》来编写的,通过测试方案阶段,测试人员对整个系统需求有了详细的理解。这时开始编写用例才能保证用例的可执行和对需求的覆盖。测试用例需要包括测试项,用例级别,预置条件,操作步骤和预期结果。其中操作步骤和预期结果需要编写详细和明确。测试用例应该覆盖测试方案,而测试方案又覆盖了测试需求点,这样才能保证客户需求不遗漏。同样,测试用例也需要评审。评审人员最好不要低于5人。
6.测试执行阶段
执行测试用例,对执行结果进行合理管理,及时提交有质量的Bug。
7.结果分析与测试报告
针对测试结果测试人员应该分析相应的结果产生原因,并提交相应的测试报告。
三.测试范围
1. 功能测试
1.1基本功能模块测试
根据《用户需求说明手册》和《需求分析说明书》,分析各个功能模块。针对各个功能模块进行相关功能的测试。
1.2 WEB功能测试
1.2.1链接测试
什么是链接?
链接是Web 网站的一个主要特征,它是在页面之间切换和引导用户去一些未知地址页面的主要手段。
链接测试的内容:
测试所有链接是否按指示的那样确实链接到了应该链接的页面;
测试所链接的页面是否存在;
保证Web 网站上没有孤立的页面。所谓孤立页面是指没有链接指向该页面,只有知道正确的URL 地址才能访问。
链接测试可以手动进行,也可以自动进行。
链接测试必须在集成测试阶段完成,也就是说,在整个Web 网站的所有页面开发完成之后进行链接测试。
主要测试网站的链接是否正常,其中包括测试链接页面的正确性、页面是否存在、是否存在孤立页面。
常用测试工具有Xenu(测试链接的正确性的工具)。
1.2.2表单测试
什么是表单?
表单就是一些需要在线显示和填写的表格。
表单有一些标准操作,如确认、保存、提交等。
主要测试表单的正确性和规范性,是否适合常用表单的使用习惯。
主要测试方法为:边界值测试、等价类测试,以及异常类测试。
1.2.3Cookies测试
什么是cookies?
Cookie是一个由网页服务器放在您硬盘上的非常小的文本文件. 它本质上就像您的身份证明一样,并且不能像代码那样被执行或被用来散布病毒。它只能被您使用并且只能由提供的服务器读取。
使用cookies的目的:
帮您节约时间。如果您自定义页面,或注册产品或服务。cookie记住您的身份.当下一次您再次访问的时候,将显示您需要的信息,将帮您填入任何您已经回答过的问题。
Cookies测试
Cookies 通常用来存储用户信息和用户在某些应用系统上的操作序列,当一个用户使用Cookies访问了某一个应用系统时,Web 服务器将发送关于用户的信息,并把该信息以Cookies 的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登录等信息。
测试内容
Cookies是否能正常工作;
Cookies是否按预定的时间进行保存;
刷新对Cookies 有什么影响等。
1.2.4设计语言测试
测试WEB设计语言使用的版本是否规范、是否统一,使用的脚本语言是否规范、统一。
一般采用的时代码查看法。
不同的Web 设计语言版本的差异可以引起客户端或服务器端严重的问题;
尤其在分布式环境中开发时,开发人员都不在一起,这个问题就显得尤为重要。
测试的语言,除了HTML 的版本问题外,不同的脚本语言,例如使用Java、JavaScript、ActiveX、VBScript或Perl 等开发的应用程序也要在不同的版本上进行验证。
1.2.5数据库测试
数据校验
根据业务规则,需要对用户输入进行校验,则要保证这些校验功能正常工作。
一般测试数据的一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的,针对这两种情况,可分别进行测试。再就是数据的安全性测试,一般采用SQL注入的方法。
2.性能测试
网站的性能测试对于网站的运行而言异常重要,网站的性能测试主要从三个方面进行:连接速度测试、负载测试和压力测试。
2.1连接速度测试
不管用户使用那种方式的不同,系统都不能让用户可以等较长的时间。连接速度测试的目的,就是要保证在许可的时间内响应用户的请求。
测试网站的链接速度,响应用户的反应时间。
2.2负载测试
负载测试的目的:
负载测试是为了测量Web 系统在某一负载级别上的性能,以保证Web 系统在需求范围内能正常工作。负载测试指的是进行一些边界数据的测试,测量网站系统在某一负载级别上的性能,以保证网站系统在需求范围内能正常工作。负载级别是某个时刻同时访问Web系统的用户数量。
常用自动化测试工具:LoadRunner。
2.3压力测试
压力测试倾向应该是致使整个系统崩溃测试出系统能承受的最大压力而不会发生系统崩溃的现象。同时也是测试系统的限制和故障恢复能力,也就是测试网站系统会不会崩溃,在什么情况下会崩溃。
压力测试的内容:
压力测试必须对 Web 服务应用以下四个基本条件进行有效的压力测试:
重复(Repetition);
并发(Concurrency);
量级(Magnitude);
随机变化。
常用自动化测试工具:LoadRunner。
3. 可用性测试
可用性/易用性方面的测试一般采用手工测试的方法进行评判。
3.1导航测试
什么是导航测试?
在不同的用户接口控制之间,例如按钮、对话框、列表和窗口等;
或在不同的连接页面之间,
导航描述了用户在一个页面内操作的方式。
导航测试的内容:
测试网站的导航能力是否良好,比如页面结构、导航、菜单、连接等是否良好。
常采用手工对网页进行浏览、根据一般用户的浏览习惯来进行评判。
一般此过程让最终用户参与这种测试,效果将更加明显。
导航是否直观?
Web 系统的主要部分是否可以通过主页访问?
Web系统是否需要站点地图、搜索引擎或其他的导航器帮助?
测试Web 系统的页面结构;
导航条、菜单、连接的风格是否一致?
各种提示是否准确,确保用户凭直觉就知道是否还有内容,内容在什么地方。
最好让最终用户参与导航测试,效果将更加明显。
3.2图形测试
什么是图形测试?
在Web 网站中,适当的图片和动画既能起到广告宣传的作用,又能起到美化页面的功能。一个Web 网站的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。图形测试是网页美观测试的一部分,一般测试图形是否有明确的用途、是否与页面风格一致,还用图片的大小与格式的测试。
图形测试的内容:
(1) 要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间。图片尺寸要尽量地小,并且要能清楚地说明某件事情。
(2) 验证所有页面字体的风格是否一致。
(3) 背景颜色应该与字体颜色和前景颜色相搭配。
(4) 图片的大小和质量也是一个很重要的因素,一般采用JPG 或GIF 压缩。
常采用手工测试。
3.3内容测试
内容测试用来检验web网站系统提供信息的正确性、准确性和相关性。如文字标题是否与文字内容符合,是否存在不需要的文字。
常采用界面浏览的方式。
3.4整体界面测试
测试整个网站系统的页面结构设计是否符合用户需求规范,是否给用户的一个整体感。
一般常采用界面浏览的方式,最好是有最终用户的参与。
例如,当用户浏览Web 网站时,应考虑
是否感到舒适?
是否凭直觉就知道要找的信息在什么地方?
整个Web 应用系统的设计风格是否一致?
4. 安全性测试
4.1登录验证
现在的网站系统基本采用先注册,后登陆的方式。因此,必须测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等。
4.2缓冲区溢出
溢出攻击是通过溢出来控制计算机的指令序列,让计算机执行自己的恶意代码,是利用缓冲区溢出漏洞所进行的攻击行动。缓冲区溢出是一种非常普遍、非常危险的漏洞。
4.3日志文件
为了保证网站系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进了日志文件、是否可追踪。
4.4安全漏洞
服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。
4.5跨站式脚本攻击(XSS)
跨站脚本攻击是指攻击者编写恶意脚本利用网站漏洞从用户那里恶意盗取信息。
4.6 目录测试
4.7 SSL套接字测试
5. 配置和兼容性测试
5.1平台测试
采用不同的操作系统平台对网站进行测试。
市场上有很多不同的操作系统类型,最常见的有Windows、Unix、Macintosh、Linux 等。Web 网站的最终用户究竟使用哪一种操作系统,取决于用户系统的配置。
平台测试就是要测试兼容性问题:
同一个应用可能在某些操作系统下能正常运行,但在另外的操作系统下可能会运行失败。
因此,在Web 系统发布之前,需要在各种操作系统下对Web 系统进行兼容性测试。
5.2浏览器测试
使用不同的浏览器对网站进行浏览测试,查看网站在不同浏览器中的兼容性问题。
浏览器是Web系统客户端最核心的软件,来自不同厂商的浏览器对Java,、JavaScript、ActiveX、plug-ins 或不同的HTML 有不同的支持。
另外,框架和层次结构风格在不同的浏览器中也有不同的显示,甚至根本不能显示。不同的浏览器对安全性和Java 的设置也不一样。
5.3分辨率测试
对屏幕的分辨率进行调节来查看网站在不同分辨率下的显示效果,比如;分辨率低时界面文字显示太大,而
分辨率高时又有些文字显示时太小。
页面版式在640x400、600x800 或1024x768 的
分辨率模式下是否显示正常?
5.4 连接速率测试
是否有这种情况,用户使用28.8k modem 下载一个页面需要10 分钟,但测试人员在测试的时候使用的是T1 专线?
用户在下载文章或演示的时候,可能会等待比较长的时间,但却不会耐心等待首页的出现。
5.5 组合测试
600x800 的分辨率在MAC 机上可能不错,但是在IBM 兼容机上却很难看。
在IBM 机器上使用Netscape 能正常显示,但却无法使用Lynx 来浏览。
如果所有的人都使用T1 专线,可能不需要测试下载、上载。
有些内部应用程序,开发部门可能在系统需求中声明不支持某些系统而只支持一些那些已设置的系统。
理想的情况,系统能在所有机器上运行。
四.相关规范
1. 文档管理规范
2.相关管理工具
(注:该文章是网上一篇测试流程的文章上补充完成,对某些部分给予了详细的说明,在此谢谢该篇文章的初建者)