什么是探索性测试?
什么是探索性测试?
探索性测试是一种软件测试类型,其中测试用例不会提前创建,而是测试人员即时检查系统。他们在测试执行前可能会记下要测试的想法。探索性测试的重点更多地放在将测试作为一种“思考”活动。
探索性测试在敏捷模型中被广泛使用,它关乎发现、调查和学习。它强调个人测试人员的个人自由和责任。
为什么进行探索性测试?
在脚本测试下,您首先设计测试用例,然后进行测试执行。相反,探索性测试是测试设计和测试执行同时进行的并行过程。
脚本测试执行通常是一种无需思考的活动,测试人员执行测试步骤并将实际结果与预期结果进行比较。这种测试执行活动可以自动化,不需要很多认知技能。
尽管当前软件测试的趋势是推动自动化,但探索性测试是一种新的思维方式。自动化有其局限性
脚本测试与探索性测试之间的区别
脚本测试 | 探索性测试 |
---|---|
根据需求指导 | 根据需求指导并在测试期间进行探索 |
提前确定测试用例 | 在测试期间确定测试用例 |
确认测试符合要求 | 调查系统或应用程序 |
强调预测和决策 | 强调适应性和学习 |
涉及确认测试 | 涉及调查 |
关于控制测试 | 关于改进测试设计 |
就像做演讲——你照着草稿念 | 就像对话——是即兴的 |
脚本在控制 | 测试人员的思维在控制 |
探索性测试技术
- 不是随机测试,而是有目的性地发现错误的即席测试
- 结构化且严谨
- 与脚本测试的程序结构相比,它在认知上(思考上)是结构化的。这种结构来自章程、时间盒等。
- 高度可教且易于管理
- 它不是一种技术,而是一种方法。您下一步执行什么操作取决于您当前正在做什么
如何执行探索性测试
以下是如何执行探索性测试(也称为基于会话的测试管理 (SBTM 循环))的分步过程
步骤 1) 创建缺陷分类法
- 对过去项目中发现的常见缺陷类型进行分类
- 分析问题或缺陷的根本原因
- 找出风险并提出测试应用程序的想法。
步骤 2) 测试章程
- 测试章程应建议
- 测试什么
- 如何测试
- 需要查看什么
- 测试思想是探索性测试的起点
- 测试章程有助于确定最终用户如何使用系统
步骤 3) 时间盒
- 此方法包括一对测试人员共同工作不少于 90 分钟
- 在这 90 分钟的会话中不应有任何中断
- 时间盒可以延长或缩短 45 分钟
- 此会话鼓励测试人员对系统响应做出反应并准备正确的结果
步骤 4) 审查结果
- 评估缺陷
- 从测试中学习
- 分析覆盖区域
步骤 5) 汇报
- 结果输出的汇编
- 将结果与章程进行比较
- 检查是否需要进行额外的测试
探索性测试最佳实践
在探索性执行期间,需要完成以下工作
- 测试任务应该非常明确
- 记录需要测试什么、为什么需要测试以及产品质量评估
- 跟踪探索性测试期间提出的问题和议题
- 最好将测试人员配对以进行有效测试
- 我们测试得越多,就越有可能为所需的场景执行正确的测试用例
记录和监控以下内容非常重要
- 测试覆盖率 – 我们是否记录了测试用例的覆盖率并改进了软件质量
- 风险 – 需要涵盖哪些风险,哪些是重要的风险?
- 测试执行日志 – 测试执行记录
- 问题/疑问 – 记录系统中的问题和疑问
更智能的探索性测试在更短的时间内发现更多错误。
探索性测试的优缺点
优点
缺点
- 此测试纯粹取决于测试人员的技能
- 受测试人员领域知识的限制
- 不适用于长时间执行
探索性测试的挑战
探索性测试存在许多挑战,具体如下所示
- 学习使用应用程序或软件系统是一个挑战
- 重现故障很困难
- 确定是否需要使用工具可能具有挑战性
- 确定要执行的最佳测试用例可能很困难
- 测试结果的报告是一个挑战,因为报告没有计划的脚本或用例来与实际结果或产出进行比较
- 记录执行期间的所有事件很难
- 探索性测试没有明确的测试用例可供执行,因此很难决定何时停止。
何时使用探索性测试?
探索性测试可在以下情况下广泛使用
- 测试团队拥有经验丰富的测试人员
- 需要早期迭代
- 存在关键应用程序
- 新测试人员加入团队
结论
在软件工程中,探索性测试用于克服脚本测试的局限性。它有助于改进测试用例套件。它强调学习和适应性。