2 測試過程管理理念
生命周期模型為我們提供了軟件測試的流程和方法,為測試過程管理提供了依據。但實際的測試工作是復雜而煩瑣的,可能不會有哪種模型完全適用于某項測試工作。所以,我們應該從不同的模型中抽象出符合實際現狀的測試過程管理理念,依據這些理念來策劃測試過程,以不變應萬變。當然測試管理牽涉的范圍非常的廣泛,包括過程定義、人力資源管理、風險管理等等,本節僅介紹幾條從過程模型中提煉出來的,對實際測試有指導意義的管理理念。
2.1 盡早測試
“盡早測試”是從W模型中抽象出來的理念。我們說測試并不是在代碼編寫完成之后才開展的工作,測試與開發是兩個相互依存的并行的過程,測試活動在開發活動的前期已經開展。
“盡早測試”包含兩方面的含義:第一,測試人員早期參與軟件項目,及時開展測試的準備工作,包括編寫測試計劃、制定測試方案以及準備測試用例;第二,盡早的開展測試執行工作,一旦代碼模塊完成就應該及時開展單元測試,一旦代碼模塊被集成成為相對獨立的子系統,便可以開展集成測試,一旦有BUILD提交,便可以開展系統測試工作。
由于及早的開展了測試準備工作,測試人員能夠于早期了解測試的難度、預測測試的風險,從而有效提高了測試效率,規避測試風險。由于及早的開展測試執行工作,測試人員盡早的發現軟件缺陷,大大降低了BUG修復成本。但是需要注意,“盡早測試”并非盲目的提前測試活動,測試活動開展的前提是達到必須的測試就緒點。
2.2 全面測試
軟件是程序、數據和文檔的集合,那么對軟件進行測試,就不僅僅是對程序的測試,還應包括軟件“副產品”的“全面測試”,這是W模型中一個重要的思想。需求文檔、設計文檔作為軟件的階段性產品,直接影響到軟件的質量。階段產品質量是軟件質量的量的積累,不能把握這些階段產品的質量將導致最終軟件質量的不可控。
“全面測試”包含兩層含義:第一,對軟件的所有產品進行全面的測試,包括需求、設計文檔,代碼,用戶文檔等等。第二,軟件開發及測試人員(有時包括用戶)全面的參與到測試工作中,例如對需求的驗證和確認活動,就需要開發、測試及用戶的全面參與,畢竟測試活動并不僅僅是保證軟件運行正確,同時還要保證軟件滿足了用戶的需求。
“全面測試”有助于全方位把握軟件質量,盡最大可能的排除造成軟件質量問題的因素,從而保證軟件滿足質量需求。
2.3 全過程測試
在W模型中充分體現的另一個理念就是“全過程測試”。雙V字過程圖形象的表明了軟件開發與軟件測試的緊密結合,這就說明軟件開發和測試過程會彼此影響,這就要求測試人員對開發和測試的全過程進行充分的關注。
“全過程測試”包含兩層含義:第一,測試人員要充分關注開發過程,對開發過程的各種變化及時做出響應。例如開發進度的調整可能會引起測試進度及測試策略的調整,需求的變更會影響到測試的執行等等。第二,測試人員要對測試的全過程進行全程的跟蹤,例如建立完善的度量與分析機制,通過對自身過程的度量,及時了解過程信息,調整測試策略。
“全過程測試”有助于及時應對項目變化,降低測試風險。同時對測試過程的度量與分析也有助于把握測試過程,調整測試策略,便于測試過程的改進。
2.4 獨立的、迭代的測試
我們知道,軟件開發瀑布模型只是一種理想狀況。為適應不同的需要,人們在軟件開發過程中摸索出了如螺旋、迭代等諸多模型,這些中需求、設計、編碼工作可能重疊并反復進行的,這時的測試工作將也是迭代和反復的。如果不能將測試從開發中抽象出來進行管理,勢必使測試管理陷入困境。
軟件測試與軟件開發是緊密結合的,但并不代表測試是依附于開發的一個過程,測試活動是獨立的。這正是H模型所主導的思想!蔼毩⒌、迭代的測試”著重強調了測試的就緒點,也就是說,只要測試條件成熟,測試準備活動完成,測試的執行活動就可以開展。
所以,我們在遵循盡早測試、全面測試、全過程測試理念的同時,應當將測試過程從開發過程中適當的抽象出來,作為一個獨立的過程進行管理。時刻把握獨立的、迭代測試的理念,減小因開發模型的繁雜給測試管理工作帶來的不便。對于軟件過程中不同階段的產品和不同的測試類型,只要測試準備工作就緒,就可以及時開展測試工作,把握產品質量。
文章來源于領測軟件測試網 http://www.kjueaiud.com/