一、前言
本文将分享web测试的 5 个部分:
- 功能测试
- UI测试
- 性能测试
- 兼容性测试
- 安全测试
本文的目的是覆盖 web 测试的各个方面,就某一主题进行归纳总结测试思路。
二、测试方案
2.1 功能测试
2.1.1 基本功能模块测试
根据《需求规格说明书》相关需求文档,分析各个功能模块业务需求,编写高覆盖可执行的测试用例,根据测试用例执行测试。
2.1.2 WEB功能测试
2.1.2.1 链接测试
主要测试网站的链接是否正常,其中包括测试链接页面的正确性、页面是否存在、是否存在孤立页面。
2.1.2.2 表单测试
表单就是一些需要在线显示和填写的表格。
表单有一些标准操作,如确认、保存、提交等。
主要测试表单的正确性和规范性,是否适合常用表单的使用习惯。
主要测试方法为:边界值测试、等价类测试,以及异常类测试。
2.1.2.3 Cookies测试
Cookie是一个由网页服务器放在您硬盘上的非常小的文本文件. 它本质上就像您的身份证明一样,并且不能像代码那样被执行或被用来散布病毒。它只能被您使用并且只能由提供的服务器读取。
使用cookies的目的:
帮您节约时间。如果您自定义页面,或注册产品或服务。cookie记住您的身份,当下一次您再次访问的时候,将显示您需要的信息,将帮您填入任何您已经回答过的问题。
测试内容:Cookies是否能正常工作,Cookies是否按预定的时间进行保存和失效(例如登录状态),刷新对Cookies 有什么影响等。
2.1.2.4 数据库测试
数据校验
根据业务规则,需要对用户输入进行校验,则要保证这些校验功能正常工作。
一般测试数据的一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的,针对这两种情况,可分别进行测试。再就是数据的安全性测试,一般采用SQL注入的方法。
2.1.2.5 业务流程测试(主要功能测试)
业务流程,一般会涉及到多个模块的数据,所以在对业务流程测试时,首先要保证单个模块功能的正确性,其次就要对各个模块间传递的数据进行测试,这往往是容易出现问题的地方,测试时一定要设计不同的数据进行测试。
2.2 UI测试
可用性/易用性方面的测试一般采用手工测试的方法,站在用户角度和人性化操作进行评判。
2.2.1 导航测试
导航测试的内容:
测试网站的导航能力是否良好,比如页面结构、导航、菜单、连接等是否良好。
常采用手工对网页进行浏览、根据一般用户的浏览习惯来进行评判。
Web 系统的主要部分是否可以通过主页访问?
Web系统是否需要站点地图、搜索引擎或其他的导航器帮助?
测试Web 系统的页面结构、导航条、菜单、连接的风格是否一致?
各种提示是否准确,确保用户凭直觉就知道是否还有内容,内容在什么地方?
最好让最终用户参与导航测试,效果将更加明显。
2.2.2 图形测试
图形测试是网页美观测试的一部分,一般测试图形是否有明确的用途,是否与页面风格一致,还有图片的大小与格式的测试。
图形测试的内容:
① 要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间。图片尺寸要尽量地小,并且要能清楚地说明某件事情。
② 验证所有页面字体的风格是否一致。
③ 背景颜色应该与字体颜色和前景颜色相搭配。
④ 图片的大小和质量也是一个很重要的因素,一般采用JPG 或GIF 压缩。
2.2.3 内容测试
内容测试用来检验web网站系统提供信息的正确性、准确性和相关性。如文字标题是否与文字内容符合,是否存在不需要的文字。
常采用界面浏览的方式。
2.2.4 整体界面测试
测试整个网站系统的页面结构设计是否符合用户需求规范,是否给用户的一个整体感。
一般常采用界面浏览的方式,最好是有最终用户的参与。
例如,当用户浏览Web 网站时,应考虑
是否感到舒适?
是否凭直觉就知道要找的信息在什么地方?
整个Web 应用系统的设计风格是否一致?
2.3 性能测试
网站的性能测试对于网站的运行而言异常重要,网站的性能测试主要从三个方面进行:连接速度测试、负载测试和压力测试。
2.3.1 连接速度测试
不管用户使用那种方式的不同,系统都不能让用户可以等较长的时间。连接速度测试的目的,就是要保证在许可的时间内响应用户的请求。
测试网站的链接速度,响应用户的反应时间。
"不成文"的性能需求指标:
响应时间:根据国外的一些资料,一般操作的响应时间为2,5,8秒,2秒内优秀,5秒内良好,8秒内可接受,其它一些特殊的操作,如上传,下载可以依据用户体验的情况,延长响应时间。
2.3.2 负载测试
负载测试的目的:
负载测试是为了测量Web 系统在某一负载级别上的性能,以保证Web 系统在需求范围内能正常工作。负载测试指的是进行一些边界数据的测试,测量网站系统在某一负载级别上的性能,以保证网站系统在需求范围内能正常工作。负载级别是某个时刻同时访问Web系统的用户数量。
性能测试工具:JMeter。
2.3.3 压力测试
压力测试倾向应该是致使整个系统崩溃测试出系统能承受的最大压力而不会发生系统崩溃的现象。同时也是测试系统的限制和故障恢复能力,也就是测试网站系统会不会崩溃,在什么情况下会崩溃。
压力测试的内容:
压力测试必须对 Web 服务应用以下四个基本条件进行有效的压力测试:
重复(Repetition);
并发(Concurrency);
量级(Magnitude);
随机变化。
性能测试工具:JMeter。
2.4 兼容性测试
2.4.1 平台测试
采用不同的操作系统平台对网站进行测试。
市场上有很多不同的操作系统类型,最常见的有Windows、Unix、Mac、Linux 等。Web 网站的最终用户究竟使用哪一种操作系统,取决于用户系统的配置。
平台测试就是要测试兼容性问题:
同一个应用可能在某些操作系统下能正常运行,但在另外的操作系统下可能会运行失败。
因此,在Web 系统发布之前,需要在各种操作系统下对Web 系统进行兼容性测试。
2.4.2 浏览器测试
使用不同的浏览器对网站进行浏览测试,查看网站在不同浏览器中的兼容性问题。
浏览器是Web系统客户端最核心的软件,来自不同厂商的浏览器对Java、JavaScript、ActiveX、plug-ins 或不同的HTML 有不同的支持。
另外,框架和层次结构风格在不同的浏览器中也有不同的显示,甚至根本不能显示。不同的浏览器对安全性和Java 的设置也不一样。
2.4.3 分辨率测试
对屏幕的分辨率进行调节来查看网站在不同分辨率下的显示效果,比如;分辨率低时界面文字显示太大,而分辨率高时又有些文字显示时太小。
页面版式在640x400、600x800 或1024x768 等不同分辨率模式下是否显示正常?
2.5 安全性测试
2.5.1 登录验证
现在的网站系统基本采用先注册,后登录的方式。因此,必须测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登录而直接浏览某个页面,是否有对登录密码进行前后端加密等。
2.5.2 缓冲区溢出
溢出攻击是通过溢出来控制计算机的指令序列,让计算机执行自己的恶意代码,是利用缓冲区溢出漏洞所进行的攻击行动。缓冲区溢出是一种非常普遍、非常危险的漏洞。
2.5.3 日志文件
为了保证网站系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进了日志文件、是否可追踪。
2.5.4 安全漏洞
服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。
2.5.5 跨网站式脚本攻击(XSS)
XSS跨网站脚本攻击:程序或数据库没有对一些特殊字符进行过滤或处理,导致用户所输入的一些破坏性的脚本语句能够直接写进数据库中,浏览器会直接执行这些脚本语句,破坏网站的正常显示,或网站用户的信息被盗,构造脚本语句时,要保证脚本的完整性。