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

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

  “…我們現(xiàn)在用的好的測(cè)試管理工具,還有好的自動(dòng)化測(cè)試工具,可以把測(cè)試完全自動(dòng)化。”

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

  “…我們的工程師工作效率很高,測(cè)試速度非常快,比你們部門的人要快50%。”

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

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

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

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

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

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

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

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

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

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