1.3 测试的两个基本目的
从测试的语义设定出发,测试的基本目的有两个:“评估质量”和“检出缺陷”。观察理想结果与现实结果的相符程度就是为了“评估质量”,求索理想结果与现实结果的差异就是为了“检出缺陷”。
测试最朴素的动机就是为了判断被测对象是否足够好。针对功能方面的质量特性,测试可以在如下三种不同的层面上开展质量的评估:
(1)判定理想与现实是否完全相符,即被测对象是否正确。
(2)若无法或无须判定被测对象是否正确,可退一步评估被测对象正确的概率,即正确度。
(3)若无法或无须评估正确度,可再退一步,评估被测对象在特定条件下正确的概率——比如考虑被测对象在指定时间内正确的概率,即可靠度。
测试的另一个主要动机是找出被测对象中存在的缺陷,让被测对象有机会变得更好。测试以批判的形式产生建设性。测试者的成就感很大程度来自检出缺陷的数量、严重程度,以及实现缺陷检出的困难程度。甚至有测试者认为,只有检出了缺陷的测试才是有价值的。而实际上,以评估质量为目的的测试,在研发生产活动中同样有举足轻重的意义。测试得到的质量评估结果,往往决定着被测对象的前途命运。
测试的两个基本目的之间,存在着对立统一的关系。
一方面,不同的目的让测试走上了不同的道路。测试的主要手段是让被测对象进入某些具体事件,观察被测对象在这些事件中的质量表现。经验表明,缺陷喜欢隐藏在一些特别事件中,针对这些事件进行测试,相对容易检出缺陷。然而在被测对象实际使用过程中,这些特别事件的发生概率较小,被测对象在这些事件中的表现,并不足以反映用户所感受到的质量水平。为了更准确地评估被测对象的质量,测试应该主要围绕那些在实际使用过程中发生概率较高的典型事件来开展。
另一方面,“评估质量”又与“检出缺陷”相辅相成。以“评估质量”为目的的测试,需要对理想与现实的差异情况进行分析,这一活动往往伴随着缺陷的检出。例如,在判定被测对象是否正确时,往往需要努力找到一个“能揭示缺陷的失效事件”,来说明被测对象是“不正确”的;在评估被测对象的正确度或可靠度时,往往能发现被测对象相对“不正确”或“不可靠”的地方,这些地方正是滋生缺陷的温床。相应地,测试活动“检出缺陷”的过程,实质上是理想与现实差异程度渐近明晰的过程,这就在一定程度上实现了质量的评估。一旦成功地检出了缺陷,自然就得到了“被测对象不正确”的质量评估结论;检出缺陷的数量及严重程度,也可以初步作为被测对象质量高低的评估依据。如果测试者穷尽浑身解数都找不到缺陷,说明被测对象在实际使用中发生问题的概率也很小。