前文讲过,探索式测试能为平常的生活带来浪漫因子,在浪漫一段时间后,新奇感消失,但效果仍在,探索式测试与日常测试真正融为一体,深刻作用于产品质量保证,共同演奏出协奏曲。
接着上篇,我们来讲下集成测试和上线前测试的两个环节中的探索式测试。
集成测试阶段,各项功能(FT)都合入,且经过了测试,质量趋于稳定。也正是因为这种合入,可能导致新旧功能之间产生不可知的影响。因此集成测试应该是一次完整的质量体检。我们的集成测试分成三个部分:指南测试、专项测试、系统探索。
1.1 指南测试
在探索式测试基础方法中有一种方法叫做指南针测试法,就是根据需求来做测试。我们把验证需求实现的用例称之为一级基础用例。因此指南测试其实也是用例测试,不过这个用例只是基础用例,覆盖了基础需求,只包含正常逻辑的用例。
举例来说 QQ 浏览器(iPhone)各个模块完整用例共计 3700 多条,包含了需求验证类型不含覆盖安装的基础用例(1 级用例),也包含了其他的用例(2 级用例)例如模块之间复杂交互和极限情况的用例、覆盖安装用例等。
这个用例筛选可以从两个时机入手,第一个时机是在设计用例的时候,直接按照需求标识出 1 级用例和 2 级用例。如果一开始没有做这样的用例分级,可以再集成前测试人员先按照需求进行分级,再约上不同的开发负责人逐一进行评审,确保基础需求的验证用例没有遗漏。
在 QQ 浏览器(iPhone)实际测试中,700 条用例,5 个测试人力,大约需要 1 天的时间进行。
把 2 级用例中涉及覆盖安装的用例抽离出来,作为专项测试内容。如下图所示:
单独列出这项测试是因为移动 APP 的覆盖安装比较耗时,如果在指南测试中进行,将会不断出现等待升级的时间,我们将所有涉及覆盖安装的用例集中到一个时间段进行,通过一次升级就可以检查多个数据在新旧版本上的完整性和正确性。涉及到的探索式测试策略包括:上一版本测试法、快递测试法。
另外还有一个机型系统的适配问题,移动端的系统差异往往会影响其上的 APP 功能。实际集成测试每个测试人员负责的机型系统不同,因此我们还需要对一些核心功能进行全量的系统覆盖。也把这部分单独抽离出来作为专项测试。下图所示。涉及到的探索式测试策略包括:遍历测试法、超模测试法。
专项测试阶段在 QQ 浏览器(iPhone)上的耗时为 5 人 *0.5 天。
这个阶段在基础用例 + 覆盖安装用例之后,是一次大规模的探索式测试。
首先将浏览器基础特性作为一个维度,将各个 FT 作为另外一个维度,形成如下图所示的二维表。这个表的目的是将探索式测试的自由度限制在一个框架内,不至于偏离主题,在横纵交叉点中测试人员可以充分发挥自己的自由度去做 “边测试边设计” 的工作。这是二维表,还可以进一步演绎为多维表,将每个 FT 与整个浏览器乃至整个操作平台的特性关联起来,形成多维规划图。整个操作过程建议做测试记录和交流总结。
在 QQ 浏览器(iPhone)上的这个阶段耗时大约是 5 人 *1.5 天。
上线测试一般时间相对有限。我们的测试就分为检查点测试和风险点的测试。
###2.1 检查点测试 ###
检查点非常类似于集成测试中的指南测试,不过这里关注的是基础特性是否受到影响。如下表所示是 QQ 浏览器(iPhone)在上线前的检查点,基本涵盖基础功能验证。
每次提交上线,都有一些修改的代码,这些修改的代码涉及的影响点,也是上线前测试阶段探索式测试的着力点。
根据 svn 日志中查找修改点或者开发 PM 罗列出风险,或者像回归测试中的用到的精准测试那样输出测试点,以这些为测试章程进行测试,也即风险点测试。