网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
- Cookie 是否按预定的时间进行保存
- 开始时间:查看 Cookie 产生的时间
可以借助 IE 浏览器 Cookie 提示功能,或 Firefox 和 Chrome 浏览器的开发者工具- 结束时间:查看 Cookie 的有效期(Expires)
是否和设计文档一致,有效期是Session/会话表示未设置有效期,Cookie保存在内存,关闭浏
览器失效
- 刷新对 Cookies 有什么影响
在有效期内刷新没有影响 - Cookie 安全内容检查(属于安全性测试)
- Cookie 不能保存重要的有控制功能的数据,如是否已经登录的标志
- 关键数据是否加密
检查存储的 Cookie 文件内容,看是否有用户名、密码、手机号等敏感信息存储,并且未被加
密处理。
某些类型的数据即使是加密了也绝对不能存储在 Cookie 文件中 例如:网银交易中的信用卡
号和交易密码。- Cookie 过期日期设置 检查是否把 Cookie 的过期日期设置得过长
- HttpOnly 属性的设置 设置为 True 有助于缓解跨站脚本威胁,防止 Cookie 被 JS 脚本窃
取。- Secure 属性的设置 设置为 True,在传输 Cookie 时使用 SSL 连接,能保护数据在传输过
程中不被篡改。配合https协议使用。
3.4 Session 测试
- Session 的概念
- Session 通过在服务器端记录信息确定用户身份
- 当访问网站时,服务器会标示该访问者,给它一个 Session ID,当会话过期后就删除这个 SessionID
- Session ID 以响应的方式传递给客户端,以 Cookie 的形式保存在客户端中,客户端在后续的请求
中将保存该 Session ID 值的 Cookie 回传给服务器,服务器就可以用来对客户端的身份进行验证- Session 保存在服务器,Session 过多的时候会消耗服务器资源,所以大型网站会有专门的Session 服务器
- Session在服务器可以保存在文本文件,可以保存是数据库,也可以保存在内存里
- Session 的测试点
- Session 的过期时间设置是否合理,通常登录的会话有效期半小时左右
- Session 过期后是否客户端生成新的 Session ID
- Session ID 和 IP 地址绑定,避免 Session ID 被别人冒用
获取其他电脑的有效SessionId(如ECShop的ECS_ID),通过浏览器覆盖自己的SessionId看是否能冒用身份
3.5 文件上传测试
- 只能上传允许的文件类型和大小
- 不能上传脚本或可执行文件
- 不能单纯以扩展名来判断文件类型
- 上传超大文件时可以正常处理,比如给出提示信息等
- 浏览好文件后,上传前或上传过程中将目标文件删除这种异常情况可以正常处理
- 上传的文件应该提供接口查看
- 上传的文件不应该直接保存于数据库中,而是将文件保存在服务器端硬盘,数据库中保存该文件的基本信息。
- 文件上传到服务器端后应该被重命名,防止文件名冲突。
3.6 数据库测试
- 数据完整性
业务数据的存储和数据库设计文档一致
特别是前端页面无法确认的数据需要使用数据库查询的SQL去确认 - 数据一致性
数据库没有条件限制或回滚功能,错误的记录被保存下来。 - 输出错误
数据源是正确的,但是由于数据传输或在程序设计中数据提取和操作的指令问题。 - 数据库并发测试
- 数据库数据的增、删、改可以用于测试数据的准备
三、易用性测试
- 页面导航
- 页面内容
内容正确,合法,符合语法规则
排版整齐统一,字体和颜色统一
错误提示信息精确 - 图形测试 图片的大小和显示
- 辅助功能测试 使用说明,导航,站点地图,帮助等
- 快捷操作 Tab 切换输入框 Shift+Tab 倒序切换输入框 Enter 默认按钮
- 满足区域文化 文字,中英文混排要求英文单词前后有间隔,货币格式和单位,日期格式
- 考虑用户群体 儿童,男性,女性,老人
- 其他测试点
不要出现水平滚动条,要使用垂直滚动条
重要信息或大纲级的内容需高亮显示
使用不同大小字体,以免找不到重点
分辨率匹配
四、 性能测试
性能测试是检验系统的性能是否符合要求的测试
- 前端性能关注点
HTTP 连接数(并发数)
页面内容加载速度
外部脚本和 CSS 加载速度 - 后端性能测试
- 负载测试
在一定的软硬件及网络环境下,通过运行一种或多种业务在不同虚拟用户数量情况下,测试服务器的性能指标是否在用户的要求范围内,用于确定系统所能承载的最大用户数、最佳用户数以及不同用户数下的系统响应时间及服务器的资源利用率。 - 压力测试
在一定的软硬件及网络环境下,通过模拟大量的虚拟用户向服务器产生负载,使服务器的资源处于极限状态下长时间连续运行,以测试服务器在高负载情况下是否能够稳定工作。 - 容量测试
测试系统可处理同时在线的最大用户数,通常和数据库容量相关。
- 性能测试的目的
- 测算系统的性能指标
- 查找系统的性能瓶颈
- 给出较适合的软硬件配置方案
- 检验硬件配置能否满足客户要求
- 性能测试工具
LoadRunner
JMeter
五、兼容性测试
- 服务器兼容性测试
Web 服务器的版本 Apache,nginx
连接不同的数据库 Oracle,MySQL,SQL Server - 客户端兼容性测试
- 浏览器兼容性测试
浏览器的种类 独立内核(Chrome,Firefox,IE11),使用率高(Edge,360,QQ)
浏览器的配置测试:不同选项,安全设置
插件和脚本兼容性测试:Flash - 操作系统兼容性测试 Windows 11+Edge,macOS+Safari,Window 7+Chrome
- 分辨率 1024x768 1366x768 1920x1080(FHD 全高清 1080p) 2K 4K
六、安全性测试
- 认证与授权
- 认证测试
- 什么是认证
认证的目的是为了认出用户是谁
认证实际上就是一个验证凭证的过程
单因素认证
多因素认证 如验证码 (人脸识别 指纹识别 主要出现在App)
密码强度策略- 认证测试点
登录失败的错误提示消息不应该明确告知是用户名不存在还是密码错误,避免客户端使用暴力
破解方式。
绕开登录验证
必须要登录成功后才能访问的页面中都需要用 Session 对客户端进行验证,确认当前
Session 已经登录过,否则访问该页面时应该自动跳转到登录页面。 避免客户端直接在 URL
地址栏输入某个地址进行访问,绕开登录验证。
连续多次登录失败,应该暂停用户登录。并将该信息发送给系统管理员,并告知客户端的 IP
地址。
密码强度测试 登录时应该使用图片验证码,避免使用工具发送数据包。
- 授权测试
- 什么是授权
授权的目的是为了决定用户能够做什么- 授权测试点
用户只能访问被授权的模块和功能
用户不能通过直接输入URL地址的方式越权访问
水平越权
垂直越权
权限的控制只能由系统管理员来维护,其它用户不能做任何修改。
权限控制要细,最好细到增删查改这种功能上,并且不同模块有不同的权限。
- 文件上传漏洞
可以和文件上传的功能测试一起考虑
对文件类型进行过滤
不能单纯只是以文件的后缀名来进行类型的判断
文件上传的大小必须有限制 - 缓存溢出漏洞
缓存溢出即是功能性 Bug,又是安全性 Bug
两段代码比较
测试输入框时考虑超长输入 - SQL 注入
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
1714991144145)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!