从思维导图看出把WEB测试点划分「功能性测试」和「非功能测试」,「功能性测试」主要由输入验证、增删改查、用户界面验证、业务逻辑组成,而「非功能测试」有安全性测试、性能测试、兼容测试。这里是把常见特点进行总结,如果是个别特性请自行查找资料。
输入验证
输入验证主要对输入框说明。
字符型输入框
字符输入
中文,英文全角、英文半角、数字、空或者空格或者回车、特殊字符(~!@#¥%……&*?[]{}”)。禁止直接输入特殊字符时,使用”复制+粘贴”尝试输入。
长度检查
最小长度、最大长度、最小长度-1、最大长度+1、输入超长字符。
空格检查
输入的字符间有空格、字符前有空格、字符后有空格、字符前后有空格。
安全性检查
(5)安全性检查:输入特殊字符串(null,NULL, ,javascript,<script>,</script>,<title></title>,<html></html>,<td></td>),输入脚本函数(<script>alert("abc")</script>),doucment.write("abc"),<b>hello</b>、sql注入)。
数值型输入框
边界值
最大值、最小值、最大值+1、最小值-1
位数
最小位数、最大位数、最小位数-1、最大位数+1、输入超长位数。
特殊字符
输入空白(NULL)、空格或"~!@#$%^&*()_+{}|[]:"<>?;',./?;:'-=等可能导致系统错误的字符。如果禁止直接输入特殊字符时尝试使用复制+粘帖是否能正常提交。
异常值
分母为0、科学计数法输入、货币型输入、8进制、16进制。
日期型输入框
合法性检查
当月份是1、3、5、7、8、10、12,日期输入0、1、31、32。
当月份是4、6、9、11,日期输入0、1、30、31日.
非闰年时2月,日期输入0、1、28、29;闰年时2月,日期输入0、1、29、30。
另外月份时尝试输入0、1、12、13。
时间的小时输入0、24、25;
时间的分钟输入0、60、61;
时间的秒数输入0、60、61;
特殊字符
输入空白或NULL、输入~!@#¥%……&*(){}[]
下拉框选择
选择检查
使用默认值、下拉选择某个值是否联动变化。
上传文件
上传格式检查
上传支持文件格式、上传不支持文件格式
上传文件大小
每个文件能上传大小、一次能上传多少张图片、
来源检查
本地电脑、网络
增删改查
增加/修改
增加/修改功能输入数据,可参考上面所提及输入验证。以及注意思维导图「新增/修改数据」提及四点。
查询
单一查询
输入框是否支持模糊查询,如果支持模糊查询,任意输入一个要所搜索内容的字符是否能搜索到。输入系统不存在记录的条件。输入框输入字母,是否支持大小写搜索。
组合查询
多个查询条件组合时,注意条件之间使用and 、or。
删除
留意思维导图「删除数据」提到4点。
用户界面验证
主要包括系统UI整体布局、颜色搭配、字体、文字、图片、操作按钮等所有UI元素。
非功能性测试
主要划分兼容性测试、性能测试、安全性测试。在日常测试中也会需要进行兼容性测试,详细讲解兼容性测试。而性能测试和安全测试由专门人员测试,所以比较粗略带过。
兼容性测试
兼容性测试是指对设计程序与硬件、软件之间的兼容性测试。可以分为三大类:
- 软件兼容
- 硬件兼容
- 数据兼容
软件兼容
- 操作系统/平台。软件能运行在哪些操作系统/平台,软件在每个操作系统上运行如何。
- 不同浏览器的兼容。同一个软件在不同浏览器运行,是否出现UI页面挤压、排版不一致。
- 应用软件兼容。软件在运行需要其他软件进行交互,不能造成其他软件运行错误或本身不能正常运行。例如:点击word文档超链,正常会打开浏览器跳转其链接。假如出现浏览器崩掉,说明交互有问题。
- 数据库的兼容。不同类型数据库兼容性,例如之前使用Oracle、现改为MySQL。
硬件兼容
- 与整机兼容。例如在本机能安装使用,在其他配置机器能否正常使用。
- 与外设兼容。如果软件需要访问外部设备,需要对外设的接口条调用进行测试。例如:需要访问打印机。
数据兼容
- 不同版本间的数据兼容。
安全性测试
安全性测试常用方法是:渗透测试。渗透测试常用策略有4种,如下:
- 外部测试策略。是针对外部可见的服务器和设备(包括:域名服务器DNS、Web 服务器或防火墙、电子邮箱服务器等等),模拟外部攻击者对其进行攻击,检查是否能被入侵,如果成功被入侵,会泄露哪些资料。
- 内部测试策略。内部测试是为了防止系统的内部员工对系统进行内部攻击,同时以此来制定系统内部员工的权限管理策略。例如:哪些员工对数据库操作权限,哪些员工对服务器哪些操作权限。
- 盲式测试策略。假定不了解软件系统内部信息情况下,只利用外部公共信息(如企业网站、域名、Github)收集关于目标的信息,模拟真实黑客的操作流程,来发现软件系统的漏洞。
- 定向测试策略。对于测试活动、测试目标及系统设计的信息十分清楚,针对特定组件、功能或接口进行测试。检查应用系统架构,防止用户绕过系统直接修改数据库;检查身份认证模块,防止非法用户绕过身份认证;检查接口参数,防止SQL注入。
性能测试
性能测试是通过测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。7种性能测试方法如下:
- 后端性能测试。是通过性能测试工具模拟大量的并发用户请求,然后获取系统性能各项指标,并且验证各项指标是否符合预期的性能需求的测试手段。
- 前端性能测试。前端性能关注的是浏览器端的页面渲染时间、资源加载顺序、请求数量、前端缓存使用情况、资源压缩等内容,进行有针对性的优化,最终达到优化终端用户在浏览器端使用体验的目的。
- 代码级性能测试。是指在单元测试阶段就对代码的时间性能和空间性能进行必要的测试和评估,尽早发现底层代码的效率问题。
- 压力测试。一般采用后端性能测试的方法,不断对系统施加压力,并验证系统化处于或长期处于临界饱和阶段的稳定性以及性能指标,并试图找到系统处于临界状态时的主要瓶颈点。
- 配置测试。主要用于观察系统在不同配置下的性能表现。
- 并发测试。在同一时间,同时调用后端服务,期间观察被调用服务在并发情况下的行为表现,旨在发现诸如资源竞争、资源死锁之类的问题。
- 可靠性测试。是验证系统在常规负载模式下长期运行的稳定性。
参考书籍和文章如下: