産品特色
編輯推薦
本書為“軟件開發與測試叢書”中的一冊,由從事軟件評測與工程化管理的專業人員組織編寫。本書結閤實例,係統地介紹瞭動態測試和靜態測試中的典型技術方法,比較瞭各種方法的不同之處並分析瞭它們的優缺點,緊扣軟件測試實際和標準規範要求,從測試原則、測試環境、測試策略、測試內容、測試方法、測試過程等不同方麵分彆介紹瞭單元測試、集成測試、配置項測試和係統測試等不同測試級彆中實用的測試方法與技術,具有很好地參考與應用價值。本書定位於一本軟件測試方法和技術的實用指南,適用於軟件從業人員瞭解軟件測試的基礎知識、一般流程、實用技術方法和常用測試工具,提高技術能力和過程能力水平,也適用於軟件測試機構建立測試能力體係,規範軟件測試管理。
內容簡介
本書全麵係統地介紹瞭軟件測試的方法與技術。書中結閤實例,詳細介紹瞭動態測試和靜態測試中的典型技術方法,比較瞭各種方法的不同之處並分析瞭它們的優缺點;緊扣軟件測試實際和標準規範要求,從測試原則、測試環境、測試策略、測試內容、測試方法、測試過程等不同方麵分彆介紹瞭單元測試、集成測試、配置項測試和係統測試等不同測試級彆中實用的測試方法與技術;此外還介紹瞭常用的軟件測試工具,軟件測試文檔的編寫,以及迴歸測試、麵嚮對象軟件測試、FPGA測試等專門測試。
本書定位於一本軟件測試方法和技術的實用指南,適用於軟件從業人員瞭解軟件測試的基礎知識、一般流程、實用技術方法和常用測試工具,幫助軟件從業人員提高技術能力和過程能力水平,也適用於軟件測試機構建立測試能力體係,規範軟件測試管理。
目錄
第1章軟件測試概述1
1.1軟件測試簡史1
1.2軟件測試定義3
1.3軟件測試原則4
1.4軟件的可測試性6
1.4.1可測試性定義與內涵6
1.4.2可測試性設計與實現7
1.4.3可測試性度量與評估9
1.5軟件測試模型9
1.5.1V模型9
1.5.2W模型10
1.5.3H模型11
1.6軟件測試級彆與測試類型12
1.6.1軟件測試級彆12
1.6.2軟件測試類型13
1.6.3軟件關鍵等級16
1.7軟件測試標準規範18
1.7.1相關標準概述18
1.7.2GB/T 9386—2008《計算機軟件測試文檔編製規範》21
1.7.3GB/T 15532—2008《計算機軟件測試規範》21
1.7.4GB/T 25000.51—2010《軟件工程軟件産品質量要求和評價
(SQuaRE)商業現貨(COTS)軟件産品的質量要求和測試細則》21
1.7.5ISO/IEC 29119 Software Testing22
1.8軟件測試人員能力素質要求26
1.9術語與縮略語27
第2章靜態測試技術29
2.1文檔審查29
2.1.1實施要點30
2.1.2組織與流程30
2.1.3成果形式31
2.2代碼審查34
2.2.1實施要點34
2.2.2組織與流程35
2.2.3成果形式35
2.3靜態分析38
2.3.1實施要點38
2.3.2組織與流程39
2.3.3成果形式40
2.4代碼走查40
2.4.1實施要點40
2.4.2組織與流程40
2.4.3成果形式41
2.5靜態測試技術分析41
〖1〗軟件測試實用方法與技術〖1〗目錄
第3章動態測試技術43
3.1白盒測試43
3.1.1概述43
3.1.2白盒測試基礎46
3.1.3基本路徑測試51
3.1.4控製結構測試53
3.1.5其他白盒測試技術61
3.2黑盒測試64
3.2.1概述64
3.2.2等價類劃分65
3.2.3邊界值分析68
3.2.4因果圖與決策錶法70
3.2.5組閤測試75
3.2.6基於場景測試77
3.2.7錯誤推測法81
3.2.8黑盒測試技術分析84
3.3灰盒測試85
3.3.1概述85
3.3.2實施步驟86
3.3.3灰盒測試技術分析86
3.4動態測試技術分析87
第4章單元測試89
4.1概述89
4.1.1單元測試的定義89
4.1.2單元測試的目的89
4.1.3單元測試的重要性90
4.2單元測試原則92
4.3單元測試環境92
4.4單元測試策略94
4.4.1自頂嚮下94
4.4.2自底嚮上94
4.4.3獨立單元95
4.5單元測試內容95
4.5.1功能測試96
4.5.2性能測試96
4.5.3接口測試96
4.5.4局部數據結構測試96
4.5.5邊界條件測試97
4.5.6獨立執行路徑測試97
4.5.7錯誤處理測試97
4.6單元測試方法98
4.6.1靜態測試98
4.6.2動態測試99
4.7單元測試用例設計100
4.8單元測試過程101
4.8.1測試策劃102
4.8.2靜態測試103
4.8.3動態測試111
4.8.4測試總結113
第5章集成測試114
5.1概述114
5.1.1集成測試的定義114
5.1.2集成測試的目的115
5.1.3集成測試的重要性116
5.2集成測試原則117
5.3集成測試環境117
5.4集成測試策略118
5.4.1大爆炸式集成119
5.4.2自頂嚮下集成120
5.4.3自底嚮上集成122
5.4.4三明治式集成123
5.4.5核心係統先行集成124
5.4.6分層集成125
5.4.7基於功能的集成126
5.4.8高頻集成127
5.4.9基於進度的集成128
5.4.10基於使用的集成128
5.4.11基於風險的集成129
5.4.12客戶/服務器係統的集成129
5.5集成測試內容130
5.6測試方法131
5.6.1體係結構分析131
5.6.2模塊分析131
5.6.3接口分析132
5.6.4可測試性分析133
5.6.5集成測試策略分析133
5.7集成測試用例設計133
5.8集成測試過程134
5.8.1測試策劃135
5.8.2測試設計與實現137
5.8.3測試執行138
5.8.4測試總結138
第6章配置項測試140
6.1概述140
6.1.1配置項測試的定義140
6.1.2配置項測試的目的140
6.1.3配置項測試的重要性141
6.2配置項測試原則141
6.3配置項測試環境142
6.4配置項測試策略143
6.5配置項測試內容143
6.6配置項測試方法144
6.6.1功能測試145
6.6.2性能測試146
6.6.3接口測試147
6.6.4人機交互界麵測試148
6.6.5強度測試149
6.6.6餘量測試149
6.6.7安全性測試150
6.6.8恢復性測試151
6.6.9邊界測試152
6.6.10數據處理測試152
6.6.11安裝性測試153
6.6.12容量測試154
6.7配置項測試用例設計154
6.7.1概述154
6.7.2SFME&FTA;綜閤分析155
6.7.3建立軟件測試用例設計模式158
6.7.4應用實例159
6.8配置項測試過程161
6.8.1測試策劃162
6.8.2測試設計與實現163
6.8.3測試執行164
6.8.4測試總結164
第7章係統測試166
7.1概述166
7.1.1係統測試的定義166
7.1.2係統測試的目的166
7.1.3係統測試的重要性167
7.2係統測試原則167
7.3係統測試環境168
7.4係統測試策略168
7.5係統測試內容169
7.6係統測試方法169
7.6.1可靠性測試169
7.6.2互操作性測試172
7.6.3兼容性測試173
7.7係統測試用例設計174
7.7.1概述174
7.7.2係統形式化模型175
7.7.3基於模型的係統測試178
7.7.4實例182
7.8係統測試過程184
第8章迴歸測試185
8.1概述185
8.1.1迴歸測試的定義185
8.1.2迴歸測試的目的186
8.1.3迴歸測試的重要性186
8.2迴歸測試策略187
8.3軟件更動影響域分析方法187
8.3.1黑盒測試更動影響域分析187
8.3.2白盒測試更動影響域分析191
8.4迴歸測試用例設計195
8.4.1迴歸測試用例設計原則195
8.4.2已有測試用例的選取195
8.5迴歸測試過程198
第9章麵嚮對象軟件測試200
9.1麵嚮對象軟件簡介200
9.2麵嚮對象軟件測試概述203
9.2.1麵嚮對象軟件的特點對測試的影響203
9.2.2麵嚮對象軟件測試和傳統測試的不同204
9.2.3麵嚮對象軟件測試分類205
9.3麵嚮對象軟件測試模型205
9.3.1麵嚮對象分析測試206
9.3.2麵嚮對象設計測試208
9.3.3麵嚮對象編程測試208
9.3.4麵嚮對象單元測試209
9.3.5麵嚮對象集成測試212
9.3.6麵嚮對象係統測試215
第10章FPGA測試218
10.1FPGA測試概述218
10.1.1可編程邏輯器件的基本概念218
10.1.2硬件描述語言的發展曆程219
10.1.3VHDL語言219
10.1.4Verilog HDL語言220
10.1.5麵嚮可編程邏輯器件的開發過程220
10.1.6可編程邏輯器件軟件與傳統軟件的不同222
10.1.7全過程域的可編程邏輯器件測試框架223
10.2靜態測試223
10.2.1文檔審查224
10.2.2代碼審查227
10.2.3編碼規則檢查229
10.2.4跨時鍾域分析230
10.2.5等效性驗證235
10.2.6靜態時序分析239
10.3仿真測試243
10.3.1仿真測試的特點244
10.3.2仿真測試平颱的組成245
10.3.3仿真測試的流程245
10.3.4功能仿真測試247
10.3.5門級仿真測試248
10.3.6時序仿真測試248
10.3.7仿真測試支持工具249
10.4軟硬協同驗證250
10.4.1驗證環境構成250
10.4.2支持工具251
10.5闆級驗證251
10.5.1作用251
10.5.2闆級驗證的典型環境252
10.5.3闆級驗證的流程252
第11章測試工具254
11.1概述254
11.2靜態測試工具255
11.2.1Logiscope255
11.2.2PRQA257
11.2.3SpyGlass259
11.2.4PrimeTime261
11.2.5Formalpro261
11.2.6其他靜態測試工具262
11.3動態測試工具262
11.3.1QACenter262
11.3.2WinRunner265
11.3.3JUnit266
11.3.4Testbed268
11.3.5CodeTest270
11.3.6QuestaSim271
11.3.7其他動態測試工具272
11.4測試管理工具272
11.4.1TestCenter272
11.4.2TP�睲anager274
11.4.3其他測試工具278
第12章軟件測試文檔279
12.1概述279
12.2製定測試計劃280
12.2.1測試計劃內容280
12.2.2測試計劃模闆281
12.2.3測試計劃常見問題284
12.3測試設計與實現285
12.3.1測試設計與實現的內容286
12.3.2測試說明模闆287
12.3.3測試設計與實現常見問題288
12.4測試執行290
12.4.1測試執行的內容290
12.4.2測試執行模闆290
12.4.3測試實施常見問題292
12.5測試總結293
12.5.1測試總結的內容293
12.5.2測試總結模闆294
12.5.3測試總結常見問題296
參考文獻298
精彩書摘
CHAPTER 3第3章
動態測試技術
與靜態測試不同,動態測試需要首先設計測試用例,然後一次或多次運行被測軟件,並通過分析軟件運行結果與期望結果的差異,來分析被測軟件是否滿足要求。
前麵已經介紹,軟件測試有多種分類方法。從是否關注被測程序的內部結構和實現細節的角度,軟件測試可分為白盒測試、黑盒測試,以及灰盒測試。
白盒測試利用程序設計的內部邏輯和控製結構生成測試用例,進行軟件測試;黑盒測試方法主要通過分析規格說明中被測軟件輸入和輸齣的有關描述來設計測試用例,不需要瞭解被測軟件的實現細節;灰盒測試是介於白盒測試和黑盒測試之間的一種測試方法,基於程序運行時的外部錶現並結閤程序內部邏輯結構來設計測試用例,采集程序外部輸齣和外部接口數據以及路徑執行信息來衡量測試結果,對軟件程序的外部需求及內部路徑都進行檢驗。
3.1白盒測試〖1〗3.1.1概述圖3��1白盒測試的基本原理圖白盒測試(white�瞓ox testing)也稱結構測試、邏輯驅動測試或基於程序的測試。根據GB/T 11457—2006,結構測試(structural testing)是“側重於係統或部件內部機製的測試。類型包括分支測試、路徑測試、語句測試”。白盒測試將測試形象地比喻成把程序放在一個透明的盒子裏,如圖3��1所示,測試人員瞭解被測程序的內部結構,利用程序的內部邏輯結構和相關信息,對程序的結構和路徑進行測試。白盒測試是從程序設計者的角度進行的測試。
白盒測試的方法總體上可分為靜態方法和動態方法兩大類。靜態方法是不實際執行程序而進行的測試,主要是檢查程序代碼或文檔的錶示和描述是否一緻、符閤要求以及有無衝突或歧義。文檔審查、代碼審查、靜態分析、代碼走查等都屬於靜態測試方法,已在第2章中進行瞭介紹。
動態測試的主要特點是當軟件在真實的或模擬的環境中執行之前、之後及執行當中,對軟件行為進行分析。動態測試時,軟件在受控的環境下使用特定的期望結果進行正式運行,顯示其在檢查狀態下是正確還是不正確。在本節後續小節中,將主要介紹動態白盒測試技術,包括基本路徑測試、控製結構測試和其他的技術。
基本路徑測試對程序設計復雜度進行閤理度量,並以此為指導來定義一個基本路徑集閤。基本路徑測試對所有獨立路徑進行測試,這些獨立路徑能組成程序的任意一條路徑,因此能夠滿足分支測試的要求。基本路徑測試通過對基本路徑集生成測試用例,保證程序中的每條語句在測試中至少被執行一次。
控製結構測試是由基本路徑測試演化而來的,對程序中語句或指令的執行順序進行控製,其主要目標是選擇測試用例以滿足代碼的各種覆蓋準則。控製結構測試通常包括對判定的測試、對循環的測試、對數據流的測試等。
〖1〗軟件測試實用方法與技術〖1〗第3章動態測試技術下麵給齣一段代碼示例,本節後續小節將結閤該代碼開展相關介紹。
問題描述: NextDate是一個函數,作用是根據輸入的日期(年、月、日)計算後一天的日期。假設NextDate函數接收的輸入值均為閤法值,對輸入值是否閤法的判斷在其他函數中完成,在此不再列齣。
……
前言/序言
“軟件開發與測試”叢書序
為應對“軟件危機”的挑戰,人們在20世紀60年代末提齣藉鑒傳統行業在質量管理方麵的經驗,用工程化的思想來管理軟件,以提高復雜軟件係統的質量和開發效率,即軟件工程化。40多年以來,軟件已廣泛應用到各個工程領域乃至生活的各個方麵,極大地提高瞭社會信息化水平,軟件工程也早已深入人心。
質量是産品的生命,對軟件尤其如此。軟件的直觀性遠不及硬件,軟件的質量管理相對睏難得多;但與傳統行業類似,大型復雜軟件的質量在很大程度上取決於軟件過程質量。質量評估是質量管理的關鍵,沒有科學的評估標準和方法,就無從有效地管理質量,軟件評測是質量評估的最有效和最重要的手段之一。
北京跟蹤與通信技術研究所軟件評測中心是從事軟件評測與工程化管理的專業機構,是在我國大力發展航天事業的背景下,為保障載人航天工程軟件質量,經原國防科工委批準,國內最早成立的第三方軟件評測與工程化管理的技術實體組織之一。自成立以來,軟件評測中心齣色地完成瞭以載人航天工程、探月工程為代錶的數百項重大工程關鍵軟件評測項目,自主研發瞭測試仿真軟件係統、測試輔助設計工具、評測項目與過程管理軟件等一係列軟件測試工具,為主製訂瞭GB/T 15532—2008《計算機軟件測試規範》、GB/T 9386—2008《計算機軟件測試文檔編製規範》、GJB 141《軍用軟件測試指南》等軟件測試標準,深入研究瞭軟件測試自動化、缺陷分析與預測、可信性分析與評估、測試用例復用等軟件測試技術,在嵌入式軟件、非嵌入式軟件和可編程邏輯器件軟件等不同類型軟件測試領域,積纍瞭豐富的測試經驗和強大的技術實力。
為進一步促進技術積纍和對外交流,北京跟蹤與通信技術研究所組織編寫瞭本套叢書。本叢書是軟件評測中心多年來技術經驗的結晶,緻力於以資深軟件從業者和工程一綫技術人員的視角,融會貫通軟件工程特彆是軟件測試、質量評估與過程管理等領域相關的知識、技術和方法。本叢書的特色是重點突齣、實用性強,每本書針對不同方嚮,著重介紹實踐中常用的、好用的技術內容,並配以相應的範例、模闆、算法或工具,具有很高的參考價值。
本叢書將為具有一定知識基礎和工作經驗、想要實現快速進階的從業者提供一套內容豐富的實踐指南。對於要對工作經驗較少的初入職人員進行技術培訓、快速提高其動手能力的單位或機構,本叢書也是一套難得的參考資料。
叢書編審委員會
2015年5月6日軟件測試是保障軟件質量的重要手段,是構建高可信軟件的關鍵環節。隨著軟件應用的日益廣泛,人們對軟件測試重要性的認識越來越深刻。20世紀80年代以來,特彆是在最近一二十年間,軟件測試無論是作為一項技術、一門學科還是作為一個行業,都得到瞭快速蓬勃的發展。
本書定位於一本軟件測試方法和技術的實用指南,緊扣軟件測試實際和標準規範要求,結閤行業內軟件測試現狀,係統地介紹軟件測試相關的知識、方法、技術和軟件工具,給齣較為詳細的軟件測試過程技術文檔模闆。
本書旨在幫助軟件從業人員瞭解軟件測試的基礎知識
軟件測試實用方法與技術/軟件開發與測試叢書 下載 mobi epub pdf txt 電子書