既然是“核心价值”,应该能用一句话说清楚。关于软件测试的核心价值是什么,各种观点争论了很久,似乎很难得出一个明确的结论。这里有个很重要的原因,是我们都深陷在测试工作的细节里面,没办法看清自己的位置和价值。不识庐山真面目,只缘身在此山中。

  要想搞清楚这个问题,我们必须走出围城来进行分析,如果把软件测试看成一种服务,那么从客户的视角来评判,合适不过了。下面讲一件真实的事情。

  有一次我回家跟老友一起吃饭,聊起近的工作。老友的单位是一家大企业,几个月前委托一家软件开发公司,开发了一套很大的企业管理软件。现在软件已经开发完成,进入了验收阶段。现在问题来了,负责验收软件的是信管部,部门老大非常担心软件的质量,希望能在验收签字前,把软件的严重质量问题都找出来,可是又不知道该从哪下手,如果能有一个权威的软件评测机构,对软件进行专业的测试,好了。

  “你们淘宝的软件测试,应该做的很专业吧,能不能帮我们来测试一下这个软件?你们接这种业务么?”老友提出这个问题。

  虽然淘宝测试现在还没有这种外接服务,不过这是一个难得的,饶有趣味的话题。

  “那你想要我们来测试哪些东西呢?哪些地方担心?”

  “主要是性能吧,如果全公司人一起来用,不知道会不会出问题。还有是数据的安全方面,公司的重要数据一定要安全,不能被挖走。”

  “那软件的功能呢,功能需不需要我们来测一下?”

  “功能不用了,我让我们部门的人来点点行了。”

  听到这话我有点觉得不爽,不过想想倒也没必要跟老友去争辩这个问题,其实这确实是很多人对软件测试的看法。后来这个话题被岔开,没有继续谈下去了。

  所以下面的谈话并没有真实发生,是我用推理的方式,把讨论继续了下去,非常有趣。

  “功能测试并不是随便点点这么简单,淘宝的测试非常专业的,因为我们…”

  大家注意,精彩的地方到了,当我说出一个原因,并且能让老友信服,那说明,这是软件测试的核心价值了。

  “…我们的工程师对需求理解得很透彻,对业务很精通。”

  “我们部门的人对需求也很清楚的,因为他们是终的用户。”在平时的项目里我们也发现,无论需求分析做得多细致,软件交付以后,用户总能提出很多问题和改进意见,这是正常的,大可不必因此责怪测试工程师,因为没有人比用户更了解需求。重要的是,不要让用户发现既严重又初级的Bug。

  “…我们编写的测试用例、文档非常专业非常完整,能够保证测试的质量。”

  “很好啊,你们很专业,不过这是你们内部的工作方式,我不是很关注的。”这里并不是否定测试文档的作用,只不过测试文档是测试团队的过程产物,无法直接给用户带来价值。

  “…我们对软件的架构设计非常了解,可以提前发现软件设计中的重要缺陷,避免返工。”

  “嗯,这个非常好,不过现在他们已经开发完了,要是在他们编码之前,请你们来对设计方案把把关,好了。”用户非常希望能控制软件开发的全过程,而软件设计是重要的里程碑,设计是否合格,直接影响后面的工作。