1. 程式人生 > 其它 >軟體生命週期中的測試

軟體生命週期中的測試

瀑布模型
使用者需求、需求分析、概要設計、詳細設計、編碼和實現、測試、執行維護


瀑布模型的階段
使用者需求:使用者需求一般由使用者提出,系統人員或者產品市場人員從客戶或將來的系統使用者中收集原始專案的資訊和需求;
需求分析:對使用者需求進行可行性分析,並對使用者需求和要求進行詳細描述,並最終得到管理層和客戶的批准。通過需求分析,定義了開發系統的目的和需要實現的特性和功能;
概要設計:明確系統的框架、系統的模組數量,以及各個模組之間的介面、資料結構,以及可能的網路環境支援和後臺資料庫等。簡單的說,就是將需求對映到新系統的功能和框圖上,從而可以對每個子系統經行獨立的開發;
詳細設計:細化概要設計的框架,定義每個子系統的任務、行為、內部機構以及於其他子系統的介面;
編碼和實現:通過編碼語言實現所有已經定義的單元,比如模組、單元和類等;
測試:

作為開發週期的一個階段,主要是指測試執行活動;
執行測試:軟體系統或者產品釋出,在使用者中使用,以及根據反饋進行必要的維護活動;

瀑布模型的特點:
軟體測試是開發過程中的一個階段,對產品質量進行的最後檢查;
在客戶需求明確,以及開發過程中沒有頻繁的需求變更,比較適合瀑布開發模型;
假如需求不明確,或者需求經常發生變更,採用瀑布模型是非常不適合的;

V模型
單元測試:驗收軟體的單元是否按照單元規格說明(詳細設計說明)正確執行,既保證每個最小的單元能夠正常執行。單元測試一般由開發人員來執行,首先設定最小的單元,然後統通過設計相對應的測試用例來驗證各個單元功能的正確性;
整合測試:檢查多個的單元是否按照系統概要設計描述的方式協同工作。整合測試的主要關注點是系統能夠成功編譯,實現了主要的業務功能,系統各個模組之間資料能夠正常通訊等;
系統測試:

驗證整個系統是否滿足需求規格說明;
驗收測試:從使用者的角度檢查系統是否滿足合同中定義的需求或者使用者需求;

V模型的特點


V模型體現的主要思想是開發和測試同等重要,左側代表的是開發活動,而右側代表的是測試活動;
V模型針對每個開發階段,都有一個測試級別與之相對應;
測試依舊是開發生命週期中的階段,與瀑布模型不同的是,有多個測試級別與開發階段對應;
V模型適用於需求明確和需求變更不頻繁的情形;

非線性模型

瀑布模型和V模型,都是屬於線性模型的範疇,他們的重要特點就是線性的,即前置條件是軟體系統具有比較明確的需求,且沒有頻繁的需求變更;

需求是可變的:某些應用軟體的需求與外部環境、公司經營策略或經營內容等密切相關,這些都是經常調整和變化,因此需求也是變化的;

需求是模糊的:許多使用者對他們的需求最初只是模糊的概念,想要求一個對需求只有初步設想的人準確無誤的說出全部需求,顯然是不切實際的;

使用者和開發者難於溝通:大多數使用者和領域專家不熟悉計算機和軟體技術,而軟體開發人員往往不熟悉使用者的專業領域,開發人員和使用者之間很難做到完全溝通和互相理解,在需求分析簡短做出的瀛湖需求常常是不完整、不正確的;

增量模型

增量模型的特點

增量模型的每個階段交付滿足客戶需求的一個子集的可執行產品。因此可以較好的適應變化,以及控制風險;

增量的一個缺點是後面併入的構件不能破壞已構造好的系統部分,這需要軟體具備開放式的體系結構;

在開發構成中,需求的變化是不可避免的。增量模型的靈活性可以使其適應這種變化的能力大大優於線性模型,但也很容易退化為邊做邊改模型,從而是軟體過程控制失去整體性;

迭代模型

迭代模型的特點

迭代模型包括了一系列的迭代,每一個迭代都包括一些或者許多的開發活動(需求、分析、設計、實現等等);

每個後續的迭代都建立在前一個迭代的基礎上以使系統得到發展和細化,直到最終產品被完成;

迭代模型中整合不是在專案的尾聲進行的“大動作”,每一次迭代都以整合構建系統各部分結束,這樣不斷的積累將使日後的返工最小化;