系列索引: 《軟件工程與實踐》第三版 軟件工程課程知識梳理
目錄
本章重難點:
● 掌握軟件測試的概念、目的和原則
● 熟悉軟件測試的步驟、方法和測試用例設計
● 掌握軟件調試概念、步驟、方法和原則
● 掌握軟件維護方法及有關實際應用
7.1 軟件測試概述
7.1.1 軟件測試的概念及內容
1. 軟件測試(Software test)的定義是:
2. 軟件測試的主要任務及內容
軟件測試重點是 測試軟件的功能、性能和可靠性 等是否符合用戶需求指標,其中,“功能測試”是軟件測試的最主要任務。
軟件測試分爲 系統軟件測試和應用軟件測試。
軟件測試按照步驟可分爲: 單元測試、集成測試、有效性(確認)測試和系統(整體)測試
*7.1.2 軟件測試的目的和原則
軟件測試的目的是: 儘可能多的找到軟件中的錯誤,而不是證明軟件的正確。
一般軟件測試對象存在的“缺陷/錯誤”,主要分爲3種: (1) 缺陷問題。 (2) 錯誤問題。 (3) 嚴重錯誤問題。
軟件測試的原則
7.2 軟件測試的特點及過程
7.2.1 軟件測試的特點
(1)軟件測試的成本很大。
(2)不可進行“窮舉”測試。
(3)測試具有“破壞性”
(4)軟件測試是整個開發過程的一個獨立階段,並貫穿到開發各階段(審查驗收)。
7.2.2 軟件測試的過程
1. 完整軟件系統的測試過程
2.軟件測試步驟
整個完整測試分爲兩個大的階段: 預測試和測試
具體的軟件測試分爲 單元測試、集成測試、有效性(確認)測試和系統測試4個步驟,最後進行驗收測試
7.3 軟件測試步驟及任務
7.3.1 單元測試及任務
軟件的單元測試也稱爲模塊測試,是對功能獨立運行的程序模塊的檢測。
通常,單元測試主要使用白盒測試技術,而且對多個模塊的測試可以並行地進行 。
目的是發現各模塊內部可能存在的各種問題
單元測試主要技術要求應達到:
軟件的單元測試通過準則,主要達到3項:
單元測試的輸入/輸出
單元測試工作的輸入爲:“程序源代碼”和“軟件詳細設計報告”;單元測試結束的輸出爲:“程序單元測試記錄”和“軟件(後續)測試計劃”等。
7.3.2 集成測試與集成
集成測試也叫組裝測試或聯合測試。在單元測試的基礎上,將所有模塊按照設計要求(如根據結構圖)組裝成爲子系統或系統,進行集成測試。
1.集成測試的方式
2.集成測試的任務及要求
集成測試工作輸入:“集成測試計劃”,“概要設計”,“測試大綱”.
集成測試結束輸出:“集成測試bug記錄”,“集成測試分析報告”.
3. 軟件集成及任務
系統集成是 將各軟件構件以及子系統組裝整合成爲完整軟件,並與軟件平臺和其他相關係統進行調配、整合的過程。
軟件(產品)是由多模塊(或對象)組成的軟件系統。
軟件集成的任務 是按照軟件體系結構設計的要求,將各軟件構件和子系統整合爲一個完整的軟件系統。
7.3.3 有效性測試及內容
有效性測試也稱確認測試。有效性測試是在模擬的環境下,運用黑盒測試的方法,驗證被測軟件是否滿足需求規格說明書列出的需求。
有效性測試工作的輸入爲:“軟件測試計劃”、“用戶需求分析報告”、“用戶操作手冊”和“安裝手冊”。
測試結束的輸出爲:“軟件測試bug記錄”和“軟件測試分析報告”。
7.3.4 系統測試及驗收
系統測試系統測試是針對整個產品系統進行的測試,目的是驗證系統是否滿足了需求規格的定義,找出與需求規格不符或與之矛盾的地方,從而提出更加完善的方案。
目標 主要是發現並糾正軟件開發過程中所產生的錯誤。
主要做法 是對由各子系統集成的軟件系統,以及配合系統運行而所需的人工過程或操作環境(如數據採集、錄入操作和設置等)進行統一的綜合測試。
系統測試主要通過與用戶需求指標進行詳盡對比,查找軟件與指標符合要求情況。其方法一般採取黑盒測試。
7.4 軟件測試策略及面向對象測試
7.4.1 軟件測試策略
軟件測試策略是指軟件測試的思路模式
軟件測試的複雜性主要原因是:
7.4.2 面向對象軟件測試
面向對象的單元測試 單元是封裝的類(包含一組不同的操作)和對象
面向對象的集成測試
面向對象的有效性測試
面向對象的有效性測試集中在 用戶可見活動(事件驅動與工程)和可識別系統輸出(結果),以及滿足用戶需求情況。
* 7.5 測試方法、用例及標準
* 7.5.1 軟件測試方法
1.黑盒測試
黑盒測試也稱爲功能測試或黑箱測試,其盒是指被測試的軟件。“黑盒”則指測試人員只知道被測軟件的界面和接口外部情況,不必考慮程序內部邏輯結構和特性,只根據程序的需求分析規格說明,檢查其功能是否符合。
在所有可能的輸入條件和輸出條件中確定測試數據,檢查程序都能正確輸出。
測試模塊之間接口,適合採用黑盒測試,適當輔以白盒測試(對程序內部結構-執行路徑的測試)
常用的幾種黑盒測試技術方法爲:
1)等價分類法
(1)劃分等價類。根據輸入條件將輸入數據劃分爲等價類
把所有可能的輸入數據(有效的和無效的)劃分成若干個等價的子集(稱爲等價類別或等價區間), 使得每個子集中的一個典型值在測試中的作用與這一子集中所有其它值的作用相同.
等價類別或等價區間是指 測試相同目標或者暴露相同軟件缺陷的一組測試用例
如何劃分等價類: 有效等價類(合理等價類) 無效等價類(不合理等價類)
劃分等價類的標準: 覆蓋 不相交 代表性
(2)設計測試用例。
(1)形成等價類表,每一等價類規定一個唯一的編號;
(2)設計一測試用例,使其儘可能多地覆蓋尚未覆蓋的有效等價類,重複這一 步驟,直到所有有效等價類均被測試 用例所覆蓋;
(3)設計一新測試用例,使其只覆蓋一個無效等價類,復這一步驟直到所有 無效等價類均被覆蓋;
2) 邊界值分析法
2.白盒測試
白盒測試主要是對程序內部結構和執行路徑的測試,也稱透明盒測試、開放盒測試、結構化測試、基於代碼測試和邏輯驅動測試等。
1) 白盒測試的原則
2) 白盒測試技術
3) 白盒測試的步驟及優缺點
黑盒白盒測試法優缺點及應用範圍比較如表所示
7.5.2 軟件測試用例設計及方法
1.測試用例概念及意義
測試用例(Test Case)是爲某個特殊目地及要求而編制的一組測試輸入數據、執行條件和預期結果
目的 是測試某個程序路徑或覈實是否滿足某個特定需求。
主要是指對一項特定的軟件產品進行測試任務的描述,包括測試方案、方法、技術和策略等。
意義主要體現6個方面:
2.測試用例設計要點
測試用例包括3種: 基本事件、備選事件和異常事件
測試用例的評審
7.5.3 軟件測試標準和工具
1. 軟件質量定義及測試標準
國際標準將軟件質量定義爲: 軟件質量是與軟件產品滿足明確或隱含需求的能力有關的特徵和特性的總和。
軟件特性可分爲6個子特性:功能性,可靠性,易用性,效率,可維護性,可移植性
2. 軟件測試工具
國際上主要分爲 Mercury測試工具、Rational測試工具、Segue測試工具三類軟件測試工具
1)功能測試類-- 功能測試和迴歸測試工具 QTP,SilkTest
2)數據/性能測試類-- VuGen
7.5.4 軟件測試文檔
軟件測試主要文檔包括:
軟件測試計劃、測試設計說明、測試用例說明、測試規程說明、測試項傳遞報告、測試日誌、測試事件報告、測試總結報告等。
7.6 軟件調試與發佈
軟件調試的任務是 在軟件測試的基礎上進一步糾正和確認相關錯誤或問題
7.6.1 軟件調試的特點及過程
1)軟件調試的概念及特點
軟件調試(Software debug)也稱軟件糾錯
調試工作由兩部分組成: (1)定位、查找其根源。 (2)糾錯、解決軟件問題並確認。
軟件調試工作的特點: 在軟件測試時所發現的軟件錯誤或問題,只是潛在的一些外表現象(由表及裏),有時與內在原因又無明顯的必然聯繫。軟件調試設計通過現象,查找內部原因並修改錯位的一個分析和解決問題的過程。
2)軟件調試過程及步驟
7.6.2 軟件調試的方法
1)強行排錯
主要技術和方法包括: (1)內存排錯。 (2)特定語句排錯。 (3)自動調試工具。
2)回溯法排錯
3)歸納法排錯
4)演繹法排錯
用演繹法排錯4個步驟: (1)列舉假設。 (2)排除不正確假設。 (3)進一步排查定位。 (4)證明假設。
7.6.3 軟件調試的原則
軟件調試由確定錯誤和修改錯誤兩部分組成,軟件調試的原則也分爲兩個部分。
7.7 軟件維護
7.7.1 軟件維護概述
軟件維護是指軟件交付使用後,由於運行中存在的缺陷,或因業務需求及環境等變化,對軟件進行微調的過程。
軟件維護屬於“售後技術服務”,是在軟件運行使用階段對軟件產品進行的調試和完善。
軟件需要進行維護的原因有3類:
軟件維護類型:(1)完善性維護。(2)適應性維護。 (3)糾錯性維護。(4)預防性維護。
軟件維護的特點 : (1)時間長、工作量大、成本高。 (2)維護的副作用。 (3)軟件維護困難。
7.7.2 軟件維護策略及方法
1)完善性維護策略及方法 2)適應性維護策略及方法 3)糾錯性維護策略及方法
7.7.3 軟件再工程技術
軟件再工程技術是指在對現存軟件進行挖掘整理再利用或對軟件維護延長生存期的技術,是將逆向工程、重構和正向工程組合構建軟件系統新形式的工程過程,有助於增進對軟件的理解。
軟件的逆向工程就是分析程序,力圖在比源代碼更高的抽象層次上建立程序表示的過程。
7.8 本章小結