Web测试
一、Web 测试的测试方法
二、测试范围
功能 、 性能 、 界面 、 兼容性 、 安全性 、 DB 、 文档
1、功能测试
功能测试主要从链接、表单、Cookies、设计语言、数据库、文件上传等方面进行。
1)链接
2)表单
3)Cookies
Cookies 能够让网站服务器把少量数据存储到客户端的硬盘或内存,或是从客 户端的硬盘读取数据的技术。
Cookie 有哪些用途?
- 自动登录,登录时,选择记住用户名,下次登录会自动带出用户名来。
- 广告精准投放,当我们用浏览器搜索过一些关键字,如:web 测试书,某 手机,打开浏览器时,会推送相关浏览过的商品。
查看 Cookies
打开 IE,在工具栏点工具→Internet 选项→常规→(Internet 临时文件)浏 览历史记录→设置,这样可以查看到 Cookies 所存位置,还可以对其进行 设置。
Cookies 的测试包含以下几个方面
4)设计语言
Web 设计语言版本的差异可以引起客户端或服务器端严重的问题,如使用哪 种版本的 HTML 等。 不同的脚本语言,如 Java、JavaScript、ActiveX、VBScript 或 Perl 等,也要进 行验证。
关于设计语言的测试,应该注意以下几个方面
5)文件上传
- 只能上传允许的附件类型;
- 不能上传脚本或可执行文件;
- 不能单纯以后缀名来判断文件类型;
- 浏览好文件后,可以正常处理删除目标文件时出现的异常情况;
- 上传超大文件时可以正常处理,比如给出提示信息等;
- 上传的文件应该提供接口查看;
- 上传的文件不应该直接保存于数据库中,而是将文件保存在服务器端硬盘,而 在数据库中保存该文件的基本信息;
- 文件上传到服务器端后应该被重命名,防止文件名冲突。
2、性能测试
1 )链接速度测试
链接的响应时间不能太长,一般不超过 5 秒。
2) 负载测试(Load Testing)
测试系统能够承受的最大负载(如最大用户量、最大业务量、最大数据量等)以及 性能表现。
3) 压力测试(Stress Testing)
测试系统在一定压力下的性能表现,通常业务的错误率不能超过 5%
3、界面测试 GUI(Graphical User Interface)即图形用户界面
1)格式验证
验证 Web 页面中一些空间默认的标准定义,如默认值、项目按顺序排列等。
2) 导航条测试
- 各页面导航条是否能正确地显示;
- 各页面下导航条显示的内容是否正确;
- 不同状态下(如登录与未登录),导航条显示的内容是否正确;
- 导航条的每项内容链接是否正确。
3) 拼写和语法测试
验证页面内容、菜单和链接、图片、表格内容的拼写和语法。
4) 页面排版测试
- 页面标题验证;
- 页面元素(文字、窗体、菜单、链接、公司商标等)排版验证;
- 页面图形验证;
- 页面版本信息验证;
- 不同分辨率下的页面显示情况验证;
- 页面长度验证。
3、安装性测试
1)基本安全性测试
2)认证测试
- 登录页面是否存在验证码,不存在说明存在漏洞。
- 验证码和用户名、密码是否一次性、同时提交给服务器验证,如果分开提交, 则存在漏洞。
- 在服务器端,只有在验证码检验通过后才进行用户名和密码的检验,否则存在 漏洞。
- 验证码是否为图片形式且在一张图片中,不为图片形式或不在一张图片中,说 明存在漏洞。
- 请求 10 次观察验证码是否随机生成,如果存在一定的规律(例如 5 次后出现 同一验证码)说明存在漏洞。
- 观察验证码图片中背景是否存在无规律的点或线条,如果背景为纯色(例如只 有白色)说明存在漏洞。
- 验证码在认证一次后是否立即失效。
- 服务器不能对认证错误提示准确的信息,如用户名错误、密码错误等。
- 提供合理的锁定策略。
- 预防认证被绕过,如 sql 注入。
3)会话管理测试
- 用户登录后,身份信息不再由客户端提交,而是以服务器端会话信息中保存的 身份信息为准。
- URL 中不能携带 Session ID 信息。
- 登录后的页面有明确的"退出"或"注销"按钮,注销时会话信息要清除。
4)权限管理测试
- 横向越权:攻击者尝试访问与他拥有相同权限的用户的资源。
- 纵向越权:一个低级别攻击者尝试访问高级别用户的资源。
5)文件和目录测试
- 不存在不需要对外开放的敏感接口或者接口进行了完善的权限控制;
- 禁止获取敏感的目录或文件信息;
- 所有对目录的访问均不能打印出文件列表;
- 禁止访问和下载文档的备份;
- 不能越权获取到不该获取的文件。 如 DirBuster 扫描。
4、数据库测试