这套模型非常简单,只有4个域(见下图),每个域有那么几条测试策略,每个策略可以用1到2个单词描述,把这些单词的首字母串起来就是上面蓝色字体的字符串也就是我们所说的引导词。
来解释一下启发式测试模型。我们在做测试设计时,首先想到的是要应用我们已有的测试技术(Test Techniques)并综合考虑项目环境(Project Environment)、产出物(Product element)、质量准则(quality Criteria)。这样我们就能够得到一个有基本保障的(看得到的)质量(Perceived Quality)
回到刚才所说的“测试一个纸杯”,我们目前能拿到的只有手中的“一个纸杯”,对照一下刚才所说的图,其实最先想到的应该是产出物(Product element)。模型给出了产出物域需要思考的项:
结构(Structure)- 所有组成产出物的东西。
代码,界面,接口,硬件,非可执行文件,附属物件。
功能(Functions)- 所有产品所实现的功能
用户界面,系统接口,应用,计算,时间相关性功能,变化(如改变字体),
开启/关闭,多媒体,错误处理,交互,可测性
数据(Data) -所有产品处理的数据
输入,输出,预设值,持久数据,序列,大小数量变化,噪声数据,生命周期等
平台(Platform)-所有被测软件所依赖的外部事物
外部硬件,外部软件,内部组建
操作(Operation)-所有产品可执行的操作
用户,环境,常见操作,非正常操作,极限操作
时间(Time)-所有与产品相关的时间指标
输入/输出,快/慢,并发,变化率
注意到上述几项中英文被标蓝的首字母了么? SFDPOT 就是刚才测试专家念的引导词中的一组。我们再次回到“测试一个纸杯”,现在可以一项一项来了:
结构:用料是否环保?是否能平稳放在桌面上?放了水是否能平稳放在说面上?杯口是否光滑?。。。。。
功能:到进水是否不漏,是否不变形?拿起来是否能够不显著变形?水是不是能倒出来?。。。。。
数据:放半杯水,放一整杯水,放冷水,放热水,放茶叶,放可乐。。。。。。。
平台:能否放在桌子上不倒?手拿着是否不变形,不会感到不舒服?是否能放到杯架、套到别的杯子上?。。。
操作:倒进水,喝水,再倒水,倒开水,捏变形,弹烟灰,丢弃。。。。
时间:看喝水的时候水是不是很快的能流出来。。。
这里边有重复项,这没关系,合并同类项就好了,我们不是要强制归类,而是要利用这些引导词帮你想到该测试的地方。
剩下的就是把其他几个测试域中的关键字找到,根据这些关键字设计测试用例。限于篇幅,这里就不一一展开了,大家可以参考启发式测试策略模型中给出的详细说明进行比照。如果把它们都用作测试这个纸杯,那么你至少有30种以上的手段来测试它(当然得根据实际需求做一定取舍),谁说测试是没什么技术含量的工作?