[轉]基于需求測試(RBT)
測試人員的首要職責是找bug,但是最重要、最根本的職責應該是在軟件產品發布前確保公司的軟件產品滿足顧客的需求。
測試組采用RBT(Requirements-based testing),基于需求的測試方法會使測試更加有效,因為它使測試專注于質量問題產生的根源。
研究報告指出,多年來,大部分的軟件項目不能按計劃完成,不能有效控制成本。大部分項目失敗的首要原因是軟件質量差,導致大量的返工、重新設計和編碼。其中軟件質量差的兩大原因是:軟件需求規格說明書的錯誤、有問題的系統測試覆蓋。
需求規格說明書中的錯誤
我們經常聽到最終用戶抱怨、不用我們的軟件,而這些軟件還通過了嚴格的測試和QA。對于這點我們不會感到驚訝,原因是我們知道需求從一開始就是錯誤的。
一項調查(James Martin (“An Information Systems Manifesto,” Prentice Hall, 1984)表明56%的缺陷其實是在軟件需求階段被引入的。而這其中的50%是由于需求文檔編寫有問題、不明確、不清晰、不正確導致的。剩下的50%是由于需求的遺漏導致的。
有問題的測試覆蓋
要獲得滿意的測試覆蓋率是很難的。尤其現在的系統都比較復雜,功能場景很多,邏輯分支很多,要做到完全的覆蓋幾乎不可能。
再者,需求的變更往往缺乏控制,需求與測試用例之間往往缺乏可跟蹤性。
RBT三大最佳實踐
1、 Test early and often.盡早測試,頻繁地測試
確認需求的業務價值。
各利益相關方應該對需求進行評審。
通過用例檢查需求的完整性
應用語言分析技術確保需求文檔清晰一致,不會引起同一問題不同人有不同的解釋。
2、 Test with your head, not your gut.不要單憑經驗測試
不要依賴測試人員的經驗來設計測試用例,應該采用系統、嚴格的測試用例設計方法,而不是依賴有經驗的測試人員的技巧。通過這樣的方式來增加測試覆蓋的有效性。格式化、結構化的需求文檔有助于測試人員評估需求的測試覆蓋率。
通過測試用例評審來檢查測試用例存在的錯誤,并且找出需求的不足之處。
3、 Test with measurement and improvement in mind.測試過程中要保持度量
在使用基于需求的測試方法的過程中,保持對需求的可追蹤性非常重要。保持需求與測試用例及測試之間的可追蹤性有助于監視進度、度量覆蓋率,當然也有助于控制需求變更。