如何进行探索式测试
1、从产品需求文档(PRD)和原型等文档中获取需要测试的范围和深度,识别软件的根本目的,确定需要测试的核心功能点。
2、与项目组产品、开发人员沟通,获取更多业务信息和系统架构信息,以确定更多的风险点。
3、与其他测试人员沟通,确定风险点最高的模块或功能点。
4、制定探索式测程(Session):测程表(Session Sheet)、时间盒(Time Box)、主题(Charter)。(可参见Session-Based Test Management)
5、执行探索式测试计划,在此过程中边测试、边学习、边设计、边思考,并根据具体情况随时更改测试策略。
6、测试的过程中记录软件逻辑,发现 BUG,给开发人员建立缺陷。
基于旅行者的全局探索性测试方法
我们可以将软件的测试比做是去一个城市的旅游。那么我们如何快速的去到我们想去的地方呢?一个办法就是我们对这个城市很熟悉。另外一个办法就是找一个导游或者一份地图,用来指导我们去在这个城市旅游。
对于软件测试来说,我们同样需要对被测软件很熟悉,同时也需要一份测试地图或者测试指南,来帮助我们更好的探索性测试。
拿到地图后,我们可以根据地图将城市按照功能分为各种区域,而每个区域对应软件相应的功能。比如:
商业区:销售特性,对应软件包装上面的对应特性,类似我们的需求。
历史区:继承特性,上一个版本遗留下来的代码、问题或则曾经出现多次 BUG 的功能或者特性。
旅游区:噱头特性,即对应产品的新特性,能够去更好的吸引新的用户。
娱乐区:辅助特性,对应软件的辅助特性和功能,可以做完补充测试。
旅馆区:平台或维护特性,对应软件内部的一些交互,不一定是由用户来触发的。
破旧区:问题高发区,对应软件的历史稳定的代码,一般很少人去接触。
每个区都有特定的测试方法,有兴趣的朋友可以去买『探索式软件测试』这本书详细了解。
这里我们拿「Web 应用升级部署」来实践该方法。
1.首先,我们先了解需要测试的模块、功能点以及相关的内部逻辑。
2.然后,我们根据项目的时间确定本次测试的主题和范围,创建一次探索式测试计划,如下图:
1.执行探索式测试计划,在测试的过程中按照旅行者测试方法的思路来创建用例:
按照旅行者测试方法的区域写出当前区域可能会发生的问题,然后套用每个区域的方法引申出更多的潜在问题,并依此进行测试。
1.记录用例的测试结果:
1.测试完毕
哪个测试点出了问题,那么我们就应该重视该问题,并在此基础上发散,比如:
「系统重启后应用无法启动」,我们知道了是因为磁盘没有挂载,导致启动失败,那么服务器防火墙被重置是否也会造成无法启动呢?那么这个问题将在下次测试的时候执行。
最后,来看下我们的探索式地图的设计:
可以看到通过探索性测试方法已经分析出来了一些测试点,探索性测试另外一个重要的地方就是边测试边写测试点,过程中不断分析、不断学习,然后行程新的探索性测试点,这样才能完成一次成功的探索性测试。
另外还有局部探索式测试和混合探索式测试方法,本文因篇幅问题将不展开论述。
结论
探索式测试试图把制定计划,进行测试,重新制定计划等多个过程有机地结合起来,每次只前进一小步,但这每一步都是由软件过去和当前的运行状况,软件在测试时表现出来的各种行为和软件运行时留下的种种蛛丝马迹来即时确定的。有效地利用探索式测试技术可以帮助我们发布一个高质量的软件产品。
作者为 飞蛾测试 高级测试工程师
发表评论