軟件測試與軟件開發


軟件測試與軟件開發
軟件開發與軟件測試都是軟件項目中非常重要的組成部分,軟件開發是生產制造軟件產品,軟件測試是檢驗軟件產品是否合格,兩者密切合作才能保證軟件產品的質量。
軟件測試與軟件開發的關系
軟件中出現的問題並不一定都是由編碼引起的,軟件在編碼之前都會經過問題定義、需求分析、軟件設計等階段,軟件中的問題也可能是前期階段引起的,如需求不清晰、軟件設計有紕漏等,因此在軟件項目的各個階段進行測試是非常有必要的。測試人員從軟件項目規划開始就參與其中,了解整個項目的過程,及時查找軟件中存在的問題,改善軟件的質量。軟件測試在項目各個階段的作用如下所示。
(1)項目規划階段:負責從單元測試到系統測試的整個測試階段的監控
(2)需求分析階段:確定測試需求分析,即確定在項目中需要測試什么,同時指定系統測試計划。
(3)概要設計與詳細設計階段:指定單元測試計划和集成測試計划。
(4)編碼階段:開發相應的測試代碼和測試腳本
(5)測試階段:實施測試並提交相應的測試報告。
軟件測試貫穿項目的整個過程,但它的實施過程與軟件開發並不相同。軟件開發是自頂向下、逐步細化的過程,軟件計划階段定義軟件作用域,軟件需求分析階段建立軟件信息域、功能和性能需求等,軟件設計階段選定編程語言、設計模塊接口等;軟件測試與軟件開發過程相反,它是自底向上、逐步集成的過程,首先進行單元測試,排除模塊內部邏輯與功能上的缺陷,然后按照軟件設計需求將模塊集成並進行集成測試,檢測子系統或系統結構上的錯誤,最后運行完整的洗頭膏,進行系統測試,檢驗其是否滿足軟件需求。
軟件測試與軟件開發的關系可以用圖1-11表示,其中圖1-11(b)為圖1--11(a)的細化。

常見的軟件測試模型
在軟件開發過程中,人們根據經驗教訓並結合未來軟件的發展趨勢總結出了很多軟件開發模型,如瀑布模型、快速原型模型、迭代模型等,這些模型對軟件開發過程具有很好的指導作用,但遺憾的是它們對軟件測試並沒有給予足夠的重視,利用這些模型無法更好的指導軟件測試工作。
軟件測試是與軟件開發緊密相關的一系列有計划的活動,是保證軟件質量的重要手段,因此人們又相繼設計了很多軟件測試模型用於指導測試工作。軟件測試模型兼顧了軟件開發過程,對軟件開發和測試進行了很好的融合,它既明確了軟件開發與測試之間的關系,又使測試過程與開發過程產生交互,是測試工作的重要參考依據。

軟件測試模型對測試工作具有指導作用,對測試效果與質量都有很大的影響,很多測試專家在實踐中不斷改進創新,創建了很多實用的軟件測試模型。下面介紹幾種比較重要的軟件測試模型。

1.V模型
V模型是由保羅魯克在20實際80年代提出的,它是軟件測試模型中最具有代表性的模型之一.V模型是瀑布模型的變種,在瀑布模型的后半部分添加了測試工作,如圖1-12所示。

V模型描述了基本的開發過程與測試行為,主要反映了測試活動分析與設計之間的關系。

它非常明確地表明了測試過程所包含地不同級別,以及測試各階段與開發各階段所對應地關系。
V模型地左邊是自上而下、逐步細化地開發過程,右邊是自下而上、逐步集成地過程,這也符合了軟件開發與軟件測試地關系。
V模型應用瀑布模型地思想將復雜地測試工作分成了目標明確地小階段來完成,具有階段性、順序性和依賴性,它既包含了對於源代碼地底層測試,也包含了對於軟件需求的高層測試。但是V模型也有一定的局限性,它只有在編碼之后才能開始測試,早期的需求分析等前期工作沒有涵蓋其中,因此它不能發現需求分析等早期的錯誤,這為后期的系統測試、驗收測試埋下了隱患。

2.W模型
W模型是由V模型演變而來的,它強調測試應伴隨整個軟件生命周期。其實W模型是一個雙V模型,軟件開發是一個V模型,而軟件測試於開發同步進行的另一個V模型,如圖1-13所示

W模型的測試范圍不僅包含程序,還包括需求分析,軟件設計等前期工作,這樣有利於盡早地去全面發現問題。但是W模型也有自己地局限性,它將軟件開發過程分成需求設計、編碼、集成等一系列地串行活動,無法支持迭代、自發性等需要變更調整地項目。

3.H模型
為了解決V模型與W模型存在地問題,有專家提出了H模型,H模型將測試活動完全獨立了出來,形成了一個完全獨立地流程,這個流程將測試准備活動和測試執行活動清晰得體現出來。測試流程和其它工作流程是並發執行的,只要某一個工作流程的條件成熟就可以開始進行測試。例如在概要設計工作流程上完成一個測試,其過程如圖1-14所示。

上圖只是體現了軟件生命周期中概要設計層次的一個測試【微循環】。在H模型中,測試級別不存在嚴格的次序關系,軟件生命周期的各階段測試工作可以反復觸發、迭代,既不同的測試可以反復迭代的進行。在實際測試工作中,H模型並無太多指導意義,讀者重點是理解其中的設計意義。

4.X模型
X模型的設計原理是將程序分成多個片段反復迭代測試,然后將多個片段集成再進行迭代測試,如圖所示

X模型左邊描述的是針對單獨程序片段進行的相互分離的編碼和測試,多個程序片段進行頻繁的交接,在X模型的右上部分,將多個片段集成為一個可執行的程序再進行測試。通過集成測試的產品可以進行更大規模的集成,也可以進行封裝提交給客戶。
在X模型的右下部分還定位了探索性測試,它能夠幫助有經驗的測試人員發現更多測試計划之外的軟件錯誤,但這對測試人員要求會更高一些。

上面共介紹了4種軟件測試模型,在實際測試工作中,測試人員更多的是結合W模型和H模型進行工作,軟件各個方面的測試內容是以W模型為准,而測試周期、測試計划和進度是以H模型為指導。X模型更多是作為最終測試、熟練性能測試的模板,例如對一個業務測試已經有2年實踐,則可以使用X模型進行模塊化的、探索性的方向測試。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM