您敢说您的测试充分了吗? 软件测试
测试就像讲故事
有个关于测试战略的经典问题:“何谓测试充分?”如果您是从预制脚本阶段就开始进行仔细的测试,那答案可能显而易见:当您完成所有测试流程的时候即为测试充分。但是对于经验老道的测试人员来说,这个答案是没有价值的。他们会从如何定位项目的角度来回答,而不仅仅是如何按部就班地按流程操作,因为没有一个现成的测试流程是正正好好完全适合于您的项目的,要不过于复杂,超出了需求范围,就是过于简短,不能满足需求。
我们的任务不是运行一个既定的测试用例。对于我们所有人来说,我们的任务是充分捕获产品的重要信息,使我们的客户(主要是开发人员和管理人员)可以做出精明的决断。
测试就像讲故事
当进行测试的时候,您所作的更像是在编写一篇调查性质的新闻故事。大致包括这样几部分:产品介绍、信息来源论证以及得出的结论。测试的每个步骤也就是在帮助您编写这篇故事,或是在帮您开发故事情节。当您可以将这个关于目标产品的故事完整地讲述清楚的时候,您的测试就算是充分了。如果您编写的故事可以预知该产品对于用户的价值,换句话说,当您相信您的测试报告可以掌控未来的时候,您的测试工作就算是做到家了。
例如,我刚测试了一个复杂产品的安装流程。我的任务是检测并记录下系统安装该产品后的所有变化。所以我的第一步就是分析这个安装过程,然后画出流程图,针对流程中重要的部分选择相对应的测试用例。继而在可控的、可重复的测试环境中运行这些用例。这样我就可以得到一个结果。接着我会检验该结果,以确保其每个部分的确与预期结果相吻合。我希望这是一个精彩的,扣人心弦的故事,所以我极尽所能去揣测“读者”的意见。故事的弱点在哪里?我的故事是否可能失败?我通过附加测试排除造成系统异常的其他可能性。并通过反复执行测试用例来提高我的自信心,确保我所看到的结果是与流程相关的,其中各种情况都是可控的,不会有突发事件产生。
当我把内部意见,以及需要对我工作进行检验的外部人员的意见都设想周全的时候,我的测试就算充分了。
一个简短的故事就如同一部小说
测试可能是一个无穷尽的过程。如果说完成测试就意味着要运行所有可能的测试用例,那您的工作将不会有结束的那天。但是当您已经有一个具备主要情节的测试故事,且额外的测试不再会对故事有很大的影响,您也可以称自己完成了测试项目。原因就是:您永远都不可能确定测试的收益递减点在哪里,而且也没有必要去知道!您所须做的就是满足每个人的期望,给他们一个精彩的故事:一个思考缜密,且负责的测试人员是如何通过测试充分了解产品的。在一些情况下,这可能需要进行几个月的测试工作,也有可能仅仅是几个小时。
测试故事的情节
一个完整的测试故事可以回答这些问题:什么是测试(覆盖)?测试使用什么方法(技术)?如果出现问题,如何能检测到(评估)?
无论我是否制定测试战略,或者测试否运行顺畅,我测试报告的情节总是会有相同的基本结构:测试人员看到产品后即开始学习,跟踪产品的各种变化;担心产品可能失败,便通过风险导向性测试检查产品的可预见性错误,不可预见的错误则通过多样性测试结合风险导向性测试检测,期间可能会碰到各种各样的问题和矛盾;终于有一天,产品确定了,同时不再有遗留的问题,所有已知的问题得到了修复或反馈,所有矛盾都得到了处理,所有的风险都得到了检测,并且产品所有重要的方面都得到了验证,测试人员对于用户的反馈已有了清楚的预期,测试人员非常快乐(产品也一样非常成功)。
编一个好故事靠的是技术和用心。有时可能会遇到挫折。不要在刚遇到挫折时就气馁。关键是您要有好的想法,且附之于行动。如果您能编出恐怖小说的话,就请尽情发挥吧!