CMM流程的總體思路,一是基于對人的不信任,所以設置各種流程、文檔、CHECKLIST,來檢查是否達到指標,只有達到指標才能往下走。二是下游的工作是基于上游的文檔的,一般下游的工作不用管上游是否正確,所以對上游的工作要求更高,一旦上游工作出了問題,后續的工作中又沒有人能指出來,則整個工作都有可能出問題。所以CMM流程試圖將軟件生產工作打造成傳統制造業一樣的流水線,但前期一旦跑偏則危險很大。
CMM的整個流程從開發來看一般包括需求分析、規格設計、概要設計、詳細設計、編碼、UT、ST、BBIT;從測試來看包括測試策略、測試方案、測試用例、自動化腳本、測試執行幾個過程。
眾所周知,測試理論分為兩派,一派是證實,一派是證偽,但做為企業項目來講,證偽的成本太高,一般以證實為主,也就是證明客戶的需求是可用的,產品能滿足客戶需求即可。
測試想要證實產品滿足客戶需求,顯然需要對需求有很充分的了解,要對需求有很充分的了解,最好的辦法就是測試人員參與需求分析,參與客戶需求的澄清,甚至方案設計,所以測試(參與需求分析、規格設計一般稱為靜態測試)開始得越早越好。前期靜態測試,主要的目的一是熟悉需求,二是從測試的角度、客戶的角度分析客戶的顯性需求和隱性需求,避免遺漏和跑偏,尤其是隱性需求,還有一個目的是提取測試需求,保證需求的可測試性。
測試策略的制定需要很高的技能和對系統的全盤了解,對需求的全盤了解,對人的要求較高,所以一般完成后再找開發、測試、甚至硬件、維護人員一起討論;策略的目的是為了指導整個測試工作的開展,明確什么東西在什么時候測試,測試重點是什么,測試技術如何準備,測試環境如何規劃,在資源人力沖突時重點保障什么,以指導后面的測試方案、測試用例寫作、環境準備、測試執行等工作。
測試方案的寫作相對容易,主要是運用一些測試工作方案,對需求、規格進行分析,結合經驗,明確該特性的測試重點,難點,測試環境規劃,自動化設計思路等,回答測什么和怎么測的問題,方案的最終除了明確這些內容外還是明確測試用例的標題,以指導后續的測試用例寫作和自動化腳本編寫。
測試用例和自動化腳本編寫則更簡單些,依照測試用例標題,明確測試的預置條件、測試步驟和預期結果,腳本則是依照這些條件、步驟和結果來編寫。
接下來就是關鍵的測試執行,有人講,測試用例設計的好的話,測試執行按步就班就可,實際上不是這樣,軟件生產畢竟不同于傳統的制造,人的主觀能動性起著關鍵性的作用,因為前期所有工作不可能都做到100%正確,所以最后一環測試執行肩負著補前期所有失誤的責任。測試執行除了按照用例執行外,關鍵的是在充分了解需求的情況下主動思考,找出存在的隱患和不合理的地方。
測試工作的最后體現就是一份結論清晰、有數據支撐的測試報告,可以使用各種方法來確定軟件是否達到質量目標,但最終要回答的還是功能是否可用、有沒有風險、風險的大小、風險是否可以規避和控制幾個問題。
文章來源于領測軟件測試網 http://www.kjueaiud.com/