对于相对复杂的产品或系统来说,zero-bug是一种理想,good-enough是我们的原则。
Good-enough原则就是一种权衡投入/产出比的原则:不充分的测试是不负责任的;过分的测试是一种资源的浪费,同样也是一种不负责任的表现。我们的操作困难在于:如何界定什么样的测试是不充分的,什么样的测试是过分的。目前状况唯一可用的答案是:制定最低测试通过标准和测试内容,然后具体问题具体分析。
Good Enough Testing 的定义
有些测试员会问:“我怎么知道我的测试做得足够了?”
很遗憾,对于这一样一个问题,没有很客观或严谨的答案。但是我们可以在尝试回答问题前识别出来那些因素应该加以考虑。我们至少可以建立一个围绕这个问题的启发模型。
首先,我们来定义一下什么是Good Enough Testing。
Good Enough Testing是形成一个充分的质量评估的过程,这个过程建立在合理的代价之上,用于支持对产品作出明智的、及时的决定。
把定义分解成4部分:
产品质量的评估:
产品的正确性和完整性如何?
测试的代价:
测试消耗的合理的程度如何?是否在项目限制范围内?对测试的投入是否有好的回报,例如,每次测试后,是否有额外的信息可提供?
决定:
产品质量的评估是否很好地服务于项目和业务?
及时性:
对评估、决定的及时性,是否足够快,从而发挥作用?
有些测试员会被告知他们所做的测试不会影响产品发布的决定。如果是这样的话,测试就应该停止了。
相反,如果继续测试会提供技术支持或为公司的某些其它类型的决定提供基础支持,那么就应该继续测试。因为测试与某些要作出的决定联系在一起,或为提供某些数据以备将来使用。
某些测试是在组织或某些所谓的权威人士要求下进行的,有些测试仅仅是因为测试计划制定了,所以执行。这与Good Enough Testing的原则是违背的,Good Enough Testing是有意识的、有目的的测试,不是迷信和仪式。其实很多制定的测试计划中提到的测试是可以抛弃的,因为它们对测试项目或对利益相关方完全没有什么影响。
很多时候,测试计划的编写是因为某些人说:“教科书上说我们应该有这种测试”。
评估的组成
1、评估产品质量
● 我们是如何评估和报告产品质量的?
● 我们是否确定质量的评估是可被证实正确的?
● 我们是否清楚明示和暗示的产品需求?
● 我们能在产品创建出来后多快地找到产品中的重要的问题?
● 我们的测试是否覆盖了需要覆盖的产品的各个方面?
● 我们是否应用了足够的测试方法类型或采用了足够的关于质量信息的资料来源来消除测试覆盖的误差?
● 是否在产品中存在我们不知道的重大问题的可能性?
● 是否存在本应该是测试发现的问题而测试员未发现,而是被其它渠道发现并报告?