軟件單元測試
顧翔
- 出版商: 電子工業
- 出版日期: 2023-06-01
- 售價: $534
- 貴賓價: 9.5 折 $507
- 語言: 簡體中文
- 頁數: 316
- 裝訂: 平裝
- ISBN: 7121455099
- ISBN-13: 9787121455094
-
相關分類:
軟體測試、Unit Test 單元測試
立即出貨
買這商品的人也買了...
-
$403軟件測試基礎, 2/e (Introduction to Software Testing, 2/e)
-
$352分佈式實時系統數據分發服務
-
$607軟件接口測試實戰詳解
-
$505軟件測試 — 原理、模型、驗證與實踐
-
$636$604 -
$239$227 -
$403軟件性能測試 — LoadRunner 性能監控與分析實例詳解
-
$650$507 -
$294$279 -
$294$279 -
$650$507 -
$600$450 -
$760PyTorch 電腦視覺實戰:目標偵測、影像處理與深度學習
-
$556大規模語言模型:從理論到實踐
-
$599$569 -
$505LangChain 入門指南:構建高可復用、可擴展的 LLM 應用程序
-
$356自然語言處理技術與應用
-
$403Llama 大模型實踐指南
-
$708$673 -
$534$507 -
$580$458 -
$539$512 -
$331Flask Web應用開發項目實戰 基於Python和統信UOS
-
$660$515 -
$714$678
相關主題
商品描述
本書對軟件單元測試進行了詳細介紹。
1 章與2 章介紹軟件單元測試的概念和基礎知識;
3 章到5 章介紹C 語言、Java 語言和Python 語言的單元測試框架和技巧;
6 章與7 章介紹代碼覆蓋率工具和代碼語法規範檢查工具;
8 章通過兩個案例詳細介紹TDD。
讀者可以根據自己的需求對以上內容進行選擇性閱讀或者全部閱讀。
另外,為了鞏固大家的學習效果,每一章結尾都有相應的習題。
本書適合軟件開發工程師、測試工程師、項目經理和大學計算機專業本科高年級學生與研究生閱讀。
目錄大綱
第1章軟件單元測試簡介1
1.1樁對象和測試驅動函數1
1.2測試驅動開發2
1.3軟件測試應該貫徹始終2
1.4軟件測試金字塔3
1.5單元測試在傳統開發模式中的地位4
1.6單元測試在敏捷開發模式中的地位5
1.7精準測試5
1.8單元測試和白盒測試6
1.9單元測試的FIRST原則和AIR原則7
1.10習題7
第2章軟件單元測試基礎知識8
2.1動態自動化單元測試8
2.1.1被測程序8
2.1.2語句覆蓋8
2.1.3分支覆蓋11
2.1.4條件覆蓋13
2.1.5條件/分支覆蓋15
2.1.6MC/DC覆蓋15
2.1.7路徑覆蓋17
2.1.8幾種覆蓋率的強弱關係18
2.1.9控制流覆蓋18
2.2靜態自動化單元測試:代碼掃描19
2.3手工單元測試:代碼調試20
2.4手工單元測試:代碼評審20
2.5單元測試中的問題20
2.5.1功能層面的問題21
2.5.2性能層面的問題22
2.5.3安全層面的問題22
2.6習題23
第3章C語言動態自動化單元測試框架24
3.1在Windows下安裝C語言運行環境24
3.1.1安裝配置MinGW24
3.1.2安裝配置MSYS225
3.1.3安裝配置IDE25
3.2安裝編譯CUnit31
3.2.1在Windows下安裝CUnit31
3.2.2在Linux下安裝CUnit31
3.2.3創建被測文件和測試文件32
3.2.4在Windows下運行測試文件34
3.2.5在Linux下運行測試文件34
3.2.6運行結果35
3.3查看測試報告35
3.4CUnit介紹36
3.4.1CUnit的四種運行模式36
3.4.2CUnit頭文件38
3.4.3CUnit支持的斷言39
3.4.4CUnit架構40
3.4.5CUnit的基本測試步驟40
3.5案例41
3.5.1指針操作41
3.5.2返回結構體43
3.5.3文件的讀寫操作44
3.6習題46
第4章Java語言動態自動化單元測試框架47
4.1在Eclipse中創建Maven項目47
4.2在Eclipse中配置JUnit和TestNG運行環境50
4.2.1配置JUnit運行環境50
4.2.2配置TestNG運行環境53
4.3JUnit455
4.3.1JUnit4的測試代碼55
4.3.2與JUnit4相關的API58
4.3.3JUnit4的裝飾器58
4.3.4JUnit4的斷言59
4.3.5超時測試59
4.3.6JUnit4參數化測試60
4.3.7測試異常61
4.3.8批量運行63
4.3.9利用Ant運行63
4.3.10利用Maven運行67
4.3.11配合Allure生成漂亮的JUnit4測試報告70
4.4JUnit582
4.4.1JUnit5的測試代碼82
4.4.2與JUnit5相關的API83
4.4.3JUnit5的裝飾器84
4.4.4JUnit5的斷言86
4.4.5JUnit5的依賴注入88
4.4.6傳遞自定義參數90
4.4.7JUnit5參數化測試91
4.4.8內嵌測試類94
4.4.9重複測試96
4.4.10動態測試97
4.4.11分組斷言assertAll98
4.4.12批量測試98
4.4.13利用Maven運行99
4.4.14配合Allure生成漂亮的JUnit5測試報告101
4.5TestNG105
4.5.1TestNG的使用和運行105
4.5.2testng.xml文件與Suite測試107
4.5.3與TestNG相關的API109
4.5.4TestNG的裝飾器110
4.5.5TestNG的斷言113
4.5.6異常測試113
4.5.7忽略測試114
4.5.8超時測試114
4.5.9分組測試114
4.5.10依賴測試116
4.5.11TestNG參數化測試119
4.5.12TestNG報告121
4.5.13利用Maven運行121
4.5.14配合Allure生成漂亮的TestNG測試報告123
4.6測試替身127
4.6.1樁對象128
4.6.2偽造對象128
4.6.3間諜對象131
4.6.4模擬對象132
4.7利用EvoSuite自動生成測試用例155
4.7.1在Eclipse中運行155
4.7.2在命令行中運行156
4.8變異測試157
4.8.1變異測試引出157
4.8.2變異測試簡介158
4.8.3PITest在Eclipse中的安裝和使用160
4.8.4PITest測試報告162
4.8.5修改測試數據163
4.9在Jenkins中配置JUnit4、JUnit5、TestNG和Allure164
4.9.1Jenkins安裝和基本配置164
4.9.2JUnit在Jenkins中的配置168
4.9.3TestNG在Jenkins中的配置170
4.9.4AllureJUnit在Jenkins中的配置172
4.10習題174
第5章Python語言動態自動化單元測試框架176
5.1unittest176
5.1.1計算器案例176
5.1.2unittest的裝飾器178
5.1.3unittest的斷言179
5.1.4通過parameterized.expand實現參數化179
5.1.5測試異常180
5.1.6批量運行生成報告181
5.2Pytest182
5.2.1Pytest安裝182
5.2.2案例183
5.2.3Pytest的裝飾器185
5.2.4Pytest常用命令行選項185
5.2.5Pytest實現並發測試186
5.2.6Pytest特有的參數化功能187
5.2.7配合Allure生成漂亮的Pytest測試報告190
5.2.8在Jenkins中配置AllurePytest195
5.3Python的模擬對象197
5.3.1產品代碼197
5.3.2通過unittest使用模擬對象197
5.3.3通過Pytest使用模擬對象198
5.4變異測試工具mutpy199
5.4.1mutpy的安裝199
5.4.2mutpy的使用199
5.5習題201
第6章代碼覆蓋率工具202
6.1C語言覆蓋率工具gcov和lcov202
6.1.1lcov與gcov的安裝和運行202
6.1.2lcov報告205
6.1.3lcov在Jenkins中的應用205
6.2Java語言覆蓋率工具JaCoCo207
6.2.1JaCoCo在Eclipse下的應用207
6.2.2JaCoCo在Maven下的應用210
6.2.3JaCoCo在Jenkins中的應用211
6.3Python語言覆蓋率工具Coverage和pytest-cov213
6.3.1Coverage213
6.3.2pytest-cov215
6.3.3Python語言覆蓋率工具在Jenkins中的應用216
6.4習題217
第7章代碼語法規範檢查工具218
7.1Java語言靜態分析工具PMD218
7.1.1PMD在Eclipse下的應用218
7.1.2配置PMD的Maven文件220
7.1.3在Jenkins中配置PMD222
7.2Python語言靜態分析工具flake8和pylint225
7.2.1flake8225
7.2.2pylint226
7.2.3flack8和pylint在Jenkins中的應用227
7.3多代碼語法規範檢查平台SonarQube229
7.3.1安裝JDK229
7.3.2SonarQube支持的數據庫231
7.3.3SonarQube236
7.3.4安裝sonar-scanner242
7.3.5SonarQube的配置及應用244
7.3.6在Jenkins中配置SonarQube254
7.4習題258
第8章TDD案例259
8.1斐波那契數列259
8.1.1初始化259
8.1.2第一次需求變更261
8.1.3第二次需求變更263
8.1.4第三次需求變更266
8.1.5第四次需求變更268
8.2完善計算器產品代碼271
8.3利用Jenkins分析TDD代碼292
8.4習題297
附錄A在寫作過程中發現開源軟件中的Bug298
參考文獻301