
探索性测试(Exploratory Testing)是一种与脚本测试截然不同的方法。它强调测试人员的主动探索、边测边学、快速适应。与按部就班的脚本测试相比,探索性测试更灵活、更有创造力,能发现意料之外的问题。
探索性测试的核心是"探索"与"学习"的循环。测试人员通过探索系统,了解其行为;通过学习到的知识,指导下一步探索。这种迭代方式让测试更接近真实用户的使用方式,往往能发现脚本测试遗漏的问题。
charter(章程)是探索性测试的核心工具。它定义了测试范围、时间限制、探索目标。一个典型的charter包括:测试目标、关键特性、风险区域、时间分配。charter让探索有方向,而不是漫无目的的点击。
session是探索性测试的时间单位。通常每个session 30-90分钟。session开始时选择一个charter,然后深入探索,session结束时记录发现和下一步想法。Session-based Test Management(SBTM)是管理探索性测试的流行方法。
好的探索性测试人员需要"测试员的天赋":好奇心、洞察力、创造力。好的探索者会问"如果这样会怎样"然后去验证,会注意异常行为并深入探究。这种特质部分是天生,部分可以通过练习培养。
漫游测试是常见的探索性测试技术。沿着不同的用户体验路径漫游,如:城郊漫游(从主功能到边缘功能)、商业模式漫游(从付费功能到免费功能)、经典漫游(按典型用户路径)。不同漫游方式覆盖不同场景。
启发式是探索性测试的思考框架。如SE域模型(输入、处理、输出、存储、用户界面),帮助测试人员系统性地思考可能的测试点。将启发式作为检查清单,确保覆盖各个方面。
探索性测试不是不需要文档。好的探索性测试人员会记录测试过程、发现、风险点。这些记录是重要的知识资产,可以指导回归测试,也是问题讨论的基础。
探索性测试与脚本测试是互补关系。脚本测试覆盖已知的、稳定的场景,提供快速回归。探索性测试覆盖未知的、变化的方向,发现新问题。两者结合,构建完整的质量保障。