Web测试点总结
对于一个Web网站来说,主要从这么几个大的方面来进行测试:
1. 功能测试
2. 界面测试
3. 易用性测试
4. 兼容性测试
5. 链接测试
6. 业务流程测试
7. 安全性测试
1 功能测试
测试用例是测试的核心,测试用例的设计是一种思维方式的体现。在用例的设计中,用的比较多的方法是边界值分析法和等价类划分法。
下面主要从输入框,搜索功能,添加、修改功能,删除功能,注册、登录功能以及上传下载功能等方面进行总结说明。
1.1 输入框
输入框是测试中最容易出现bug的地方,所以在测试时,一定要多加注意。
类型 | 大分类 | 小分类 | 检查内容 |
输入框 | 字符型 | 字符种类 | 英文全角字符 |
英文半角字符 | |||
数字(注意实数和0) | |||
空或空格 | |||
特殊字符"~!@#$%^&*()_+{}|[]:"<>?;',./?;:'-=等可能导致系统错误的字符,特别要注意单引号和&符号 | |||
禁止直接输入特殊字符时,使用“粘贴”“拷贝”功能的尝试输入,并测试能否正常提交 | |||
长度检查 | 最小长度 | ||
最大长度 | |||
最小长度-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)、空格或"~!@#$%^&*()_+{}|[]:"<>?;',./?;:'-=等可能导致系统错误的字符 | ||
安全性检查 | 不能直接输入,就COPY |
1.2 搜索功能
查询条件为输入框则参考上面的输入对应的测试方法
类型 | 分类 | 检查内容 |
搜索功能 | 功能实现 | 如果支持模糊查询,搜索名称中任意一个字符是否能搜索到 |
比较长的名称是否能查到 | ||
输入系统中不存在与之匹配的条件 | ||
用户进行查询操作时,一般情况是不进行查询条件的清空,除非需求特殊说明 | ||
注意检查页面数据和数据库数据的一致性 | ||
组合测试 | 不同查询条件来回选择是否出现页面错误(单选框及多选框最容易出错) | |
根据数据呈现的时间精度,查询条件相应的应注意开始时间等于结束时间的情况 | ||
测试多个查询条件时,要注意查询条件的组合测试,可能不同组合的测试会报错,无需所有组合都测试,主要是挑用得较多的条件进行组合查询 |
1.3 添加、修改功能
类型 | 分类 | 检查内容 |
新增、修改功能 | 特殊键 | 是否支持tab键 |
是否支持enter键 | ||
提示信息 | 不符合要求的地方是否有错误提示 | |
唯一性 | 字段唯一的,是否可以重复添加,添加后是否能修改为已存在的字段(字段包括是否区分大小写以及在输入内容的前后输入空格) | |
数据正确性 | 保存后,数据是否真正插入到数据库中,注意保存后的数据正确性 | |
对编辑页列表中的每个编辑项进行修改,点击保存,是否保存成功,检查是否会更新到其他数据 | ||
进行必填项检查,注意系统所做的操作(即是否给出提示及提示后是否依然把数据存到数据库中;是否提示后出现页乱错等情况) | ||
是否能够连续添加(针对特殊需求而定) | ||
在编辑的时候,要注意编辑项的长度限制,有时,添加时有长度限制,但编辑时却没有(添加和修改规则是否一致) | ||
对于有图片上传功能的编辑框,对于没有上传的图片,查看编辑页面时,是否显示默认图片,如果上传了图片,是否显示为上传图片 | ||
新增或修改数据时,要注意相应查询页面数据的及时更新,特别是在测试首页显示时要注意数据更新 | ||
提交数据时连续多次点击,检查系统会不会连续新增多条一样的数据或报错 | ||
增、删、改完成后,注意数据的关联性,如修改新增部门后,添加用户时,其所属部门选项是否有新增的部门选项 | ||
结果列表中没记录或没选择某一记录时点击修改按钮,系统是否会抛异常 | ||
新增、修改信息时,多页面标签切换,保存成功后,数据是否与一致 | ||
新增、修改信息时,信息是已删除过的旧信息,是否能成功添加和修改 |
1.4 删除功能
类型 | 分类 | 检查内容 |
删除功能 | 特殊键 | 是否支持tab键 |
是否支持enter键 | ||
提示信息 | 不选择任何信息,直接点击删除按钮,看有什么错误提示 | |
删除某条信息时,应该有询问提示信息 | ||
数据实现 | 是否能连续删除多个产品 | |
当只有一条数据时,能否成功删除 | ||
删除一条数据后,能否再添加相同的数据 | ||
如系统支持一次删除多条信息的功能时,注意删除的数据是否正确 | ||
如有“全选”功能,要注意全选是否把所有数据删除 | ||
删除数据时,要注意相应查询页面数据的及时更新,特别是在测试首页显示时要注意数据更新 | ||
如删除的数据与其他数据有业务关联,要注意其关联性(例子:删除部门信息时,如部门下有相应员工,则应该给出提示) | ||
结果列表中没记录或没选择某一记录时点击删除按钮,系统是否会抛异常 |
1.5 注册、登录模块
类型 | 分类 | 检查内容 |
注册、登录功能 | 注册功能 | 注册时,密码设置为特殊符号,检查登陆时会否报错 |
注册成功后,页面应以登陆状态跳转到首页或指定页面 | ||
在注册信息中输入已删除的用户信息,检查能否注册成功 | ||
登录功能 | 输入正确的用户名和正确的密码 | |
输入正确的用户名和错误的密码 | ||
输入错误的用户名和正确的密码 | ||
输入错误的用户名和错误的密码 | ||
不输入用户名和密码/或均为空格 | ||
只输入用户名,密码为空/或为空格 | ||
用户名为空/或为空格,只输入密码 | ||
用户名、密码,若无特殊需求,一概不区分大小写 | ||
用户名和密码包括特殊字符 | ||
用户名和密码输入超长值 | ||
已删除或已禁用的用户名和密码 | ||
密码能否复制、粘贴 | ||
登录成功后页面Url是否暴露了传输给数据库的用户名和密码 | ||
注意用户登录是否有有效期设定,有则检查其正确性 | ||
是否支持Tab、Enter键 | ||
登录时,当页面刷新或重新输入新数据时,验证码是否也随之更新 |
1.6 文件上传
类型 | 分类 | 检查内容 |
上传功能 | 功能实现 | 文件类型正确,文件大小合适 |
文件类型正确,文件大小不合适 | ||
文件类型错误,文件大小合适 | ||
文件类型和大小都合适,上传一个正在使用中的图片 | ||
文件类型和大小合适,手动输入一个存在的图片地址来上传 | ||
文件类型和大小合适,手动输入一个不存在的图片地址上传 | ||
文件类型和大小都合适,手动输入图片名称来上传 | ||
上传不支持上传的文件。常见文件格式后缀名: 1. txtpdfchm 2. rarzipisoexe 3. bmpjpggifpsdpng 4. xlsdocpptxlsxdocxpptx 5. mp3wmamp4midavi
mvb
m 6. batakvbshtmlhtmaspxaspjavasqlmdfldfmdb | ||
不选择文件直接点击上传,检查是否给出提示 | ||
能否上传空文件,即0字节大小的文件 | ||
注意上传文件,其内容格式不符合系统要求时,是否给出了合理提示 | ||
上传重复文件,是否有覆盖提示 | ||
上传大文件,等待过程中是否有良好提示 | ||
连续多次选择不同文件,检查系统是否上传最后选择的文件 | ||
手工输入文件路径 | ||
选择多文件时,是否能正常上传 |
1.7 文件下载
类型 | 分类 | 检查内容 |
下载功能 | 功能实现 | 检查用户是否具有下载权限 |
检查下载的文件的正确性 | ||
若有打开选项,检查能否直接打开 | ||
打开进行编辑,保存后,再次打开该文件,检查是否修改了文件内容 | ||
检查磁盘不足时下载情况 | ||
下载大文件,等待过程中是否有良好提示 | ||
下载重复文件至同一目录,是否有覆盖提示 | ||
手工输入文件路径 | ||
选择多文件时,是否能正常下载 |
1.8 文件导入
类型 | 分类 | 检查内容 |
导入功能 | 功能实现 | 文件类型正确,数据字段合适 |
文件类型正确,数据字段不合适 | ||
文件类型错误,数据字段合适 | ||
文件类型和数据的字段都合适,上传一个正在使用中的图片 | ||
文件类型和数据字段合适,手动输入一个存在的图片地址来上传 | ||
文件类型和数据字段合适,手动输入一个不存在的图片地址上传 | ||
文件类型和数据字段都合适,手动输入图片名称来上传 | ||
上传不支持上传的文件。常见文件格式后缀名: 1、txtpdfchm 2、rarzipisoexe 3、bmpjpggifpsdpng 4、xlsdocpptxlsxdocxpptx 5、mp3wmamp4midavi
mvb
m 6、batakvbshtmlhtmaspxaspjavasqlmdfldfmdb | ||
不选择文件直接点击导入,检查是否给出提示 | ||
能否导入空文件,即0字节大小的文件 | ||
注意导入文件,其内容格式不符合系统要求时,是否给出了合理提示 | ||
导入重复文件,是否有覆盖提示 | ||
导入大文件,等待过程中是否有良好提示 | ||
连续多次选择不同文件,检查系统是否导入最后选择的文件 | ||
文件中包含部分错误数据,是否给出合理的提示 |
1.9 文件导出
类型 | 分类 | 检查内容 |
导出功能 | 功能实现 | 检查用户是否具有导出权限 |
检查导出的文件的正确性 | ||
打开进行编辑,保存后,再次打开该文件,检查是否修改了文件内容 | ||
导出大文件,等待过程中是否有良好提示 | ||
导出重复文件至同一目录,是否有覆盖提示 | ||
客户端空间不足的情况 | ||
导出的时候用打开的方式系统会怎么处理 | ||
当时查不到数据时,导出的数据会不会出现乱码 | ||
当加上查询条件进行查询再进行导出操作时,导出的数据是否正确 | ||
导出所有数据,检查数据的正确性及是否把不应该导出的数据导出 |
1.10 查询结果列表
类型 | 分类 | 检查内容 |
查询结果列表 | 功能实现 | 列表列宽是否合理 |
列表数据太长有没有提供横向滚动 | ||
列表的列名与列的内容没有正确对应 | ||
列表的每列的列名描述不清晰 | ||
列表把不必要的列都显示出来 | ||
无数据时,列表是否有合理提示,翻页控件是否正常 | ||
点击某列进行了排序,是否只对当前页进行了排序,而不是排序了所有查询结果 | ||
双击或单击某列信息是否会报错 | ||
多页数据时,进行中间某页,此时修改查询条件。数据和翻页控件信息就相应进行更新 | ||
1.11 返回键检查
(1)一条已经成功提交的记录,返回后再提交,看系统是否做了处理
(2)检查多次使用返回键的情况,在有返回键的地方,返回到原来页面重复多次,看是否会出错
1.12 回车键检查
在输入结束后,直接按回车键,看系统处理如何,是否会报错
1.13 刷新键检查
在web系统中,使用浏览器的刷新键,看系统处理如何,是否会报错
1.14 直接URL链接检查
在web系统中,直接输入各功能页面的URL地址,看系统如何处理
1.15 其他
(1)在测试时,有与网络有关的步骤必须考虑到断网的情况
(2)每个页面都有相应的页面title
(3)在页面出现滚动条时(滚动条上下滚动),页面显示是否正常
(4)URL不区分大小写
(5)某个字段是唯一的,当多个用户并发点击产生该字段时,检查系统是怎么处理的
(6)电子商务网站,当两个或多个用户并发购买总和大于产品库存时,能否购买成功
(7)1测试数据避免单纯输入“123”或“aa”之类的数据,让测试数据尽量接近实际。
(8)进行测试时,尽量不要用超级管理员进行测试,尽量使用自己新增的用户。
(9)多个测试人员同时对系统进行测试时,尽量不要同时使用一个用户。
(10)做功能测试时,也要注意系统的性能(如操作的响应时间、内存使用情况等)
2 界面测试
2.1 易操作性
用性包含易理解性、易学习性和易操作性;即易用性是指在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。
类型 | 检查内容 |
操作易用性 | 菜单和右键快捷菜单深度控制在三层以内 |
界面要支持键盘自动浏览按钮功能,即按Tab键的自动切换功能 | |
界面上首先应输入的和重要信息的控件在Tab顺序中应当靠前,位置也应放在窗口上较醒目的位置 | |
Tab键的顺序与控件排列顺序要一致,目前流行总体从上到下,同时行间从左到右的方式 | |
默认按钮要支持按Enter键执行下一步操作,即按Enter后自动执行默认按钮对应操作 | |
打开一个新界面,光标默认停留在第一个待输入的文本框中 | |
输入控件检测到非法输入后应给出提示,并能自动获得焦点 | |
界面的必填项必须以红色*号标识出来 | |
当选择下拉框不存在默认值时,默认为“请选择”;当存在默认值时,显示默认值 | |
复选框和单选框要有默认选项,并支持Tab选择 | |
界面空间较小时使用下拉框而不用选项框 | |
可输入/选择框以正常色显示;不可输入/选择框以灰色显示 | |
对可能造成数据无法恢复的操作,必须提供确认信息,给用户放弃选择的机会 | |
操作成功后给予成功提示信息 | |
需要后续操作的操作,在成功后给予下一步如何操作的提示信息 | |
提示信息不宜太长,超过当前窗口的1/2的,视具体情况进行换行 | |
对可能造成等待时间较长的操作,应该提供等待提示和中途取消功能 | |
与系统采用的保留字符冲突的要加以限制 | |
有些读入数据库的字段不支持中间有空格,但用户切实需要输入中间空格,这时要在程序中处理 | |
当子窗体的任何操作影响了父窗体的数据时,子窗体关闭返回必须刷新父窗体数据 | |
关闭父窗体必须连同子窗体一同关闭 | |
子窗体的大小最好不要超过父窗体,且最好不要遮住父窗体的主要信息 | |
如果存在多层嵌套窗口,每层窗口弹出时都自动往右下移动一点点,以保证不遮盖上层窗口标题为准 | |
当输入的内容达到了字段的长度限制时,应控制不允许再输入 |
2.2 友好性
屏幕对角线相交的位置是用户直视的地方,正上方四分之一处为易吸引用户注意力的位置,在放置窗体时要注意利用这两个位置。
类型 | 检查内容 |
友好性 | 登录界面上要有本产品的标志,同时包含公司图标 |
主界面,最好是大多数界面上要有公司图标 | |
公司的系列产品要保持一致的界面风格,如背景色、字体、菜单排列方式、图标、按钮字面描述、时间控件、翻页控件、人员或部门选择控件等应该一致 | |
帮助文档中应有版权和产品信息 | |
必须要能自适应1024*768、800*600两种分辨率 | |
默认窗口设置下,不应出现水平、垂直滚动条 | |
正在操作的页面,其标题应高亮显示,来和其他未被操作页面相区别 | |
长宽接近黄金点比例,切忌长宽比例失调、或宽度超过长度 | |
布局要合理,不宜过于密集,也不能过于空旷,合理的利用空间 | |
按钮大小基本相近,忌用太长的名称,免得占用过多的界面位置 | |
按钮的大小要与界面的大小和空间要协调 | |
避免空旷的界面上放置很大的按钮 | |
放置完控件后界面不应有很大的空缺位置 | |
字体的大小要与界面的大小比例协调, 通常使用的字体为中宋体9-12 | |
使用颜色时,主色要柔和,具有亲和力,坚决不用刺目的颜色 | |
界面风格要保持一致,字的大小、颜色、字体要相同,除非是需要艺术处理或有特殊要求的地方 | |
如果窗体支持最小化和最大化或放大时,窗体上的控件也要随着窗体而缩放;切忌只放大窗体而忽略控件的缩放 | |
父窗体或主窗体的中心位置应该在对角线焦点附近 | |
子窗体位置应该在主窗体的左上角或正中 | |
多个子窗体弹出时应该依次向右下方偏移,以显示窗体出标题为宜 | |
提示信息如有主语,请统一为‘您’ | |
提示信息中标点符号请统一为全角符号 | |
表头水平/垂直居中对齐 | |
表单中内容如为定长,则为居中显示;如为不固定的中英文内容,则为居左显示;如为数值形式,则为居左显示 | |
保证表格的宽度不被挤变形,对于不定长的内容,可固定显示宽度,当超出此显示宽度后,以……显示,光标停留后,详细内容再在浮动层显示 |
3 兼容性测试
兼容性测试不只是指界面在不同操作系统或浏览器下的兼容,有些功能方面的测试,也要考虑到兼容性,比如涉及到ajax、jquery、javascript等技术的,都要考虑到不同浏览器下的兼容性问题。
4 链接测试
主要是保证链接的可用性和正确性,它也是网站测试中比较重要的一个方面。
5 业务流程测试
业务流程,一般会涉及到多个模块的数据,所以在对业务流程测试时,首先要保证单个模块功能的正确性,其次就要对各个模块间传递的数据进行测试,这往往是容易出现问题的地方,测试时一定要设计不同的数据进行测试。业务流程要注意数据的走向及正确性、关联性。
6 安全性测试
(1)SQL注入
(2)XSS跨网站脚本攻击:程序或数据库没有对一些特殊字符进行过滤或处理,导致用户
所输入的一些破坏性的脚本语句能够直接写进数据库中,浏览器会直接执行这些脚本语句,破坏网站的正常显示,或网站用户的信息被盗,构造脚本语句时,要保证脚本的完整性。
document.write("abc")
<script>alter("abc")</script>
(3)URL地址后面随便输入一些符号
(4)验证码更新问题