2000年04月30日 不用測試人員的五大(錯誤)借口 - Top Five (Wrong) Reasons You Don't Have Testers
The Joel on Software Translation Project:不用測試人員的五大(錯誤)借口
From The Joel on Software Translation Project
Jump to: navigation, search
Contents[hide]
|
不用測試人員的五大(錯誤)借口
作者:周思博 (Joel Spolsky)
譯:Paul May 梅普華
Sunday, April 30, 2000
屬于Joel on Software, http://www.joelonsoftware.com
1992年,James Gleick正和一個多蟲軟體的各種問題周旋。科學作家Gleick認為微軟剛出的Word for Windows新版很可怕。他在星期天紐約時報雜志寫了一長篇文章,這篇文章隻能以激動來形容,整篇都在指責Word團隊不理會客戶的要求,傳遞問題如此多的産品。
稍後,他以地區Internet供應商Panix(剛好也是我的Internet供應商)客戶的身份,要求提供自動排序并過濾其郵件的方法。提供這個功能的是一個叫procmail很神秘的UNIX工具,它的介面連最硬派的UNIX迷都覺得難用。
總之Gleick先生不小心在procmail裡打錯字,結果把他所有的信都刪掉了。一氣之下就成立自己的Internet連線公司。他雇用了Uday Ivatury當程式員,并且建立了Pipeline這個真的有點超越時代的公司:這是第一個有圖形介面的商業Internet連線供應商。
當然啰,Pipeline也有它自己的問題。很早期的第一個版本沒有使用任何錯誤更正的協定,是以很容易把資料弄亂或當掉。它就像所有的軟體一樣有臭蟲。1993年我去Pipeline找工作,面試中問到Gleick所寫的文章。「現在你已經身在籬笆的另一邊,」我問道:「有沒有稍微體會到創造好軟體的難處呢?」
Gleick惱羞成怒。他否認Pipeline有任何問題,他也否認這個軟體有和Word一樣糟。他告訴我說:「約耳,總有一天你也會恨微軟的。」他做了一年的軟體開發而不再隻是個使用者,這一年的經驗卻沒有讓他體會到無蟲又易用的軟體是多麼困難的事,這實在令我有點震驚。是以我就回絕那個工作機會逃掉了。(Pipeline後來被一家世界上最奇怪的Internet供應商PSI買走,然後随随便便就被關掉了。)
軟體有蟲。CPU異常的守規矩,它們絕對會拒絕處理沒有被明确教過的東西,而且通常會以最孩子氣的方式拒絕。我的筆記型電腦在外頭使用時常會當掉,因為它找不到本來找得到的列印機,多麼像個嬰孩。不過原因可能是某一行程式有個極微小卻又很嚴重的問題。
這也正是你絕對要有QA部門的原因。每用兩個程式員就需要一個測試人員(如果軟體需要用于多種複雜的組态或作業系統時還不隻)。每個程式員都應該和某一個測試人員緊密配合,盡可能頻繁地丟出自己編譯的版本給測試人員測。
QA部門應該要獨立并擁有權力,絕對不可以對開發團隊負責,事實上QA的主管應該有否絕權,可以阻止發行不合格的軟體。
我第一份真正的工作是在微軟;這家公司并不以高品質的程式聞名,不過它還是雇用了大量的測試人員。是以我曾經認為每個軟體組織都會有測試人員。
雖然很多組織确實有,不過沒有測試人員的組織還是多的令人驚訝。事實上很多軟體團隊甚至不相信測試。
你可能會認為,現在的經理經過80年代的品質狂熱洗禮,又有各種無意義的國際「品質」認證(如ISO-9000)和「六個标準差」等術語,應該會了解高品質的産品才能獲得高品質的生意。事實上他們都了解,其中大多數人已經盡量把它塞進腦袋,不過他們還是找出各種理由不用軟體測試人員,而這所有的理由通通都是錯的。
我希望可以對你解釋這些想法的錯誤。如果你趕時間剩下的就别看了,直接算人頭每兩個全職程式員請一個全職測試人員就對了。
下面是我聽過不雇用測試人員最常見的鬼叫:
1. 問題是懶惰的程式員弄出來的。
這種幻想的內容是這樣的:「如果你請了測試人員,程式員就會馬虎而寫出問題更多的程式。不要請測試人員,就可以強迫程式員一開始就寫出正确的程式。」 哇!如果你會這樣想,那你不是沒寫過程式,就是把寫程式這回事完全想歪了。 由定義來看,臭蟲會出現就是因為程式員 沒看到程式代碼裡的問題。通常就是需要其他人才看得到問題。 當我還在Juno寫程式時,每次都會用一樣的方式執行我的程式。我會照我自己的習慣大量使用滑鼠操作。我們神奇的測試強者習慣有點不同:她比較常用鍵盤(而且會嚴厲地實際用所有可能的組合去測試使用介面)。這樣子很快就會找出 大量的問題。事實上有時候她還會說整個介面都不能用,而且是 百分之百不能用,可是在我的機器上一切正常。當我看著她重制問題才恍然大悟。Alt鍵!你按住Alt鍵了!我怎麼會沒測到呢?
2. 我的軟體放在網絡上。即使有問題也馬上就能修好。
哈哈哈哈!好吧,你說對了,用網絡分發軟體的确能比以往套裝軟體時代更快速的更新修正版本。不過即使把軟體放在網站上,也别低估在項目當機後修正一個問題的代價。一來你可能在修正第一個問題時産生更多的問題。更糟的是如果你檢讨發行新版本的程式,就會了解在網絡上丟出修正版是個相當昂貴的建議。更别提會讓人因為有以下感覺而造成壞印象了:
3. 客戶會替我測試軟體。
啊,令人害怕的「Netscape防線」。這家可憐的公司藉著獨特的「測試」方法嚴重傷害了自己的聲譽。他們的測試方法是:
- 當程式帥寫好一半時,不經任何測試就把軟體發行到網絡上。
- 當程式員說完成時,不經任何測試就把軟體發行到網絡上。
- 重複做六到七次。
- 把其中某個版本稱為「最終版」
- 每次當c|net上爆出一個丟臉的問題時就發行.01、.02、.03版。
這家公司是「廣泛beta」這個點子的先驅。意思是讓數百萬人下載下傳這些多蟲的未完成版本。最初幾年幾乎所有Netscape使用者都在用某個搶鮮版或beta版。結果大多數人都認為Netscape軟體的問題實在很多。雖然最終版通常問題都極少,可是Netscape已經讓多到離譜的人用過多蟲的版本,是以大多數人對該軟體的整體印象都很差。
另外讓「客戶」來測試的重點在于讓他們找到問題然後由你來修正。不幸的是,Netscape或任何其他地球上的公司都沒有人力,可以處理兩百萬客戶的問題回報并找出真正重要的問題。當我要填報Netscape 2.0的問題時,問題回報網站一直當機,根本不讓我回報(不過反正問題回報最後都會丟進黑洞)。可是Netscape并沒有學到教訓,現在6.0「搶鮮版」的測試人員就在新聞群組裡抱怨,說問題回報網站還是沒辦法送出報告。那麼多年了!還是老問題!
不過我敢打賭,在這些多得要命的問題回報中,絕大多數都在講相同的5到10組很明顯的問題。裡面可能還埋有一兩個有意思又難查的問題,是某人千辛萬苦才成功送出的。不過反正沒人會看這些報告,是以也就等于不見了。
這種測試型式最糟的一點,就是公司會得到非常差的印象。當Userland推出主力産品Frontier的第一個Windows版時,我去下載下傳并開始照著教學操作。不幸的是Frontier當了好幾次。我完全照著教學上面的指令逐一照做,怎麼樣都沒辦法執行兩分鐘以上。我覺得Userland可能連最基本的測試都沒做,根本沒有确認教學是能動的。産品品質低落的印象讓我有很長一段時間不再碰Frontier。
4. 有資格可以勝任的人都不想做測試人員。
這是個很沉痛的理由。好的測試人員非常難找。 測試人員和程式員一樣,頂尖高手和一般水準的人相差 一個量級。Juno有一個測試人員Jill McFarlane,她找到的問題是 其他四個人合起來的 三倍。我是真的算過,絕對沒有誇大其辭。她比普通測試人員的生産力好 12倍。當她離職時,我寫了封電子郵件給執行長說道:「我甯願隻有星期一和星期二讓Jill幫忙,也好過讓QA團隊其他人全部一起測。」 不幸的是,這麼聰明的人大都容易對日複一日的測試感覺厭煩,是以頂尖的測試人員通常隻待三或四個月就會換工作。 這個問題唯一的解法就是面對然後想辦法處理。下面列出幾個建議:下面這種方法無法處理這個問題:
- 把測試當作技術支援的下一個晉升工作。測試或許很沉悶,不過絕對比用電話處理憤怒的使用者好,而且可能也是消除某些技術支援人員騷擾的方法。
- 允許測試人員上程式設計課程拓展職業生涯,并且鼓勵較聰明的測試人員,運用程式工具及腳本語言開發自動化測試套件。這比不斷重複測試相同的對話盒要有趣多了。
- 要有頂尖測試人員經常流動的認知。積極的進行招募以保持穩定的人員流入。不要隻因為暫時滿額而停止招募,因為總會有下一波好景氣。
- 找尋「非傳統」的工作者:找聰明的青少年,大學裡的小朋友還有退休人士來兼職。你可以用兩三位頂尖全職人員再搭配一群趁暑假賺學費的Bronx Science(紐約一流高中)學生,建立出一個效果驚人的測試部門。
- 雇用臨時人力。如果請10個臨時工進來拿你的軟體來玩個幾天,就會發現很多很多的問題。裡頭可能會找到兩三個測試技巧不錯,值得簽約轉成全職人員的人。要先有心理準備,裡面有些人可能做不了測試人員;這時隻能請他回家再繼續找新人。這也正是臨時人力仲介的功用。
終于到了,這是人們不雇用測試人員的頭号笨理由:
- 千萬不要對來工作的電腦科系學生打歪主意,說什麼「所有人都要在QA部門磨練一陣子才能去寫程式。」我看過太多例子了。程式員沒法子當個好的測試人員,而且還會因而損失好的程式員,而這就更難找了。
5. 我請不起測試人員!
這是最笨而且也是最容易揭穿的理由。 不管測試人員有多難找, 還是比程式員要便宜,而且便宜多了。另外如果不請測試人員,就得讓程式員自己測。再來如果你認為測試人員大量增加不太好,就想想這件事的代價吧:年薪十萬美元的明星程式員受不了有人要他「在發行前留幾個星期測一測」,而換去比較專業的公司。光是為找新程式員而付給獵頭公司就夠你一年請三個測試人員了。 吝嗇請測試人員是如此的劃不來,我實在不懂為什麼有這麼多人認不清。
這些網頁的內容為表達個人意見。
All contents Copyright © 1999-2006 by Joel Spolsky. All Rights Reserved.