假如合適的定義了測試估算的輸入和步驟,那麼隨意更改估算的結果將是不允許的。儘管利益相關者不滿意測試估算的結果,但是更改該結果的合理的行爲應該是更改估算的輸入得出新的輸出,而不是爲了滿足某個目標而有意識的調整估算結果。圖1是建議的測試估算過程。
圖1 測試估算過程
合適定義的測試估算過程,詳細考慮了測試對象的特定信息,例如:產品類型、測試範圍、優先級和重點,以及某些假定條件等。估算過程中可以不斷的調整這些輸入信息,直到最後的估算結果符合可接受的要求,這是和混亂測試估算過程處理完全不同的。測試歷史數據,如以前項目測試的測試執行速度等,也是測試估算過程中的重要輸入。測試歷史數據是不能調整的,特別是爲了滿足測試的目標而有意識的調整它。
測試團隊理解估算、目標和承諾三者之間的區別,有助於更好的開展測試估算活動。假如估算結果並不符合目標的要求,測試團隊可以更加謹慎的考慮是否給出當前的承諾。但,不管如何,測試團隊都不應該由於這個原因改變測試估算本身。
在測試估算過程中,有的時候我們需要在項目的早期,甚至在沒有具體的需求之前具體的測試對象規模,例如:測試用例的數目,這就需要我們通過直覺或者人爲判斷的手段估算測試對象的規模。而後續的測試工作量和測試時間進度等可以通過測試規模進行估算,當然後續的這些估算需要依賴於測試團隊的生產率。圖2表示了估算之間的關係。
圖2 測試規模、工作量和進度的關係
但是測試工作量和進度的估算,也不一定是基於測試規模開展的,具體的過程需要考慮測試估算所採用的具體方法。合適定義的測試估算過程應該具備下面的特徵:
1)在可能的情況下,儘量採用計數和計算的手段進行估算,而儘量避免直覺和判斷的手段;
2)在測試估算過程不同階段採用不同的測試估算技術,並對結果進行比較;
3)測試估算過程應該是相對穩定的,假如有某些變更,應該通過文檔化的方式進行記錄,並進行評審;