- 在探索性测试中,我们设计和执行测试是实时的。那么我们应该怎样组织我们的思维以使我们能思考出有价值的测试?有一种方式就是通过使用启发式方法(heuristic)和记忆式方法(mnemonics)进行。启发式方法是一种“依据经验法则,简单化或有依据的猜测”。举个例子,在房间门口的地毯下找出钥匙就是一种启发式方法。相比之下,记忆式方法是用一种“用词语,押韵,或其它的记忆方法来将复杂而又冗长的信息进行有效记忆的方式”。同时采用启发式方法和记忆式方法,对我们在压力下解决问题有非常大的帮助。
SFDPO诠释测试
- 在测试中我运用的启发式方法和记忆式方法可称为“San Francisco Depot”,或者称为SFDPO。这些字母代表着Structure, Function, Data, Platform和Operations。每个词代表着软件产品一个不同的方面。对于产品,思考以上提及的每个方面,会使我想起很多非常有趣的测试方法。所以当我被要求去测试一些我从没有见过的东西时,我会对自己说“San Francisco Depot”,回忆以上五个产品元素的每一个,然后开始思考我该测试些什么。
- Structure(它是什么):它有哪些文件组成?我了解它的构造信息吗?它是一个程序还是多个?它有哪些配套的材料?我能按模块划分来测试吗?
- Function(它能做什么):它的功能是什么?它有哪些错误处理呢?它有怎样的界面呢?它会做哪些用户不可见的事情?它与操作系统是怎样交互的?
- Data(数据是如何处理的):有哪些怎样的输入?输出又是什么样的?它能处于什么样的模式或状态?它是否会预先装载数据?输入是否对时间和顺序上一定的要求呢?
- Platform(它依附于什么):它运行于什么样的操作系统之上?环境需要以某些特别的方式进行配置吗?它依附于第三方组件吗?
- Operations(它是怎样被使用的):谁将使用它?它会在哪里被使用,怎么使用?它被用于做什么?用户有哪些特定的使用方式呢?我们能获取一些用户数据来帮助我们测试显得更真实些?
思想之光
- 通过使用如SFDPO这样的小技巧,我能非常快速的得到一些关于产品的想法。但是我不只喜欢速度,可靠性也是。在我发现SFDPO之前,我能想到很多测试的点子,但是我觉得这些点子是随机和散乱的。我没有方法来评估我分析的完整性。如今我掌握了启发式方法和记忆式方法,虽然我知道我仍然会忘记掉测试某些东西,但是至少我已经很系统地测过产品的主要方面。从测试方法到质量标准,我已经在每一件事情上使用启发式方法。
- 因为你知道的一些事情,并不会在它被需要的时候能被你想起,所以SFDPO不一个模板或测试计划,它仅仅是一种方法,在你测试的时候能使你产生很多重要的想法。它是你有用的工具包中的一部分。如果你想成为一名出色的、可靠的探索性测试人员,最关键的事情是开始收集和创造能对你有用的启发式方法库。同时,请记住,没有任何启发式智慧。智慧其实在你心中,启发式方法仅仅是唤起你心中的那些想法,如同一些排序好的认知闹钟,它并不能告诉你准确的行动步骤在何时何处。这就是技能和经验所在。
- 好的测试是一门微妙的艺术,对此你应该掌握一些有效的工具。
后记(译者)
- 一直以来,对探索性测试到底该怎么进行都心存迷惑。也看到过很多人感慨,对于一个陌生的软件,怎样能快速的发现bug这样一个问题感到没有思路,或许此文能提供些借鉴和参考
网友评论