關(guān)于測(cè)試和測(cè)試人員
本文的作者Sriram Krishnan是一名程序員,曾在Yahoo和微軟工作過(guò),開發(fā)過(guò)很多軟件,曾被紐約時(shí)報(bào)報(bào)道,寫過(guò)一本書,本文是他的一篇博客。
這些年來(lái),我對(duì)測(cè)試工作、測(cè)試人員,以及整個(gè)軟件質(zhì)量管理體系形成了一些明確的觀點(diǎn)。受一篇關(guān)于Facebook的測(cè)試的帖子的啟發(fā),我想把這些寫下來(lái),用以拿給人看。有些觀點(diǎn)是有爭(zhēng)議的。事實(shí)上,即使在交談中稍微表現(xiàn)出這樣的看法,都會(huì)招致人們的鄙視。
本文的作者Sriram Krishnan和他的妻子
大多數(shù)的開發(fā)團(tuán)隊(duì)并不需要一個(gè)獨(dú)立的測(cè)試角色。即使有一個(gè),他的所有的開發(fā)時(shí)間比上所有的測(cè)試時(shí)間應(yīng)該 >20:1。證據(jù)嗎?光看看一些從古至今最成功的軟件開發(fā)團(tuán)隊(duì)就知道了。不論是當(dāng)今的Facebook,還是30年前最初的NT團(tuán)隊(duì),很多偉大的產(chǎn)品都是出自沒(méi)有或很少測(cè)試人員的團(tuán)隊(duì)。
開發(fā)人員應(yīng)該測(cè)試自己的代碼。沒(méi)什么可說(shuō)的。背后的道理并不重要。這包括單元測(cè)試,全覆蓋的自動(dòng)化測(cè)試或手工測(cè)試或組合測(cè)試。如果你的開發(fā)人員不能/不愿意或認(rèn)為這“不歸我管”,那你需要更好的程序員。
我有一些政治上不正確的話要說(shuō)。一些大型的軟件開發(fā)公司會(huì)從一些不能勝任開發(fā)工作的程序員中選擇測(cè)試人員。我經(jīng)歷/聽說(shuō)過(guò)很多在面試開發(fā)人員過(guò)程中有人說(shuō)“他/她做開發(fā)不行。也許可以做測(cè)試?”這導(dǎo)致了一個(gè)被廣泛默認(rèn),但很少公開宣稱的認(rèn)識(shí):做測(cè)試的不如做開發(fā)的聰明。正是由于這普遍的偏見,少數(shù)一些對(duì)質(zhì)量和測(cè)試工作極具熱情和天賦的人受到了不公平的待遇。我知道他們,因?yàn)槲以?jīng)和一些這樣的人一起工作過(guò)。
追求代碼測(cè)試覆蓋率是危險(xiǎn)的。因?yàn)樗苋菀诇y(cè)量,它經(jīng)常會(huì)變成真正目標(biāo)的替代品——開發(fā)有質(zhì)量的軟件。如果你的開發(fā)團(tuán)隊(duì)把功夫都用在寫愚蠢的測(cè)試,來(lái)覆蓋每一個(gè)罕有能用到的代碼路徑——因?yàn)檫@些數(shù)據(jù)會(huì)出現(xiàn)在一些報(bào)告里——你有問(wèn)題了。測(cè)試覆蓋率只是我們用的的很多指標(biāo)中的一個(gè),你需要使用它,但并不是因?yàn)樗宰匀坏臄?shù)字呈現(xiàn),它就能壓倒其它指標(biāo)。它成了古德哈特法則的犧牲品。
我也曾看到有些公司里有獨(dú)立的測(cè)試人員,他們寫出非常好的測(cè)試代碼。不幸的是,這被人們當(dāng)成了一種常識(shí),即使是在根本不需要這樣的時(shí)候。
正像測(cè)試覆蓋率被過(guò)度使用,有些質(zhì)量指標(biāo)是被忽略輕視了。比如:過(guò)程中產(chǎn)生了多少技術(shù)支持郵件?自己是否在任何時(shí)候都在真正的使用自己的產(chǎn)品,檢測(cè)里面的問(wèn)題?分析從生產(chǎn)環(huán)境和客戶安裝那里產(chǎn)生的日志文件。所有的這些策略都在上面的Facebook的帖子里有提到過(guò)。
技術(shù)領(lǐng)導(dǎo)的一個(gè)常見的減少測(cè)試隊(duì)伍的體積的辦法是做自動(dòng)化測(cè)試。這是個(gè)巨大的錯(cuò)誤。如果你有一個(gè)用戶直接接觸的產(chǎn)品,你絕對(duì)需要用人眼去測(cè)試它。如果你和微軟Windows團(tuán)隊(duì)的人坐下來(lái)一起和咖啡,你會(huì)聽到他們抱怨過(guò)度依賴自動(dòng)化測(cè)試導(dǎo)致了Windows Vista大量的bug。這個(gè)錯(cuò)誤說(shuō)明的問(wèn)題就是:你需要一個(gè)全職的測(cè)試人員來(lái)使用你的產(chǎn)品。
【編輯推薦】