什么是探索性测试?
探索性测试是在没有测试用例情况进行的测试,可能会在测试执行前记录测试思路,更多是将测试作为一种 "思考 "活动。
探索性测试在敏捷模式中被广泛使用,它强调测试人员个人的自由和责任。探索式测试是测试设计和测试执行同时进行的过程。
虽然自动化是目前软件测试的的大势所趋,但探索性测试是一种新的思路。
如何进行探索性测试
- 创建Bug分类
- 对以往项目中发现的常见故障类型进行分类处理
- 分析问题或故障的根本原因
- 找出风险,制定测试思路。
- 制定测试计划
- 包含:测试内容、如何测试、注意点
- 测试思路是探索测试的起点
- 测试计划有助于确定最终用户如何使用系统。
- 时间盒
- 共同工作不少于90分钟。
- 不应该有任何中断的时间。
- 不时间盒可延长或缩短45分钟。
- 这个环节鼓励测试人员根据系统的反应做出反应,为正确的结果做准备。
- 审查结果。
- 对缺陷的评价
- 从测试中学习
- 覆盖区域分析
- 汇报情况。
- 汇编产出结果
- 将结果与计划进行比较
- 检查是否需要任何额外的测试
例如,在探索性执行过程中,需要做到以下几点。
- 测试的任务要非常明确
- 记下需要测试的内容、为什么要测试以及对产品质量的评估。
- 追踪探索性测试期间提出的问题;
- 测试结对一进行有效的测试。
- 测试得越多,就越有可能针对所需场景执行正确的测试用例。
以下内容是非常重要的。
- 测试覆盖率--我们是否对测试用例的覆盖率做了记录,提高了软件的质量
- 风险--哪些风险需要覆盖,哪些是重要的风险?
- 测试执行日志--测试执行过程中的记录。
- 问题/疑问--记下系统上的问题和疑问
传统测试和探索性测试的区别
探索性测试的特点:
- 不是随机测试,而是以发现bug为目的的专项测试。
- 结构严谨;
- 认知思维结构。
- 是高度可认知和可管理的
- 不是一种技术,而是一种方法。
优点
- 当需求文档不可用或部分可用时很有用
- 涉及到调查过程,这有助于找到比普通测试更多的bug。
- 发现通常被其他测试技术所忽略的错误。
- 通过执行越来越多的测试用例,帮助拓展测试人员的想象力,最终提高工作效率。
- 深入到应用程序的最小部分,并涵盖了所有的要求。
- 涵盖了所有类型的测试,它涵盖了各种场景和案例。
- 鼓励创造力和直觉
- 在测试执行过程中产生新的想法
缺点
- 对测试者的技术和领域知识要求较高
- 不适合长时间测试
探究性测试的挑战。
- 学习使用应用程序或软件系统
- BUG有时难以重现
- 时间有限,确定是否需要使用工具可能是一个挑战。
- 确定要执行的最佳测试用例是很困难的。
- 测试结果的报告是一个挑战,因为报告中没有计划好的脚本或案例来与实际结果或成果进行比较。
- 执行过程中的所有事件难以记录。
- 不知道什么时候停止测试,因为探索性测试没有明确的测试用例要执行。
什么时候使用探索性测试
- 经验丰富的测试人员
- 需要早期迭代
- 关键的应用
- 新的测试人员进入团队
结论
在软件工程中,进行探索性测试是为了克服传统测试的局限性。它有助于改进测试用例,对学习和适应性也有帮助。