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测试的一个总结,相信一定还存在某些的遗漏,欢迎大家指正、补充。
1345

被折叠的 条评论
为什么被折叠?



