引言 1963年,在美國發生了這樣一件事:編程人員把一個FORTRAN程序的循環語句DO 5 I=1,3誤寫為DO 5 I=1.3。一點之差導致飛往火星的火箭爆炸,造成1000多萬美元的損失。這種情況的發生,迫使人們考慮在軟件投入使用之前必須進行徹底的測試。今天,在軟件比較發達的國家,軟件測試已經成為一個獨立的產業,軟件公司紛紛建立獨立的測試隊伍研究測試技術并開展測試工作。中國的軟件測試起步較晚,但隨著我國軟件產業的蓬勃發展以及人們對軟件質量的重視,軟件測試正在成為一個新興的產業。近兩年來,國內新成立專業性測試機構10余家,一批批專業的軟件測試人員正涌現出來。每年國內都有大量的測試技術交流會議舉辦,有大量的測試研究論文在專業刊物上發表。在測試技術發展的同時,測試過程的管理顯得猶為重要。一個成功的測試項目,離不開對測試過程科學的組織和監控,過程管理已成為測試成功的重要保證。 1 測試過程概述 1.1 軟件測試過程概述 軟件測試過程是一種抽象的模型,用于定義軟件測試的流程和方法。眾所周知,開發過程的質量決定了軟件的質量,同樣的,測試過程的質量將直接影響測試結果的準確性和有效性。軟件測試過程和軟件開發過程一樣,都遵循軟件工程原理,遵循管理學原理。 1.2 軟件測試過程模型介紹 V模型 V模型最早是由Paul Rook在20世紀80年代后期提出的,旨在改進軟件開發的效率和效果。V模型反映出了測試活動與分析設計活動的關系。在圖1-1中,從左到右描述了基本的開發過程和測試行為,非常明確的標注了測試過程中存在的不同類型的測試,并且清楚的描述了這些測試階段和開發過程期間各階段的對應關系。
V模型指出,單元和集成測試應檢測程序的執行是否滿足軟件設計的要求;系統測試應檢測系統功能、性能的質量特性是否達到系統要求的指標;驗收測試確定軟件的實現是否滿足用戶需要或合同的要求。 W模型 W模型由Evolutif公司公司提出,相對于V模型,W模型增加了軟件各開發階段中應同步進行的驗證和確認活動。如圖1-2所示,W模型由兩個V字型模型組成,分別代表測試與開發過程,圖中明確表示出了測試與開發的并行關系。 H模型 V模型和W模型均存在一些不妥之處。如前所述,它們都把軟件的開發視為需求、設計、編碼等一系列串行的活動,而事實上,這些活動在大部分時間內是可以交叉進行的,所以,相應的測試之間也不存在嚴格的次序關系。同時,各層次的測試(單元測試、集成測試、系統測試等)也存在反復觸發、迭代的關系。 這個示意圖僅僅演示了在整個生產周期中某個層次上的一次測試“微循環”。圖中標注的其他流程可以是任意的開發流程。例如,設計流程或編碼流程。也就是說,只要測試條件成熟了,測試準備活動完成了,測試執行活動就可以(或者說需要)進行了。 其他模型 除上述幾種常見模型外,業界還流傳著其他幾種模型,例如X模型、前置測試模型等。X模型提出針對單獨的程序片段進行相互分離的編碼和測試,此后通過頻繁的交接,通過集成最終合成為可執行的程序。前置測試模型體現了開發與測試的結合,要求對每一個交付內容進行測試。這些模型都針對其他模型的缺點提出了一些修正意見,但本身也可能存在一些不周到的地方。所以在測試過程管理中,正確選取過程模型是一個關鍵問題。 1.3 軟件測試過程模型選取策略 前面介紹的測試過程模型中,V模型強調了在整個項目開發中需要經歷的不同的測試級別,但忽視了測試的對象不應該僅僅是程序。而W模型在這一點上進行了補充,明確指出應該對需求、設計進行測試。但是V模型和W模型都沒有將一個完整的測試過程抽象出來,成為一個獨立的流程,這并不適合當前軟件開發中廣泛應用的迭代模型。H模型則明確指出測試的獨立性,也就是說只要測試條件成熟了,就可以開展測試。
|