—
前言
大家好,我是bug挖掘机。做测试10年,发现很多Bug是靠”意外”发现的,而不是按部就班的测试用例。这就是探索性测试的魅力。今天分享探索性测试的方法论和技巧。
—
一、什么是探索性测试?
定义
探索性测试是一种测试方法:
- 同时学习、设计、执行
- 不依赖预先编写的测试用例
- 强调测试人员的思维和经验
与传统测试对比
| 对比项 | 传统测试 | 探索性测试 |
|---|---|---|
| 用例 | 预先编写 | 边测试边设计 |
| 思维 | 按步骤执行 | 自由探索 |
| 覆盖 | 用例覆盖 | 思维覆盖 |
| 发现 | 已知问题 | 未知问题 |
—
二、探索性测试方法
Session-based测试
有组织的探索性测试:
yaml
测试Session:
时长: 60分钟
目标: 探索用户注册流程
关注点:
– 边界条件
– 异常输入
– 状态转换
启发式测试策略
使用启发式方法生成测试思路:
FEW HICCUPS模型:
- Functionality(功能)
- Error handling(错误处理)
- Workflow(工作流)
- Help(帮助功能)
- Interface(界面)
- Compatibility(兼容性)
- Configuration(配置)
- Unit(单元)
- Performance(性能)
- Security(安全)
—
三、探索技巧
边界值探索
- 刚好超出范围
- 极大值、极小值
- 空值、null值
状态转换探索
状态A –
状态B -> 状态A
(循环、跳转、异常终止)
错误猜测
基于经验猜测可能的Bug:
- 开发容易犯的错误
- 历史Bug高发区域
- 复杂逻辑处理
—
四、探索性测试实践
测试思维导图
使用思维导图组织测试思路:
├── 正常注册
│ ├── 邮箱注册
── 注册 ──├── 异常注册
│ ├── 重复注册
│ ├── 格式错误
└── 并发注册
Bug发现记录
markdown
Bug发现记录
| 时间 | 操作 | 预期 | 实际 | 严重程度 |
|---|---|---|---|---|
| 10:30 | 快速点击提交按钮 | 提交一次 | 提交多次 | 高 |
| 10:45 | 输入超长用户名 | 提示过长 | 页面崩溃 | 高 |
—
五、与自动化结合
探索发现,自动化覆盖
流程:
1. 探索性测试发现Bug
2. 分析Bug成因
3. 编写自动化用例覆盖
RunnerGo快速验证
将探索发现的问题快速验证:
- 在RunnerGo中复现
- 添加到自动化场景
- 防止回归
—
总结
探索性测试要点:
| 方法 | 用途 |
|---|---|
| Session-based | 有组织探索 |
| 启发式策略 | 生成测试思路 |
| 边界值探索 | 发现边界Bug |
| 错误猜测 | 经验驱动发现 |
—
下期预告:Web性能测试调优实战 – 从瓶颈定位到优化方案