编者按:本文来自 Rational Edge??这篇文章论述的是软件测试的目标是发现软件中存在的Bug,而不是运行一些成功的测试。作者反驳了两个关于软件测试目标的常见谬误,并说明为什么测试专业人员必须接受一个概念:Bug-free的软件是不存在的,测试的目的是为了选择性地去除软件中的严重错误。

近,我的一个同事在走廊里拦住我,非常骄傲和热情地给我描述了她为一套自动测试程序进行的设计和采用的技术。她说:“妙的是他们都能够非常顺利、漂亮的运行”。在我走开的时候我在想怎样采取温和的方式告诉她,她已经“迷失了方向”。虽然她尽了很大的努力去建立一套成功的测试,但是她没有认清软件测试的真正目的。

软件测试的真正目标是什么?为了研究这个问题,我随机问了一些软件开发和测试工程师、管理人员。其中一些说目标是验证软件是否满足用户和产品的需求。其他的人给出了更简单的回答,例如:“确认软件没有Bugs”以及“为了验证软件能够正常运转”。

我看来,这些说法都不准确。简单来说,软件测试的真正目的是找到以前没有发现的bug。下面我将从我对软件测试目标的看法出发,剖析我同事关于软件测试的主要目标的误解,并给测试人员一些建议。