軟體開發歷史上無數慘痛教訓證明:缺陷導致的損失難以估量。身為測試工程師,必須建立系統性的測試觀念,以下整理七大核心常識,助你掌握測試精髓。
以「客戶需求」為判斷標準,缺陷包含四面向:
此外,設計不合規範、未在限制條件下達最佳,亦屬缺陷。切勿將測試侷限於程式碼階段,需求與設計缺陷同樣重要。
輸入組合、路徑排列呈指數爆炸,窮盡測試不可能。實務上採用「等價類劃分」、「邊界值分析」等技術,以最小測試集覆蓋最大風險。
同樣測試方法重複執行,發現新缺陷機率遞減(類似農藥悖論)。必須定期更換測試策略、測試資料、甚至測試人員,才能持續挖掘深層缺陷。
測試應貫穿需求驗證、設計評審、程式碼審查、系統測試至驗收測試。需求與設計階段的缺陷放大效應極大,早期介入成本最低。測試本身也需接受第三方稽核(如資訊系統審計),確保測試可靠度。
測試成本與品質效益須達平衡。遵循「Keep it simple but not too simple」原則,避免過度複雜化測試流程,追求投資報酬率最大化。
修復可能引入新缺陷,且受時程、成本制約,無法修復所有問題。須評估嚴重度與影響範圍,採取折衷方案(如提升硬體規格規避效能缺陷)。
無預期結果無法判斷通過/失敗。嚴禁憑感覺測試,需依據規格書、設計文件、使用者故事等客觀基準。
測試報告必須包含根因分析與改善對策,否則同類缺陷將在下一專案重演。建立組織級缺陷知識庫,沉澱測試智慧。
軟體測試是一門需要「自覺」的紀律。保持冷靜、把握尺度、建立正確認知,方能在專案中發揮關鍵價值。