Boris Beizer在他的軟體測試聖經《Software Testing Techniques》中就曾經做過一個有趣的譬喻:軟體測試的模式就跟打花式撞球(Playing Pool)是一樣的。花式撞球可以非正式地區分成兒童玩法(Kiddie Pool)及正式玩法(Real Pool):兒童玩法是簡單地預測並指定球入袋的位置,只要任意球打入指定球袋便得分,反之則不得分;而正式玩法,如九號球的比賽規則,則是逐步按照順序指定一號至九號球入袋的過程,當最後擊入九號球入袋便會贏得比賽。軟體測試亦是如此,對單一函式、元件、服務的單元或整合測試便有如兒童花式撞球一般,只要測試輸出結果有如先前預測的輸出結果那即是正確,若反之則是錯誤;對於高階的系統測試或驗收測試,因為摻加入操作流程(Operation Flow)或業務流程(Business Process Flow)的因素,每一項的測試項目皆有其測試步驟,而每一個測試步驟都有其預期輸出結果,倘若測試項目所有的測試步驟都有如先前預期般的一致便是測試正確,反之亦是錯誤。 |