Web 测试总结
日期 | 版本 | 作者 | 修改内容 |
2010-9-10 | V1.0 | 黄玉平 |
|
|
|
|
|
|
|
|
|
目录
对于一个Web网站来说,主要从这么几个大的方面来进行测试:
1、 功能测试;2、 界面测试;3、 易用性测试;4、兼容性测试;
5、链接测试;6、 业务流程测试;7、 安全性测试
下面主要从以上七个方面进行叙述:
1 功能测试
测试用例是测试的核心,测试用例的设计是一种思维方式的体现,在用例的设计中,用的比较多的方法是边界值分析法和等价类划分法,下面主要从输入框,搜索功能,添加、修改功能,删除功能,注册、登录功能以及上传图片功能等方面进行总结说明。
1.1 输入框
输入框是测试中最容易出现bug的地方,所以在测试时,一定要多加注意。
控件类型 | 大分类 | 小分类 | 检查内容 |
输入框 | 字符型输入框 | 字符种类 | 英文全角字符 |
英文半角字符 | |||
数字 | |||
空或空格 | |||
特殊字符"~!@#$%^&*()_+{}|[]/:"<>?;',./?;:'-=等可能导致系统错误的字符,特别要注意单引号和&符号 | |||
禁止直接输入特殊字符时,使用“粘贴”“拷贝”功能的尝试输入,并测试能否正常提交 | |||
长度检查 | 最小长度 | ||
最大长度 | |||
最小长度-1 | |||
最大长度+1 | |||
输入超工字符:比如把整篇文档拷贝过去 | |||
空格检查 | 输入的字符间有空格 | ||
字符前有空格 | |||
字符后有空格 | |||
字符前后有空格 | |||
多行文本框输入 | 允许回车换行 | ||
保存后再显示能够保存输入的格式 | |||
仅输入回车换行,检查能否正确保存;若能,查看保存结果,若不能,查看是否有正常提示 | |||
安全性检查 | 输入特殊字符串:null,NULL, ,javascript,<script>,</script>,<title>,<html>,<td>等 | ||
输入脚本函数:<script>alter("abc")</script>,document.write("abc"),<b>helle></b> | |||
数值型输入框 | 边界值 | 最小值 | |
最大值 | |||
最小值-1 | |||
最大值+1 | |||
位数 | 最小位数 | ||
最大位数 | |||
最小位数-1 | |||
最大位数+1 | |||
输入超长值 | |||
输入整数 | |||
异常值、特殊字符 | 输入[空白(NULL)、空格或"~!@#$%^&*()_+{}|[]/:"<>?;',./?;:'-=等可能导致系统错误的字符 | ||
禁止直接输入特殊字符时,使用“粘贴”“拷贝”功能的尝试输入,并测试能否正常提交 | |||
word中的特殊功能,通过剪贴板拷贝到输入框:分页符,分节符,类似公式的上下标等 | |||
数值的特殊符号如:∑,㏒,㏑,∏,+,-等 | |||
输入负整数,负小数,分数 | |||
输入字母或汉字 | |||
小数:小数点前零舍去的情况。如.12;多个小数点的情况;0值:0.0.0,.0 | |||
首位为零的数值:如01、02 | |||
科学记数法是否支持:如1.0E2 | |||
全角数字与半角数字 | |||
数字与字母的混合:16进制数值,8进制数值 | |||
货币型输入项:允许小数点后几点 | |||
安全性检查 | 不能直接输入,就COPY | ||
日期型输入框
| 合法性检查 | 日输入[0日][1日][32日] | |
月输入[1、3、5、7、8、10、12]、日输入[31] | |||
月输入[4、6、9、11]、日输入[30][31] | |||
输入非闰年,月输入[2],日输入[28,29] | |||
输入闰年,月输入[2],日输入[29,30] | |||
月输入[0、1、12、13] | |||
异常值、特殊字符 | 输入[空白(NULL)、空格或"~!@#$%^&*()_+{}|[]/:"<>?;',./?;:'-=等可能导致系统错误的字符 | ||
安全性检查 | 同上 |
1.2 搜索功能
查询条件为输入框则参考上面的输入对应类型的测试方法
类型 | 分类 | 检查内容 |
搜索功能 | 功能实现 | 如果支持模糊查询,搜索名称中任意一个字符是否能搜索到 |
比较长的名称是否能查到 | ||
输入系统中不存在与之匹配的条件 | ||
用户进行查询操作时,一般情况是不进行查询条件的清空,除非需求特殊说明 | ||
组合测试 | 不同查询条件来回选择是否出现页面错误(单选框及多选框最容易出错) | |
测试多个查询条件时,要注意查询条件的组合测试,可能不同组合的测试会报错 |
1.3 添加、修改功能
类型 | 分类 | 检查内容 |
新增、修改功能 | 特殊键 | 是否支持tab键 |
是否支持enter键 | ||
提示信息 | 不符合要求的地方是否有错误提示 | |
唯一性 | 字段唯一的,是否可以重复添加,添加后是否能修改为已存在的字段(字段包括是否区分大小写以及在输入内容的前后输入空格) | |
数据正确性 | 保存后,数据是否真正插入到数据库中,注意保存后的数据正确性 | |
对编辑页列表中的每个编辑项进行修改,点击保存,是否保存成功,检查是否会更新到其他数据 | ||
进行必填项检查,注意系统所做的操作(即是否给出提示及提示后是否依然把数据存到数据库中;是否提示后出现页乱错等情况) | ||
是否能够连续添加(针对特殊需求而定) | ||
在编辑的时候,要注意编辑项的长度限制,有时,添加时有长度限制,但编辑时却没有(添加和修改规则是否一致) | ||
对于有图片上传功能的编辑框,对于没有上传的图片,查看编辑页面时,是否显示默认图片,如果上传了图片,是否显示为上传图片 | ||
新增或修改数据时,要注意相应查询页面数据的及时更新,特别是在测试首页显示时要注意数据更新 | ||
提交数据时连续多次点击,检查系统会不会连续新增多条一样的数据或报错 | ||
结果列表中没记录或没选择某一记录时点击修改按钮,系统会抛异常 |
1.4 删除功能
类型 | 分类 | 检查内容 |
删除功能 | 特殊键 | 是否支持tab键 |
是否支持enter键 | ||
提示信息 | 不选择任何信息,直接点击删除按钮,看有什么错误提示 | |
删除某条信息时,应该有询问提示信息 | ||
数据实现 | 是否能连续删除多个产品 | |
当只有一条数据时,能否成功删除 | ||
删除一条数据后,能否再添加相同的数据 | ||
如系统支持一次删除多条信息的功能时,注意删除的数据是否正确 | ||
如有“全选”功能,要注意全选是否把所有数据删除 | ||
删除数据时,要注意相应查询页面数据的及时更新,特别是在测试首页显示时要注意数据更新 | ||
如删除的数据与其他数据有业务关联,要注意其关联性(例子:删除部门信息时,如部门下有相应员工,则应该给出提示) | ||
结果列表中没记录或没选择某一记录时点击删除按钮,系统会抛异常 |
1.5 注册、登录模块
类型 | 分类 | 检查内容 |
注册、登录功能 | 注册功能 | 注册时,密码设置为特殊版本号,检查登陆时会否报错 |
注册成功后,页面应以登陆状态跳转到首页或指定页面 | ||
在注册信息中输入已删除的用户信息,检查能否注册成功 | ||
登录功能 | 输入正确的用户名和正确的密码 | |
输入正确的用户名和错误的密码 | ||
输入错误的用户名和正确的密码 | ||
输入错误的用户名和错误的密码 | ||
不输入用户名和密码/或均为空格 | ||
只输入用户名,密码为空/或为空格 | ||
用户名为空/或为空格,只输入密码 | ||
输入正确的用户名和正确的密码,但未区分大小写 | ||
用户名和密码包括特殊字符 | ||
用户名和密码输入超长值 | ||
已删除的用户名和密码 | ||
登录时,当页面刷新或重新输入新数据时,验证码是否也随之更新 |
1.6 上传图片测试
类型 | 分类 | 检查内容 |
上传功能 | 功能实现 | 文件类型正确,文件大小合适 |
文件类型正确,文件大小不合适 | ||
文件类型错误,文件大小合适 | ||
文件类型和大小都合适,上传一个正在使用中的图片 | ||
文件类型和大小合适,手动输入一个存在的图片地址来上传 | ||
文件类型和大小合适,手动输入一个不存在的图片地址上传 | ||
文件类型和大小都合适,手动输入图片名称来上传 | ||
不选择文件直接点击上传,检查是否给出提示 | ||
连续多次选择不同文件,检查系统是否上传最后选择的文件 |
1.7 查询结果列表
类型 | 分类 | 检查内容 |
查询结果列表 | 功能实现 | 列表列宽是否合理 |
列表数据太长有没有提供横向滚动 | ||
列表的列名与列的内容没有正确对应 | ||
列表的每列的列名描述不清晰 | ||
列表把不必要的列都显示出来 | ||
点击某列进行了排序,是否会报错 | ||
双击或单击某列信息是否会报错 |
1.8 返回键检查
(1)一条已经成功提交的记录,返回后再提交,看系统是否做了处理
(2)检查多次使用返回键的情况,在有返回键的地方,返回到原来页面重复多次,看是否会出错
1.9 回车键检查
在输入结束后,直接按回车键,看系统处理如何,是否会报错
1.10 刷新键检查
在web系统中,使用浏览器的刷新键,看系统处理如何,是否会报错
1.11 直接URL链接检查
在web系统中,直接输入各功能页面的URL地址,看系统如何处理
1.12 其他
(1)在测试时,有与网络有关的步骤必须考虑到断网的情况
(2)每个页面都有相应的页面title
(3)在测试的时候要尽量考虑在页面出现滚动条时(滚动条上下滚动下),页面显示是否正常
(4)URL不区分大小写
(5)某个字段是唯一的,当多个用户并发点击产生该字段时,检查系统是怎么处理的
(6)对于电子商务网站,当两个或多个用户并发购买量总和大于产品库存量时,能否购买成功
(7)1测试数据避免单纯输入“123”或“aaa”之类的数据,让测试数据尽量接近实际。
(8)进行测试时,尽量不要用超级管理员进行测试,尽量使用自己新增的用户。如多个测试人员同时对系统进行测试时,尽量不要同时使用一个用户。
(9)做功能测试时,也要注意系统的性能(如操作的响应时间、内存使用情况等)
2 界面和易用性测试
类型 | 检查内容 |
界面检查 | 风格、样式、颜色格调是否协调 |
界面布局是否整齐、协调(保证全部显示出来的,尽量不要使用滚动条) | |
界面操作、标题的描述是否恰当(A.描述有歧义 B.注意是否有错别字) | |
操作是否符合人们的常规习惯(有没有把相似的功能的控件放在一起,方便操作) | |
提示界面是否符合规范(不应该显示英文的ok/cancel/yes/no,应该统一用是否,确定,取消等中文) | |
界面中的各个控件是否对齐 | |
日期控件是否可编辑 | |
日期控件的长度是否合理(以修改日期时能把日期全部显示出来为标准) | |
查询结果列表列宽是否合理 | |
查询结果列表标签描述是否清晰 | |
查询结果列表数据太长没有提供横向滚动 | |
对于信息比较长的文本,文本框有没有提供自动竖直滚动条 | |
数据录入控件录入是否方便 | |
有没有支持tab键(键的顺序没有条理有序,出现不乱跳) | |
有没有提供相关的热键 | |
控件的提示语描述是否准确 | |
模块调用是否统一(相同的功能模块是否调用同一个界面) | |
用滚动条移动页面时,页面的控件显示是否正常 | |
日期显示的格式是否正确(应该为显示为XXXX-XX-XX 或XXXX-XX-XX XX:XX:XX) | |
界面是否有多余按钮/标签 | |
窗口标题与图标或开始菜单的名称是否一致 | |
窗口的最大化和最小化能否准确切换 | |
对于常用的功能,用户能否不必阅读手册就能使用 | |
执行有风险的操作时,是否有“确认”、“放弃”等提示吗 | |
操作顺序是否合理 |
3 兼容性测试
兼容性测试不只是指界面在不同操作系统或浏览器下的兼容,有些功能方面的测试,也要考虑到兼容性,比如涉及到ajax、jquery、javascript等技术的,都要考虑到不同浏览器下的兼容性问题。
4 链接测试
主要是保证链接的可用性和正确性,它也是网站测试中比较重要的一个方面。
5 业务流程测试
业务流程,一般会涉及到多个模块的数据,所以在对业务流程测试时,首先要保证单个模块功能的正确性,其次就要对各个模块间传递的数据进行测试,这往往是容易出现问题的地方,测试时一定要设计不同的数据进行测试。
6 安全性测试
(1)SQL注入
(2)XSS跨网站脚本攻击:程序或数据库没有对一些特殊字符进行过滤或处理,导致用户
所输入的一些破坏性的脚本语句能够直接写进数据库中,浏览器会直接执行这些脚本语句,破坏网站的正常显示,或网站用户的信息被盗,构造脚本语句时,要保证脚本的完整性。
document.write("abc")
<script>alter("abc")</script>
(3)URL地址后面随便输入一些符号
(4)验证码更新问题
以上就是对Web测试的一个总结,相信一定还存在某些的遗漏,欢迎大家指正、补充。