既然是“核心價值”,應該能用一句話說清楚。關于軟件測試的核心價值是什么,各種觀點爭論了很久,似乎很難得出一個明確的結論。這里有個很重要的原因,是我們都深陷在測試工作的細節里面,沒辦法看清自己的位置和價值。不識廬山真面目,只緣身在此山中。

  要想搞清楚這個問題,我們必須走出圍城來進行分析,如果把軟件測試看成一種服務,那么從客戶的視角來評判,合適不過了。下面講一件真實的事情。

  有一次我回家跟老友一起吃飯,聊起近的工作。老友的單位是一家大企業,幾個月前委托一家軟件開發公司,開發了一套很大的企業管理軟件。現在軟件已經開發完成,進入了驗收階段。現在問題來了,負責驗收軟件的是信管部,部門老大非常擔心軟件的質量,希望能在驗收簽字前,把軟件的嚴重質量問題都找出來,可是又不知道該從哪下手,如果能有一個權威的軟件評測機構,對軟件進行專業的測試,好了。

  “你們淘寶的軟件測試,應該做的很專業吧,能不能幫我們來測試一下這個軟件?你們接這種業務么?”老友提出這個問題。

  雖然淘寶測試現在還沒有這種外接服務,不過這是一個難得的,饒有趣味的話題。

  “那你想要我們來測試哪些東西呢?哪些地方擔心?”

  “主要是性能吧,如果全公司人一起來用,不知道會不會出問題。還有是數據的安全方面,公司的重要數據一定要安全,不能被挖走。”

  “那軟件的功能呢,功能需不需要我們來測一下?”

  “功能不用了,我讓我們部門的人來點點行了。”

  聽到這話我有點覺得不爽,不過想想倒也沒必要跟老友去爭辯這個問題,其實這確實是很多人對軟件測試的看法。后來這個話題被岔開,沒有繼續談下去了。

  所以下面的談話并沒有真實發生,是我用推理的方式,把討論繼續了下去,非常有趣。

  “功能測試并不是隨便點點這么簡單,淘寶的測試非常專業的,因為我們…”

  大家注意,精彩的地方到了,當我說出一個原因,并且能讓老友信服,那說明,這是軟件測試的核心價值了。

  “…我們的工程師對需求理解得很透徹,對業務很精通。”

  “我們部門的人對需求也很清楚的,因為他們是終的用戶。”在平時的項目里我們也發現,無論需求分析做得多細致,軟件交付以后,用戶總能提出很多問題和改進意見,這是正常的,大可不必因此責怪測試工程師,因為沒有人比用戶更了解需求。重要的是,不要讓用戶發現既嚴重又初級的Bug。

  “…我們編寫的測試用例、文檔非常專業非常完整,能夠保證測試的質量。”

  “很好啊,你們很專業,不過這是你們內部的工作方式,我不是很關注的。”這里并不是否定測試文檔的作用,只不過測試文檔是測試團隊的過程產物,無法直接給用戶帶來價值。

  “…我們對軟件的架構設計非常了解,可以提前發現軟件設計中的重要缺陷,避免返工。”

  “嗯,這個非常好,不過現在他們已經開發完了,要是在他們編碼之前,請你們來對設計方案把把關,好了。”用戶非常希望能控制軟件開發的全過程,而軟件設計是重要的里程碑,設計是否合格,直接影響后面的工作。