简介:
很多人对功能测试的理解就是点点点,要什么技术,不是“有手就行”吗?我想说,如果自己不用心去总结、去研究,那么你的眼界也就只能停留在点点点上了。任何一个行业,都有它存在的意义。其实功能测试是测试工程师的基础功,很多人功能测试还做不好,就想去做自动化测试,性能测试,就像地基不稳的高楼终究是栋危楼。在这里,我把我对功能相关测试点的一些常见用例记录下来,可供初学者参考学习。
1、 登录功能测试用例
a) 用户名和密码都符合要求(格式上的要求)
b) 用户名和密码都不符合要求(格式上的要求)
c) 用户名符合要求,密码不符合要求(格式上的要求)
d) 密码符合要求,用户名不符合要求(格式上的要求)
e) 用户名或密码为空
f) 数据库中不存在的用户名,不存在的密码
g) 数据库中存在的用户名,错误的密码
h) 数据库中不存在的用户名,存在的密码
i) 输入的数据前存在空格
j) 输入正确的用户名密码以后按[enter]是否能登陆
k) 多次错误登录,是否锁住
l) 大小写区分(如:用户名和密码都为小写时)
m) 已注销的用户名登录
n) 已禁止/锁住的用户名登录
o) 长短校验
p) 是否支持tab和enter键
q) 多点登录/提示信息–同一个用户不能同一时间在不同的位置登录
r) 登录是否记住用户名和密码
s) 密码明文
t) 切换用户,是否显示前一用户信息
u) 登陆后前进后退操作
v) 密码是否可以用MD5解密
w) 登录超时(经过一段时间自动退出)
2、 搜索/查询
a) 精确查询
i) 输入的查询条件为数据库中存在的数据,看是否能正确地查出相应得数据
ii) 输入正确的查询条件以前加上空格,看是否能正确地查出相应的数据
iii) 输入格式或范围不符合要求的数据,看是否有错误提示
iv) 输入数据库中不存在的数据
v) 不输入任何数据
vi) 是否支持table键
vii) 是否支持enter键
b) 模糊查询:
i) 输入一些字符,看是否能查出数据库中所有的相关信息
c) 单独遍历各查询条件,测试按各查询条件是否都能够查询出相应的值.
d) 设置界面上所有查询条件进行查询,单击查询按钮后,测试执行查询操作后,查询条件是否能保留
e) 随机对各查询条件进行组合查询,测试是否能够实现组合查询
f) 在各字符串类型字段中输入非精确值进行查询,测试是否能够实现糊模查询
g) 测试是否控制了各种非法字符的查询
h) 设置条件查询出记录后,翻到最后一页,再更改查询条件,测试各查询条件查询出记录后再切换条件查询是否正确。
i) 设置查询条件,点击查询按钮,测试未查询到任何记录时,是否会给予相应的提示
j) 设置查询条件,按回车键,测试是否支持回车查询
k) 输入各查询条件,前中后包含空格
l) 不输入或输入空格查询
m) 有日期查询字段
i) 输入查询值,测试存在日期型查询字段时,查询是否正确
ii) 输入查询值,测试当存在开始日期及结束日期进行查询
iii) 超日期范围的查询
iv) 输入非完整的日期或其它数据,测试对日期型字段查询时,是否对非法数据进行了控制
v) 输入不存在的日期进行查询
vi) 输入不符合项目设定的日期类型,是否会做格式转换
vii) 输入查询条件后,点重置
viii) 不输入或输入空格搜索
3、 文本框的测试
a) 输入正常的字母或数字
b) 输入已存在的文件的名称
c) 输入超长字符
d) 输入默认值,空白,空格
e) 若只允许输入字母,尝试输入数字;反之,尝试输入字母
f) 利用复制,粘贴等操作强制输入程序不允许的输入数据
g) 输入特殊字符集,例如,NULL等
h) 输入超过文本框长度的字符或文本,检查所输入的内容是否正常显示
i) 输入不符合格式的数据,检查程序是否正常校验,如程序要求输入年月日格式为yy/mm/dd,实际输入yyyy/mm/dd,程序应该给出错误提示
4、 单选按钮控件
a) 一组单选按钮不能同时选中,只能选中一个。
b) 逐一执行每个单选按钮的功能,分别选择了“男”“女”后,保存到数据库的数据应该相应的分别为“男”“女”;
c) 一组执行同一功能的单选按钮在初始状态时必须有一个被默认选中,不能同时为空;
5、 up-down控件文本框
a) 直接输入数字或用上下箭头控制,如,在“数目”中直接输入10,或者单击向上的箭头,使数目变为10
b) 利用上下箭头控制数字的自动循环,如,当最多数字为253时,单击向上箭头,数目自动变为1;反之亦适用
c) 直接输入超边界值,系统应该提示重新输入
d) 输入默认值,空白。如,“插入”数目为默认值,点击“确定”;或,删除默认值,使内容为空,单击“确定”进行测试
e) 输入字符,此系统应提示输入有误
6、 复选框
a) 多个复选框可以被同时选中
b) 多个复选框可以被部分选中
c) 多个复选框可以都不被选中
d) 逐一执行每个复选框的功能
7、 列表框控件
a) 条目内容正确;同组合列表框类似,根据需求说明书确定列表的各项内容正确,没有丢失或错误
b) 列表框的内容较多时要使用滚动条
c) 列表框允许多选时,要分别检查shift选中条目,按ctrl选中条目和直接用鼠标选中多项条目的情况
8、 插入操作
a) 插入文件
i) 插入文件
ii) 插入图像
iii) 在文档中插入文档本身
iv) 移除插入的源文件
v) 更换插入的源文件的内容
b) 链接文件
i) 插入链接文件
ii) 在文档中链接文档本身
iii) 移除插入的源文件
iv) 更换插入的源文件的内容
9、 上传文件
a) 文件类型正确,文件大小合适(临界值)
b) 文件类型正确,文件大小不合适
c) 文件类型正确,文件大小合适
d) 文件类型错误,文件大小合适的校验
e) 文件类型和文件大小合法
f) 上一次上传失败后,再进行上传操作,测试上传失败后,是否还能继续上传
g) 上传文件后内容检查
10、 数据文件导入
a) 文件内的数据都符合格式
b) 文件内的数据部分符合要求,部分不符合要求
c) 文件内的数据全部不符合要求
d) 文件内的数据关键字段值在数据库中不存在
e) 文件内的数据格式不符(如匹配字段名、表名等不同)
11、 文件的导出或下载(考虑文件名内容是否有乱码)
a) 导出文件名长度
b) 导出文件是否为空
c) 导出文件名为特殊字符的情况
d) 导出全部资料的情况,导出的信息是否正确
e) 导出部分资料的情况,导出的信息是否正确
f) 导出大量数据时的时间是否在合理的时间范围内
g) 导出目的磁盘空间已满的情况下,导出是否有友好的处理方式
h) 导出目的的文件夹为只读的情况下,导出时是否有友好的的提示信息
12、 全选
a) 点击全选按钮,测试是否实现了全选当前页的功能
b) 点击全选按钮后,再点击全选按钮,测试全选按钮勾选状态变更是否正确
c) 点击全选按钮后,再去掉某些记录的勾选,测试全选按钮勾选状态变更是否正确
d) 将当前页的所有记录单个单个全部勾选,测试全选按钮勾选状态变更是否正确
13、 删除
a) 选择一条记录,执行删除操作,测试是否能正常进行删除操作
b) 不选择任何记录,直接点击删除按钮,测试是否对无选择记录进行删除做了控制
c) 选择一条记录,点击删除按钮,测试删除时是否会给予相应的提示,并按所选项执行
d) 设置条件查询出记录后翻页,选一条记录,点击【删除】并确定删除,测试删除边界值是否正常
e) 勾选多条记录,点击删除按钮,在弹出的提示框中,点击确定,测试是否可以进行批量删除多条数据
f) 选择记录进行删除,测试当删除相关连的信息时,是否给予明确的提示信息
14、 保存
a) 进行新增或修改操作,输入相关内容后,多次提交保存,测试是否限制了重复保存
b) 进行保存操作,测试当保存操作所费时间较长时,是否能提供进度条
c) 若提示不能保存,也要察看数据库里是否多了一条数据
15、 修改
a) 勾选一条记录,进行修改保存,测试是否能正常进行修改操作
b) 未选择记录,点击修改按钮,测试是否对无选择记录进行修改做了控制
c) 选择一条记录,点击修改按钮,进行修改,点击确定按钮,测试是否对重复的记录进行了控制
d) 选择一条记录,点击修改按钮,再点击返回按钮,测试取消修改时是否会给予提示
e) 勾选多条记录,点击修改按钮,测试是否对勾选多个记录进行修改进行了控制。
f) 修改引用的信息
g) 选择一条记录进行修改保存,测试信息修改是否正常
16、 添加
a) 执行新增操作,测试是否能正常进行新增
b) 只填写界面上标识的必填字段(即标识*号)号的字段,测试界面上必填字段控制与数据库必填控制是否一致
c) 输入相关数据后,进行保存,测试当因任何原因无法提交时,原输入的内容是否保存
d) 执行新增操作,测试新增记录是否排在首行
e) 执行新增操作,关键字段与数据库中已存在的值重复,测试是否对重复值进行了判断
f) 执行新增操作,测试是否对各字段的长度进行了限制
g) 操作新增操作,测试是否对各输入框的非法字符进行了控制
h) 在各输入框中输入相应的值进行新增保存,测试对各输入框中,输入内容前中后包含空格
i) 在多行文本框中输入文字及回车进行保存,测试在多行文本框中,是否允许存在回车符
j) 测试针对特殊字段限制是否正常
k) 测试是否对必填字段进行了检查
l) 点击‘新增’按钮,在弹出的页面中,输入及选择相应信息,点击取消(返回)按钮,测试点击取消(返回)时是否会给予相应的提示
m) 输入非负整型数据,测试是否对数值型数据进行了格式化输入
n) 输入整型数据,测试是否对数值型数据进行了格式化输入
o) 输入浮点型数据,测试是否对数值型数据进行了格式化输入
p) 点击新增按钮,输入信息后,点重置
17、 邮箱格式
a) 为必填项时,不输入任何字符或输入空格
b) 输入中文或英文
c) 字符串中没有@和点
d) 字符串中有@和没有点
e) 字符串中没有@和有点
f) 字符串中有特殊字符
g) 第一个字符串为@ 或点
h) 字符串的最后一位是@或点
i) @和点之间没有字符串
j) 字符串中多于两个@符号
k) 字符串长度小于6,大于30个字符
l) 字符串中有汉字
m) 输入@前面有分隔符的情况
n) 输入@后面有多个分隔符(小数点)
18、 身份证号码
a) 测试对身份证号码的溢出是否进行了控制
b) 测试是否对数字型数据是否进行了格式化输入
c) 为必填项时,不输入任何字符或输入空格
d) 测试是否对身份证号码进行了格式化输入(不存在的身份证号码)
e) 输入的身份证号码是17位的真实号码(最后一位为字母或数字,字母是否一定是X,另外要求字母是否可以大小写都通过)
f) 输入的身份证号码是18位的真实号码(最后一位为字母或数字)
19、 电话号码
a) 测试是否对数字型数据是否进行了格式化输入
b) 为必填项时,不输入任费时何字符或输入空格
20、 手机号码
a) 为必填项时,不输入任何字符或输入空格
b) 输入长度超过11位字符
c) 输入长度小于11位字符
d) 测试是否对数字型数据是否进行了格式化输入
e) 测试是否对手机号码进行了格式化输入
21、 邮政编码
a) 输入英文空格/不输入任何信息/输入中文空格
b) 输入特殊字符
c) 输入中、英文内容/中英文结合数字
d) 输入空格+数字,空格出现在开头、中间、结尾均需测试
e) 输入小于6个数字
f) 输入6位数字
g) 输入大于6位位数字
22、 验证码
a) 不输入任何字符
b) 空格输入
c) 输入空格+正确效验码,空格出现在开头、中间、结尾均需要测试
d) 输入4位其他非数字内容
e) 输入特殊字符
f) 输入前3位或后3位验证码正确数字
g) 输入4位正确校验码+其他数字
h) 验证码输入错误,登录失败,提示信息是否友好?
i) 输入过期的验证码能否登录成功?
j) 验证码是否容易识别?
k) 验证码换一张功能是否可用?点击验证码图片是否可以更换验证码?
l)
23、 注册
a) 不输入任何信息,直接点注册,验证是否必填–提示不能为空
b) 输入用户名、密码和确认密码,点击提交表单–注册成功
c) 输入用户名、密码和确认密码,用户名以字符开头–提示"用户名只能以数字或字母开头或结尾,请重新输入"
d) 输入用户名和密码,用户名含有非法字符–提示用户名含有非法字符
e) 输入用户名和密码,密码含有非法字符–提示密码含有非法字符
f) 输入用户名、密码和确认密码,两次密码输入不一致–提示两次密码输入不一致,请重新输入
g) 输入用户名、密码和确认密码、邮箱,邮箱格式的不正确–提示邮箱地址不正确不正确
h) 输入用户名和密码,输入的用户名已经被注册–提示用户名已经被注册,请重新输入
i) 输入用户名和密码,用户名和密码长度都是最大值–注册成功
j) 输入用户名和密码,用户名长度超过最大值–注册失败,提示用户名的长度超过最大有效值
k) 输入用户名和密码,密码长度超过最大值–注册失败,提示密码的长度超过最大有效值
l) 输入用户名和密码,用户名和密码长度都是最小值–注册成功
m) 输入用户名和密码,用户名长度小于最小值–注册失败,提示用户名或密码的长度低于最小有效值
n) 输入用户名和密码,密码长度小于最小值
o) 输入用户名和密码,验证是否支持快捷键tab键
p) 鼠标光标依次跳转到用户名、密码、确认密码等
q) 输入已经存在的用户名,验证对已经存在用户的用户名大小写是否做出正确响应–注册成功(用户名区分大小写)
24、 IP地址
a) 测试必填:输入中英文空格或者不输入任何信息==给予提示信息,不允许提交
b) IP地址 前中后含空格–中间不允许包含空格
c) 要求是4位,输入小于4位或者大于4位格式–给予提示信息,不允许提交
d) 4位中有任意一位大于255(测试每一位)–给予提示信息,不允许提交
e) 第一个数字或者最后一个数字为0–给予提示信息,不允许提交
f) 其中某一位超过4个数字–给予提示信息,不允许提交
g) 特殊的IP
h) 正确的ip地址中混入非法字符/中文/英文—给予提示信息,不允许提交
25、 菜单
a) 选择菜单是否可以正常工作,并与实际执行内容一致
b) 是否有错别字
c) 快捷键是否重复
d) 热键是否重复
e) 快捷键与热键操作是否有效
f) 是否存在中英文混合
g) 菜单要与语境相关,如,不同权限的用户登陆一个应用程序,不同级别的用户可以看到不同级别的菜单并使用不同级别的功能
26、 日期格式
a) 输入正确的日期 (年日月形式)
b) 测试对日期数据的溢出是否进行了控制?
c) 测试是否对日期型数据进行了格式化输入?
d) 测试是否对时间型数据是否进行了格式化输入?
27、 分页
a) 输入页数,点击go按钮,测试是否能执行翻页操作
b) 点击首页、上一页、下一页、未页,测试各页面转换是否正常
c) 测试在各边界面值再进行翻页是否正确
d) 输入页数,点击go按钮,测试是否对所输入的页数进行了判断
e) 对数据操作(增删)后是否正确显示数据
f) 搜索后执行翻页,是否正确
28、 提交/确定按钮
a) 对于提交/确定按钮,点击后,数据是否成功处理,页面跳转是否正确;
b) 连续点击提交/确定按钮页面如何处理,注意连续提交时操作要快,达到签个提交尚未处理完成,点击下一个提交,程序如何处理,是否报错
c) 对于取消按钮,点击“取消”按钮后,查看数据有没提交。
29、 后退按钮
a) 对于页面的操作,要注意测试下浏览器上的后退按钮操作,查看下做完操作后点击后退按钮后,之前的操作是否会撤销?
b) 连续点击后退按钮,查看页面会做何种处理,是否会报错
c) 比如已经退出登录的页面,点击后退按钮,页面是否仍是登录状态
d) 对于有返回键的页面,对于已经成功提交的记录,点击返回键后,看如何处理之前的操作
e) 对于有连续返回键的页面,连续点击返回键,页面如何处理,是否报错
30、 链接测试
a) 首先,测试所有链接是否按指示的那样确实链接到了该链接的页面
b) 其次,测试所链接的页面是否存在
c) 最后,保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问
31、 session超时/失效
a) 登录后长时间不操作,session超时,查看页面跳转
b) 这涉及所有需要登录的才能操作的页面
c) 测试这种情况的简便方法:登录网站,将需要测试的页面Page1在另一个标签中打开,然后再在原来的页面中退出登录,此时session已经失效;这样再去操作Page1,即可达到session失效或超时的条件
32、 列表及翻页功能测试
a) 对于页面中的各项列表,都要测试其翻页功能,不仅要注意测试各个翻页相关按钮(注意:tab键,enter键的测试),特别是首页,尾页
b) 还要测试当该列表中含有的页数超过5页,10页甚至更多页的情况;同时要验证5页以后,或者10页以后,或者很多也以后的页面是否正常