什么是探索性测试?

⚡ 智能摘要

探索性测试是一种测试方法,测试人员无需预先编写脚本即可同时设计和执行测试用例,强调调查、学习和测试人员的直觉,以发现脚本化测试经常遗漏的缺陷,这种方法在敏捷开发中得到广泛应用。

  • 🔍 探索性测试的定义: 测试人员会根据实际情况设计和运行测试,而不是预先编写脚本。
  • ???? 与脚本化测试相比: 脚本化测试用于确认需求;探索性测试用于在测试过程中进行调查和调整。
  • 🧠 思考活动: 它强调学习、创造力和测试人员的直觉,以发现隐藏的错误。
  • 🗂️ SBTM流程: 缺陷分类、测试章程、时间限制、审查结果和总结汇报。
  • 适用人群: 需求缺失、早期迭代、关键应用和经验丰富的测试人员。
  • 权衡: 能发现更多漏洞并鼓励创造力,但非常依赖测试人员的技能。

什么是探索性测试

什么是探索性测试?

探索性测试 是一种软件测试,其中测试用例不是预先创建的,而是测试人员实时检查系统。他们可能会在测试执行之前记下要测试的内容的想法。探索性测试的重点更多地在于将测试视为一种“思考”活动。

探索性测试在敏捷模型中得到广泛应用,其核心内容是发现、调查和学习。它强调测试人员的个人自由和责任。

为什么要进行探索性测试?

在脚本化测试中,您首先设计测试用例,然后进行测试执行。相反,探索性测试是测试设计和测试执行同时进行的过程。

脚本化测试执行通常是一种无需思考的活动,测试人员只需执行测试步骤并将实际结果与预期结果进行比较即可。由于这种测试执行活动不需要太多的认知技能,因此可以实现自动化。

探索性测试

尽管软件测试的当前趋势是推动 自动化,探索性测试是一种新的思维方式。 自动化有其局限性

探索性测试

脚本测试和探索性测试之间的差异

脚本测试 探索性测试
以需求为导向 从需求出发,在测试过程中探索
提前确定测试用例 测试过程中测试用例的确定
确认测试符合要求 系统或应用调查
强调预测和决策 强调适应性和学习
涉及确认检测 涉及调查
关于控制测试 关于测试设计的改进
就像发表演讲一样——你照着草稿读 就像进行对话一样——它是自发的
脚本掌控一切 测试人员的思想在控制之中

探索性测试技术

  • 这不是随机测试,而是为了发现错误而进行的临时测试
  • 结构严谨
  • 与脚本测试的程序结构相比,它具有认知(思维)结构。这种结构来自宪章、时间限制等。
  • 易于教学和管理
  • 它不是一种技巧,而是一种方法。你接下来要做什么取决于你当前正在做的事情

如何执行探索性测试

以下是如何执行探索性测试的逐步过程,也称为基于会话的测试管理(SBTM 循环):

步骤 1)创建 Bug 分类法

  • 对过去项目中发现的常见故障类型进行分类
  • 分析问题或故障的根本原因
  • 发现风险并提出测试应用程序的想法。

步骤 2)测试章程

  • 测试章程应该建议
    1. 测试什么
    2. 如何测试
    3. 需要看什么
  • 测试思路是探索测试的起点
  • 测试章程有助于确定最终用户如何使用系统

步骤3)时间 Box

  • 该方法需要一对测试人员一起工作不少于 90 分钟
  • 90 分钟的会议期间不应有任何中断时间
  • 时间可以延长或减少 45 分钟
  • 本次会议鼓励测试人员对系统的响应做出反应,并为正确的结果做好准备

步骤4) Rev查看结果

  • 缺陷评估
  • 从测试中学习
  • 覆盖区域分析

步骤 5)汇报

  • 输出结果的汇编
  • 将结果与章程进行比较
  • 检查是否需要任何额外测试

最佳实践探索性测试

在探索性执行过程中,需要做以下工作:

  • 测试的任务应该非常明确
  • 记录需要测试的内容、测试原因以及产品质量的评估
  • Tracking 探索性测试过程中提出的问题和争议
  • 最好将测试人员配对,以进行有效的测试
  • 我们测试得越多,就越有可能针对所需的场景执行正确的测试用例

记录并监控以下内容非常重要

  • 测试覆盖率——我们是否记录了测试用例的覆盖率并提高了软件质量
  • 风险——需要承保哪些风险?哪些风险都是重要的?
  • 测试执行日志——测试执行的记录
  • 问题/疑问——记录系统上的问题和问题

更智能的探索性测试可以在更短的时间内发现更多错误。

探索性测试的优缺点

优势

  • 当需求文档不可用或部分可用时,此测试很有用
  • 它涉及调查过程,有助于发现比正常测试更多的错误-
  • 发现通常被其他测试技术忽略的错误
  • 通过执行越来越多的测试用例,帮助扩展测试人员的想象力,最终提高生产率
  • 该测试深入到应用程序的最小部分并涵盖所有要求
  • 该测试涵盖所有类型的测试,并涵盖各种场景和案例
  • 鼓励创造力和直觉
  • 测试执行期间产生新想法

缺点

  • 这种测试完全取决于测试人员的技能
  • 受限于测试人员的领域知识
  • 不适合执行时间较长

探索性测试的挑战

探索性测试面临许多挑战,如下所述:

  • 学习使用应用程序或软件系统是一项挑战
  • 失败很难复制
  • 确定是否需要使用工具可能具有挑战性
  • 确定要执行的最佳测试用例可能很困难
  • 报告测试结果是一项挑战,因为报告中没有计划的脚本或案例来与实际结果进行比较
  • 执行过程中所有事件的记录很困难
  • 探索性测试没有明确的测试用例要执行,因此很难决定何时停止。

何时使用探索性测试?

探索性测试可广泛应用于以下情况

  • 测试团队拥有经验丰富的测试人员
  • 需要早期迭代
  • 有一个关键的应用程序
  • 新的测试人员加入团队

常见问题

探索性测试结构化、目标明确,并使用测试章程和时间盒来查找缺陷,而临时测试则非正式且无计划。探索性测试有文档记录且可重复执行;临时测试通常没有。

探索性测试主要是一种手动、以思考为主导的活动,因为它依赖于测试人员的直觉和实时决策。然而,工具可以在测试过程中记录会话、捕获日志并支持文档生成。

SBTM 是一种结构化的方法,用于在限定时间内,按照既定规则开展探索性测试。测试人员记录测试结果,然后进行总结讨论,回顾测试覆盖率、缺陷以及是否需要进行更多测试。

人工智能通过提出测试思路、生成测试章程、分析日志中的异常情况以及识别未测试领域来支持探索性测试。它增强了测试人员的直觉,而不是取代探索性思维过程。

不。探索性测试依赖于人类的创造力、好奇心和领域判断力,而这些是人工智能无法完全复制的。人工智能可以通过处理重复性分析来辅助测试,但熟练的测试人员对于发现问题仍然至关重要。

总结一下这篇文章: