“…我們能看懂代碼,找出代碼里的問題,不僅如此,我們還能修復(fù)Bug!

  “好是好,不過代碼量那么多,你們需要多少人來做?至于修復(fù)Bug,還是讓他們自己改吧,不然我花那么多錢請他們干嗎?”

  “…我們現(xiàn)在用的好的測試管理工具,還有好的自動化測試工具,可以把測試完全自動化!

  “挺好,不過我還是擔(dān)心需要的資源太多,自動化測試是挺好,你說說具體好在哪里呢?如果比手工測試成本低,行!蓖瑯拥,用戶對我們用什么方式測試并不特別關(guān)注,成本才是關(guān)鍵。

  “…我們的工程師工作效率很高,測試速度非?,比你們部門的人要快50%!

  “厲害!不過我們這里的薪水都比較低的,你們都是高薪IT,人月成本這么高,如果測的結(jié)果差不多,還是我自己找人來做吧!

  “…我們的工程師都是專業(yè)人員,你的人只能發(fā)現(xiàn)一些表面的Bug,而我們能找出隱藏很深,并且很嚴重的Bug,這些Bug提早發(fā)現(xiàn),能減少很多損失!

  “有道理,其實我也擔(dān)心他們這樣點點,有些深層次問題發(fā)現(xiàn)不了,要是上線一段時間以后,大家才發(fā)現(xiàn),那改都來不及了。”

  好了,這段虛擬的對話到此為止,下面我們來做一些分析。先看一下開始提到的性能測試和安全測試,這兩個測試類型有一定的技術(shù)壁壘,因此性能和安全的Bug,不是每個人隨便能發(fā)現(xiàn)的。另外虛擬對話中提到,發(fā)現(xiàn)軟件設(shè)計方案中的問題,也非常有難度。而功能測試的門檻相對較低,即使沒受過訓(xùn)練,一般人也能發(fā)現(xiàn)一些初級的Bug,這讓很多人產(chǎn)生一個錯覺:“一般人”都能做功能測試。

  要證明這個錯覺不成立,其實也挺容易,那是看測試人員所發(fā)現(xiàn)的Bug,與“一般人”有哪些不同。如果找不到明顯的不同,那錯覺變成了現(xiàn)實,如果測試人員沒發(fā)現(xiàn)的Bug,讓一般人或者用戶發(fā)現(xiàn),那更杯具了。由此我們推理出測試的核心價值:

  能發(fā)現(xiàn)一般人發(fā)現(xiàn)不了的Bug!

  這句話看起來非常簡單樸實,但是包含了很多因素。目前淘寶測試團隊所設(shè)定的金B(yǎng)ug大獎(Gold Bug Award),是為了鼓勵測試工程師體現(xiàn)這一核心價值。

  有的測試工程師,由于項目時間太緊,開發(fā)匆忙趕出的代碼質(zhì)量又不合格,所以大部分時間都糾纏在初級的Bug里面,根本沒時間、沒精力去關(guān)注深層次Bug,雖然做的很辛苦,也做了很多項目,但是成長很慢,原因在這里。

  要解決這個問題,測試工程師一方面要加強對開發(fā)技術(shù)的學(xué)習(xí),了解軟件程序的內(nèi)部結(jié)構(gòu),為發(fā)現(xiàn)深層Bug創(chuàng)造必要條件;另一方面,要想辦法推動開發(fā)提高代碼質(zhì)量,讓自己從初級Bug里解脫出來,為自己贏得更多的時間,來尋找深層Bug,并且總結(jié)發(fā)現(xiàn)Bug的技巧和經(jīng)驗。

  到這里我們對測試核心價值的討論可以告一段落了,軟件測試要體現(xiàn)核心價值,自說自話是沒有意義的,只有把測試作為一種服務(wù)提供給客戶,讓客戶來評判,測試才能發(fā)展得更好。