本篇介紹軟件工程的過程管理、軟件測試、測試管理的基本概念和相關知識
一、軟件工程的過程管理
1、軟件過程
軟件過程是軟件生命周期中的一系列相關活動,即用于開發和維護軟件及相關產品的一系列活動。軟件產品的質量取決于軟件過程,具有良好軟件過程的組織能夠開發出高質量的軟件產品。
2、能力成熟度模型集成(Capability Maturity Model Integration,CMMI)
(1)能力成熟度模型集成融合了多種模型,形成了組織范圍內過程改進的單一集成模型,其主要目的是消除不同模型之間的不一致和重復,降低基于模型進行改進的成本;
(2)CMMI繼承了CMM的階段表示法和EIA/IS731的連續式表示法。這兩種表示方法各有優缺點,均采用統一的24個過程域,它們在邏輯上是等價的,對同一個組織采用兩種模型分別進行 CMMI 評估,得到的結論應該是相同的。
3、階段式模型
階段式模型基本沿襲CMM模型框架,仍保持4個成熟等級,但關鍵過程域做了一些調整和擴充。當組織通過了某一等級過程域中的全部過程,即意味著該組織的成熟度達到了這一等級。利用階段式模型對組織進行成熟度度量,概念清晰、易于理解、便于操作。
階段式模型的過程域分組
4、連續式模型
與階段式模型相比,連續式模型沒有與組織成熟度相關的幾個階段。連續式模型將24個過程域按照功能劃分為過程管理、項目管理、工程和支持四個過程組。
連續式模型的過程域分組
二、軟件測試
1、基本概念
軟件測試是發現軟件錯誤(缺陷)的主要手段,是軟件交付前必須完成的重要步驟。根據國家標準《計算機軟件測試規范(GB/T15532-2008)》,軟件測試的目的是驗證軟件是否滿足軟件開發合同或項目開發計劃、系統/子系統設計文檔、SRS、軟件設計說明和軟件產品說明等規定的軟件質量要求。同時,GB/T15532-2008還規定了測試用例設計原則和測試用例要素。通過測試,發現軟件缺陷,為軟件產品的質量測量和評價提供依據;
2、軟件測試的方法:靜態測試、動態測試(白盒測試和黑盒測試)
(1)靜態測試:靜態測試是指被測試程序不在機器上運行,而采用人工檢測和計算機輔助靜態分析的手段對程序進行檢測。靜態測試包括對文檔的靜態測試和對代碼的靜態測試。對文檔的靜態測試主要以檢查單的形式進行,而對代碼的靜態測試一般采用桌前檢查(Desk Checking)、代碼走查和代碼審查。經驗表明,使用這種方法能夠有效地發現 30%~70%的邏輯設計和編碼錯誤;
(2)動態測試:動態測試是指在計算機上實際運行程序進行軟件測試,一般采用白盒測試和黑盒測試方法;
- 白盒測試也稱為結構測試,主要用于軟件單元測試中。它的主要思想是,將程序看作是一個透明的白盒,測試人員完全清楚程序的結構和處理算法,按照程序內部邏輯結構設計測試用例,檢測程序中的主要執行通路是否都能按預定要求正確工作。另外,使用靜態測試的方法也可以實現白盒測試;
- 黑盒測試也稱為功能測試,主要用于集成測試、確認測試和系統測試中。黑盒測試將程序看作是一個不透明的黑盒,完全不考慮(或不了解)程序的內部結構和處理算法,而只檢查程序功能是否能按照 SRS 的要求正常使用,程序是否能適當地接收輸入數據并產生正確的輸出信息,程序運行過程中能否保持外部信息(例如,文件和數據庫等)的完整性等。黑盒測試根據SRS所規定的功能來設計測試用例,一般包括等價類劃分、邊界值分析、判定表、因果圖、狀態圖、隨機測試、猜錯法和正交試驗法等。
3、軟件測試的類型
根據國家標準GB/T15532-2008,軟件測試可分為單元測試、集成測試、確認測試、系統測試、配置項測試和回歸測試等類型;
4、面向對象的測試
由于OO系統具有封裝性、繼承性與多態性三個明顯特征,與傳統信息系統相比,測試目標是一致的,測試策略主要體現在測試的焦點從模塊移向了類、測試的角度擴大到了分析和設計模型兩個方面的不同;
5、軟件調試
(1)常用的軟件調試策略有蠻力法、回溯法和原因排除法三類;
(2)軟件調試與軟件測試的區別:
- 測試的目的是找出存在的錯誤,而調試的目的是定位錯誤并修改程序以修正錯誤;
- 調試是測試之后的活動,測試和調試在目標、方法和思路上都有所不同;
- 測試從一個已知的條件開始,使用預先定義的過程,有預知的結果,調試從一個未知的條件開始,結束的過程不可預計;
- 測試過程可以事先設計,進度可以事先確定,調試不能描述過程或持續時間。
三、軟件測試管理
軟件測試的管理包括過程管理、配置管理和評審工作。
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。