Web测试
测试内容:功能,性能,兼容,易用,安全等
测试方法:判定表,等价类,场景法等
测试手段:人工测试、工具测试、评估等
web测试更注重性能和安全测试
链接测试
-
该链接将用户带到它所说明的地方,所见即所得
-
该链接页面确实存在
-
保证web应用系统上没有孤立的页面,所谓孤立的页面是指没有链接指向该页面
链接指http://xxxxx
-
链接测试工具:Linkbot,Xenu
-
链接要精简,正确
表单测试
-
程序是否检验信息的正确性(可通过填写表单并提交,到数据库验证)(一条有效等价类即可)
-
每一个输入框都要考虑等价类,边界值,正交实验法(下拉框),判定表等
-
提交按钮
- 鼠标提交/键盘回车提交
- 双击提交,主要看会不会重复提交订单
- 弱网提交
- 同一账号多终端的情况提交
-
表单界面的测试
主要测试页面大小的变化会不会影响表单,文字环绕的问题
-
异常情况
- 提交不成功,是否还会保留已经填写的内容
- 有没有违反一些业务规则,如:只有积分大于500的才能提交订单,应该在填写表单前就判断积分数,不应该在打开表单后再判断积分数
cookie测试
cookie
就是web服务器在你访问网页时,会下载一个名为cookie的文件到你的机器上,该文件包含了你的电脑的各种信息以方便下次你访问时web服务器记住你,如:记住你输入的账号密码,下次打开网页时不用登录了
无论是屏蔽cookie还是选择性选择cookie,最后都要运行web的主要功能,指的是客户最常用的功能,优先级别最高的测试用例
cookie测试内容
- cookie是否起作用
- 刷新对cookie是否有影响
- cookie中账户重要信息是否加密
- cookie是否按预定的时间保存
cookie加密测试
需要使用fiddler抓包工具,抓包cookie的内容,查看cookie中有没有用户的隐私没有被加密的,如:密码未被加密
cookie安全内容检查
但不是所有的cookie都会被设置,因为设置这些属性会占用网页的资源
文件的上传测试
-
只能上传允许的附件类型
每一个文件类型都要测试,不得使用等价类
-
不能上传脚本和可执行文件
-
不能单纯以后缀名来判断文件类型
-
游览好文件后,将目标文件删除这种异常情况可以正常处理
选择好文件,还没传到服务器,先把源文件删了,再点击上传,看服务器是否有提示
-
上传超大文件时可以正常处理,如给出提示
上传文件大小要做边界值测试,如上传10M的文件,遥测9M,11M等,但是自己不好控制文件的大小,用工具->生成任意大小和格式文件.exe
-
上传的文件应该提供接口查看
-
上传的文件不应该直接保存在数据库中,而是存在服务器的硬盘中,而数据库中只应该保存该文件的路径或者说链接
-
文件上传到服务器端后应该被重命名,防止文件名冲突
如:给上传的文件加上时间戳或随机数
数据库测试
包含功能测试,并发测试,安全性测试
-
数据的一致性错误
表示没有数据回滚功能,没有条件限制,错误的记录被保存下来
数据库在插入数据或者执行批量语句时,要求有事务,保证处理数据的一致性,如果中间有错误,可以回滚
-
输出错误
如一张表单出现错误,那么可能整个输入输出都可能出现接口错误
数据源(利用抓包工具获取并判断)是正确的,但由于数据传输或设计导致指令错误
易用性测试
明确最终用户
• 服务器端用户
• 客户端用户
• 两个出错提示的比较
• 图形测试
• 图片的大小和显示
• 辅助功能测试
• 使用说明、导航、站点地图、帮助等
易用性测试—区域文化
• 如果测试将要本地化的产品,就需要仔细检查内容,以确保其适应使用该软件的地区。
• 美国人的日期显示通常为MM/DD/YYYY,如05/05/2011,而中国人通常不喜欢这样的显示方式,我们更喜欢显示为2011年5月5日。
易用性测试—考虑用户群体
• 儿童类:可爱,多用动画、图片,少文字。
• 少儿类:以传授知识为主,图片文字结合。
• 成年人:时尚,不能太单调,太土。
• 老年人:字大,字少。
• 商业:稳重的色彩
• 游戏:活泼的色彩
• 环保:绿色
• 女性:粉色
易用性测试—其他
• 不要出现水平滚动条。
• 重要信息或大纲级的内容需高亮显示
• 使用不同大小字体,以免找不到重点。
性能测试
主要包括:负载测试,压力测试,连接速度测试
目的:
- 测算系统的性能指标
- 找出系统的性能瓶颈
- 给出较合适的软硬件配置方案
- 检验硬件配置能否满足客户要求
兼容性测试
web服务器的版本
各种数据库的连接
系统的版本
游览器的配置
可以利用正交实验法
安全性测试
没有完全安全的系统,也就是说没有完全的安全性测试
- 认证与授权
- 用户只能访问被授权的模块和功能
- 权限的控制只能由系统管理员来维护,其他用户不能做任务修改
- 权限控制要细,最好细到增删查改这种功能上,并且不同模块有不同的权限
- 登录失败提示信息不能指定告诉用户是账号还是密码错误,避免用户用暴力破解
- URL访问漏洞,修改
- 文件上传漏洞
- 缓存溢出漏洞
- SQL注入
- XSS跨站攻击
- DDoS拒绝服务攻击