
194
| 第廿一章:射球入門
我們來看如何更融洽地與 QA 王國的這些居民合作。我們會看到開發人員與 QA 的主要
互動之處。
但是我們有單位測試!
我們是認真負責的程式員。我們想要製作堅如磐石的軟體。我們想要用連貫的設計,創
造出很棒的程式,產生一個很棒的產品。
這就是我們在做的事情。
所以我們會採用開發技術來確保程式盡可能地優質。我們會檢視、配對工作、檢查。而
且我們會
測試
。我們會編寫自動化的單位測試。
我們有測試! 而且它們都合格! 軟體一定沒問題。不是嗎?
就算單位測試非常豐富,我們還是無法保證軟體是完美的。程式可能會按照開發人員的
意志來操作,一路上都是綠燈。但是這可能無法反應軟體
應該
做的事情。
這些測試可能會證明開發人員設想的所有輸入都會被正確地處理。但是那或許不是使用
者會做的事。並非軟體所有的使用案例(及
濫用
案例)都會被預先考慮到。你很難考慮
到所有的案例,因為軟體是極複雜的事情。QA 人員最擅長的,正是思考這種事情。
因為如此,嚴格的測試與 QA 流程仍然是軟體開發流程中重要的部分,就算我們已經有
全面性的單位測試。單位測試扮演的角色,是在將程式送給測試員之前,先負責任地證
實程式已經可以良好運作了。[
Page-188]
釋出組建版給 QA
我們知道開發流程不是一直線的,它不是一個簡單的管道。我們會反覆地開發,並漸進
改善:無論是需要驗證的新功能,或需要被驗證的 bug 修復工作。它是一個會繞著行走
很多遍的迴圈。在整個建構的過程中,我們會建立許多版本,送給 QA。
所以我們需要一個流暢的組建與遞交流程。 ...