web测试技术
目标
掌握功能测试点
掌握易用性测试点
理解性能测试点
掌握兼容性测试点
了解安全性测试
与传统测试异同点
- 相同之处
测试内容:功能、性能、易用性、兼容性、安全性等
测试方法:因果图法、边界值法、场景法等
测试手段:人工测试、工具测试、评估等 - 不同之处
web测试更加注重性能测试和安全性测试 - 传统测试
- 性能测试指标:cpu、内存等相同资源使用情况
- 安全性:用户管理,系统是否有超时限制,相关信息是否写进日志文件,是否可以追踪,服务器端的安全漏洞,信息是否加密等
- web测试
- 性能测试指标:事务响应时间(秒)系统处理能力(TPS)最大并发用户数等
- 安全性:XSS攻击、缓冲区溢出、SQL注入、拒绝服务等
功能测试
评价
软件是否正确实现了需求规格说明书中明确定义的需求
软件是否遗漏了需求规格说明书中明确定义的需求
软件是否将需求规格说明书中未定义的需求实现
软件是否对异常情况进行了处理,容错性好
软件是否满足用户的使用需求
测试点
链接测试
- 该链接将用户带到它所说明的地方。(所见即所得)
- 被链接页面存在(响应代码是200)
- 保证web应用系统上没有孤立的页面(孤立页面:没有链接指向该页面,只能通过输入网站进入)
- 链接测试工具:Linkbot、Xenu
- 编写有效的链接
- 用户想要的是链接通往何处的简短、精炼且正确的细节(只写中心思想)
表单测试
- 内容正确性,通过提交后的数据库内容或者返回的页面信息判断(填写信息,看是否真的有效)
- 每个字段的等价类和边界值测试(0.-1,7,一,等)
- 每个字段的类型和实际所接受的数据类型
- 页面是否有不该有的原代码(联系电话里面的代码)
- 必填项:(有没填的应该提示)
- 下拉列表的选择和可填性,如男,女(下拉选择和手动输入)
- 下拉列表的选择内容提供(客户类型里面的1)
- 单选框的独选性(选多个,按住ctrl键选多个等)
- 长文本的滚动条(最大容量)
- 文本框的格式化(住店日期:应该给出年月日)
- 提交按钮(正常提交,双击提交,回车提交,弱网提交:有没有返回值,根据业务规则的提交:积分超过500才能提交)
- UI
- 页面文字的正确性
- 页面缩放带来的文字环绕
- 界面输入框的可承载长度,超过最长长度是否不显示,被截断
cookie测试
cookie设置
测试方法
- 屏蔽cookie:将上图设置为阻止,清理所有cookie,然后运行web系统的所有主要功能
- 有选择性地拒绝cookie,某些cookie接受,web系统工作情况
- cookie加密测试
- cookie安全内容检查
httponly设置为true有助于缓解跨站点脚本威胁,防止cookie被窃取
secure设置为tue在传输时使用ssl连接,能保护数据在传输过程中不被篡改
测试点
- cookies是否起作用
- 是否按预定的时间进行保存
- 刷新对cookies有没有影响
- 关键信息是否保密
文件上传测试
- 只能上传允许的附件类型
界面上会有提示,根据提示每一个类型都测试到,选择一个没有提到的类型做无效等价类测试 - 不能上传脚本或者可执行文件
脚本.js 可执行.exe - 不能单纯以后缀名来判断文件类型
扩展名可更改,把.exe变成.txt迷惑服务器 - 浏览好文件后,将目标文件删除这种异常情况可以正常处理
选择了把文件删了,再上传文件,查看会不会在数据库中插入一个null,导致数据库出错 - 上传超大文件时可以正常处理,如给出提出信息等
提示上传文件小于20m,采用边界值测试 - 上传的文件应该提供接口查看
提供了图片的接口,让用户看到自己的数据 - 上传的文件不应该直接保存于数据库中,而是将文件保存在服务器端硬盘,而在数据库中保存该文件的基本信息
实体文件放在硬盘,数据库存在文本路径 - 文件上传到服务器端后应该被重新命名,防止文件名冲突
不能约束客户行为,当客户上传相同文件名,在上传服务器后,自动添加一些随机数,或者时间戳等,让服务器同一目录下文件不重名
数据库测试
- 数据库一致性错误
没有条件限制或回滚功能,错误的记录被保存下来
(事务:把一整批sql语句批量化执行,要么一次执行成功,执行到一一半就报错了,就全盘回滚到执行之前的状态)
防止数据库中的sql语句执行到一半出现数据库的脏数据 - 输出错误:数据源是正确的,但是由于数据传输或在程序设计中数据提取和操作的指令问题
例如:在月度销售总结报表中出现了数字错误,意味着整条链路会出现问题
表单输入-----insert语句-----数据库存储-----select语句------网络传输-------报表页面UI处理
需要一级一级确认 - 上面两种错误在基于黑盒的表单测试下错误现象是一样的,所以需要进一步确定问题是否是数据库错误
- 数据库涉及到并发测试和安全性测试
易用性测试
- 明确最终用户
- 服务器端用户
- 客户端用户
- 两个出错提示比较
- 图形测试
- 图片的大小和显示
- 辅助功能测试
- 使用说明、导航、站点地图、帮助等
性能测试
- 性能测试是检验系统性能是否符合要求的测试
- 性能测试包括压力测试、负载测试、连接速度测试
- 性能测试的目的:
- 测算系统的性能指标
- 查找系统的性能瓶颈
- 给出较适合的软硬件配置方案
- 检验硬件配置能否满足客户要求
- 自动化性能测试工具:LoadRunner、WebLoad、Apache、JMeter、WAS、ACT等
负载测试和压力测试的区别
- 负载测试时间早于压力测试
负载是找指标的过程
压力是超过指标直到崩溃的过程
兼容性测试—服务器端
- web服务器的版本
软件的兼容性 - 数据库的连接
- 客户端配置