测试是一种思维,包括情感思维和智力思维,情感思维主要体现在一句俗语:思想决定行动上(要怀疑一切),智力思维主要体现在测试用例的设计上。具有了这样的思想,就会找出更多的bug。(^_^个人认为,不代表官方立场)
对于一个web网站来说,主要从这么几个大的方面来进行测试:
1、 功能测试;2、 界面测试;3、 易用性测试;4、兼容性测试;5、 链接测试;6、 业务流程测试;7、 安全性测试
下面主要从以上七个方面进行叙述:
测试用例是测试的核心,测试用例的设计是一种思维方式的体现,在用例的设计中,用的比较多的方法是边界值分析法和等价类划分法,下面主要从输入框,搜索功能,添加、修改功能,删除功能,注册、登录功能以及上传图片功能等11个方面进行总结说明。
1、输入框输入框是测试中最容易出现bug的地方,所以在测试时,一定要多加注意。
控件类型 |
大分类 |
小分类 |
检查内容 |
输入框 |
字符型输入框 |
字符种类 |
英文全角字符 |
英文半角字符 | |||
数字 | |||
汉字 | |||
空或空格 | |||
特殊字符“~!@#$%^&*()_+-={}[]|\:;”’<>,./?;”等可能导致系统错误的字符,特别要注意单引号和&符号。 | |||
禁止直接输入特殊字符时,使用“粘贴”、“拷贝”功能尝试输入,并测试能否正常提交保存。 | |||
长度检查 |
最小长度-1 | ||
最小长度 | |||
最大长度 | |||
最大长度+1 | |||
输入超长字符:比如把整篇word文档copy过去 | |||
空格检查 |
输入的字符间有空格 | ||
字符前有空格 | |||
字符后有空格 | |||
字符前后都有空格 | |||
多行文本框输入 |
允许回车换行 | ||
保存后再显示能够保持输入时的格式 | |||
仅输入回车换行,检查能否正确保存;若能,查看保存结果。若不能,查看是否有正确提示 | |||
安全性检查 |
输入特殊字符串:null、NULL、 、javascript、<script>、</script>、<title>、<html>、<td>等 | ||
输入脚本函数:<script>alter("abc")</script>、document.write("abc")、<b>hello</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日] | |||
月输入[4、6、9、11月]、日输入[31日] | |||
输入非闰年,月输入[2月]、日输入[28日] | |||
输入非闰年,月输入[2月]、日输入[29日] | |||
(闰年)月输入[2月]、日输入[29日] | |||
(闰年)月输入[2月]、日输入[30日] | |||
月输入[0月] | |||
月输入[1月] | |||
月输入[12月] | |||
月输入[13月] | |||
异常值、特殊值 |
输入[空白(NULL)]或“~!@#$%^&*()_+-={}[]|\:;”’<>,./?;”等可能导致系统错误的字符 | ||
安全性检查同上 |
|
2、搜索功能
(1)比较长的名称是否能查到?
(2)空格 或空
(3)名称中含有特殊字符,如:' $ % & *以及空格等
(4)关键词前面或后面有空格
(5)如果支持模糊查询,搜索名称中任意一个字符是否能搜索到
(6)输入系统中不存在与之匹配的条件
(7)两个查询条件是否为2选1,来回选择是否出现页面错误
(8)输入脚本语言,如:<script>alter(“abc”)</script>等
3、添加、修改功能
(1)是否支持tab键
(2)是否支持enter键
(3)不符合要求的地方是否有错误提示
(4)保存后,是否也插入到数据库中?
(5)字段唯一的,是否可以重复添加
(6)对编辑页列表中的每个编辑项进行修改,点击保存,是否保存成功?
(7)对于必填项,修改为空、空格或其他特殊符号,是否可以编辑成功
(8)在输入框中,直接回车
(9)是否能够连续添加
(10)在编辑的时候,要注意编辑项的长度限制,有时,添加时有长度限制,但编辑时却没有(添加和修改规则是否一致)
(11)添加时,字段是唯一的,不允许重复,但有时,编辑时,却可以修改为相同字段(相同字段包括是否区分大小写以及在输入内容的前后输入空格)
(12)添加含有特殊符号或空格的内容
(13)对于有图片上传功能的编辑框,对于没有上传的图片,查看编辑页面时,是否显示默认图片,如果上传了图片,是否显示为上传图片?
4、删除功能
(1)输入正确数据前加空格,看是否能正确删除?
(2)是否支持enter键
(3)是否能连续删除多个产品?当只有一条数据时,能否成功删除?
(4)删除一条数据后,能否再添加相同的数据?
(5)当提供能一次删除多条信息的功能时,注意,删除的数据是否正确?
(6)不选择任何信息,直接点击删除按钮,看有什么错误提示?
(7)删除某条信息时,应该有错误提示信息
5、注册、登录模块
(1)注册成功,但登录失败:注册时,密码设置为一些特殊符号,但登录时,失败
(2)注册时,连续点击提交按钮
(3)注册成功后,页面应该以登录状态跳转到首页
(3)登录时,没区分大小写,注册时,是小写字母,但登录时,用大写字母也能登录进去
(4)登录时,当页面刷新或重新输入新数据时,验证码是否也随之更新
(5)对密码的修改,当把密码修改为很长,或含有特殊符号时,能够修改成功,但却不能成功登录。
6、上传图片测试
(1)文件类型正确,文件大小合适
(2)文件类型正确,文件大小不合适
(3)文件类型错误,文件大小合适
(4)文件类型和大小都合适,上传一个正在使用中的图片
(5)文件类型和大小合适,手动输入一个存在的图片地址来上传
(6)文件类型和大小合适,手动输入一个不存在的图片地址上传
(7)文件类型和大小都合适,手动输入图片名称来上传
7、返回键检查
(1)一条已经成功提交的记录,返回后再提交,看系统是否做了处理
(2)检查多次使用返回键的情况,在有返回键的地方,返回到原来页面重复多次,看是否会出错
8、回车键检查在输入结束后,直接按回车键,看系统处理如何,是否会报错
9、刷新键检查在web系统中,使用浏览器的刷新键,看系统处理如何,是否会报错
10、直接URL链接检查在web系统中,直接输入各功能页面的URL地址,看系统如何处理
11、其他(1)在测试时,有与网络有关的步骤必须考虑到断网的情况
(2)每个页面都有相应的页面title
(3)在测试的时候要尽量考虑在页面出现滚动条时(滚动条上下滚动下),页面显示是否正常
(4)URL不区分大小写
12、测试中,并发情况的考虑
总结了以下两种情况:
(1)某个字段是唯一的,当多个用户并发点击产生该字段时,检查系统是怎么处理的
(2)对于电子商务网站,当两个或多个用户并发购买量总和大于产品库存量时,能否购买成功
二、界面和易用性测试1、界面测试,主要测试网站的界面是否和设计一致,是否有错别字,页面布局是否合理,格式是否正确,是否有相应的错误提示信息等。
2、易用性测试,主要是考察所开发出的功能是否人性化,是否易用,是否符合大多数用户的使用习惯等。
3、对Tab和Enter键的测试。
三、兼容性测试兼容性测试不只是指界面在不同操作系统或浏览器下的兼容,有些功能方面的测试,也要考虑到兼容性,比如涉及到ajax、jquery、javascript等技术的,都要考虑到不同浏览器下的兼容性问题。
四、链接测试主要是保证链接的可用性和正确性,它也是网站测试中比较重要的一个方面。
五、业务流程测试业务流程,一般会涉及到多个模块的数据,所以在对业务流程测试时,首先要保证单个模块功能的正确性,其次就要对各个模块间传递的数据进行测试,这往往是容易出现问题的地方,测试时一定要设计不同的数据进行测试。
六、安全性测试(1)SQL注入
(2)XSS跨网站脚本攻击:程序或数据库没有对一些特殊字符进行过滤或处理,导致用户
所输入的一些破坏性的脚本语句能够直接写进数据库中,浏览器会直接执行这些脚本语句,破坏网站的正常显示,或网站用户的信息被盗,构造脚本语句时,要保证脚本的完整性。
document.write("abc")
<script>alter("abc")</script>
(3)URL地址后面随便输入一些符号
(4)验证码更新问题
以上就是对Web测试的一个总结,相信一定还存在某些的遗漏,欢迎大家指正、补充。