在軟體測試過程中,測試方案起到什麼樣作用?
如何編寫測試方案?等等類似關于軟體測試方案的問題,往往沒有一緻的答案。不同的公司往往有自己的測試方案模闆,測試工程師的了解也會有所差别。以下是我關于測試方案的了解,希望能夠抛磚引玉。
編寫測試方案的目的是啥?也許有人會說:根據産品功能需求(比如PRD)文檔,參考産品設計文檔,測試工程師就可以了解需求、設計測試用例了,不需要測試方案文檔,即使寫了測試方案,也主要是把産品需求和設計文檔内容copy一下而已。有以上這樣的想法,是因為沒有真正了解測試方案的作用。其實軟體測試方案的作用非常類似于産品設計說明(文檔),開發工程師根據産品功能需求和設計說明來編碼實作功能,而測試工程師需要基于産品功能需求和測試方案來設計和執行測試用例,同時也要參考産品設計說明文檔,是以測試方案目的是:
在方向上明确要測什麼、怎麼測,以及達到什麼樣品質标準。
如何産出有效的測試方案?
如果隻是把産品需求和部分設計說明内容copy一下,給出測試進度計劃,這樣的測試方案對用例設計和執行意義不大。我想作為方案,至少要包括幾個關鍵因素:範圍,時間,資源和品質,而不同行業産品,測試方案應該相應地進行對這幾個關鍵因素進行分解和調整。對于軟體測試方案,我想主要應該包括:測試需求分析,測試政策,測試資源,測試計劃,項目風險和品質,如果我們能夠明确以上這些因素,這樣的測試方案就一定能夠有效地指導我們測試設計和執行。
測試需求分析:測試需求分析就是把産品需求(比如PRD文檔)和對使用者的了解(使用者體驗)轉化、分解成測試功能點,産品需求是我們測試需求主要輸入,但不是全部,我們還需要仔細分析産品設計說明,可以産出更多可測試的功能點(這些功能點往往沒有包含在産品需求中)。還要加入對性能、安全、接口和回歸測試範圍分析。測試需求是确定測試進度計劃和資源的主要依據。

測試資料:
在此簡要說明測試資料的形成,如以客戶機關具體的業務規則和《XX系統需求分析說明書》,參考《XX系統概要設計說明書》、《XX系統詳細設計說明書》和《資料規格說明書》中規定的運作限制,設計測試用例,作為整個XX系統的測試資料。
測試政策:
測試需求确定後,我們就要思考如何驗證測試需求中的功能點,采用什麼測試方法:手工、自動化測試和是否需要新方法或工具,比如新功能采用手工測試,部分回歸用例使用自動化腳本,用新方法來準備測試資料,采用合适的工具驗證複雜的測試結果。确定測試優先級,确認哪些業務功能是最重要,那個是新代碼子產品,哪些舊子產品改動較大,與之相關的功能點要重點測試,測試不可能100%覆寫,但是對于重要、高危的功能必須要全面驗證,保證資源投入到目前最高優先級的任務。
測試資源:一般情況下,團隊同時有多個項目,測試PM需要根據項目的優先級來确定每個項目的測試資源,一般情況下,軟體測試資源主要包括:人力和裝置機器。
測試計劃:根據測試需求和政策,結合項目優先級和測試資源情況,評估測試進度計劃,一般情況下,測試資源越充分,測試進度越樂觀,但并非絕對,有時候一些軟體BUG會阻塞測試進度,這也是項目風險的一部分。
風險管理:在測試執行開始之前,對可能的風險進行分析和識别很重要,可以提前進行預防和采取應對措施,是以項目過程中,我們需要定期評估測試進度情況,提前進行風險預警。