本書共8章,第1章概述AI(Artificial Intelligence,人工智能)系統(tǒng),介紹機器學習的模型和分類,以及AI系統(tǒng)對測試工程師“提出”的新問題等;第2章介紹數(shù)據(jù)的處理過程,以及數(shù)據(jù)的分組方法,詳細介紹依托測試數(shù)據(jù)的測試評價方法;第3章講解模型中超參數(shù)相關的概念,以及關于模型性能的評估指標,并介紹了較為主流的模型的基準測試;第4章重點介紹AI系統(tǒng)的測試用例設計方法,以及傳統(tǒng)軟件測試方法在AI系統(tǒng)測試中的應用,同時也介紹ChatGPT類應用中SSE(Server-Sent Events)協(xié)議的接口測試和LangSmith在測試過程中的使用方法;第5章介紹AI道德的驗證,這也是大模型涌現(xiàn)后絕大多數(shù)大模型專家所關注的內容,該章重點介紹大模型的“道德”內容及驗證方法;第6章介紹提示詞工程和軟件測試,我們既要能夠測試大模型的應用,也要能夠充分利用大模型完成測試工作,該章重點介紹通過提示詞工程利用大模型完成測試工作的方法;第7章介紹智能化測試,通過學習開源的智能化測試工具及實踐,讀者可親身體驗智能化測試的好處;第8章介紹了從AI算法的智能化測試到大模型的智能化測試的轉變的知識。
本書內容通俗易懂、實例豐富,適合大模型開發(fā)者、軟件測試人員,以及大模型愛好者閱讀和學習。
1,內容豐富,解密大模型在軟件測試領域的應用方法。
2,講解了如何測試大模型、如何利用大模型進行軟件測試,這本書都給出了行之有效的實施方案。
3,重點介紹 AI 系統(tǒng)的特殊的測試用例設計方法,以及傳統(tǒng)軟件測試方法在 AI 系統(tǒng)測試中的應用,同時也介紹 ChatGPT 類應用中 SSE 協(xié)議的接口測試和 LangSmith 在測試過程中的使用方法。
4,介紹 AI 道德的驗證和實踐方法,這也是大模型涌現(xiàn)后絕大多數(shù)大模型專家所關注的內容,該章重點介紹大模型的“道德”內容,以及一些驗證方法和優(yōu)秀實踐。
5,介紹提示詞工程和軟件測試,我們既要能夠測試大模型的應用,也要能夠充分利用大模型完成測試工作,重點介紹通過提示詞工程利用大模型完成測試工作的方法。
6,介紹智能化測試,通過學習開源的智能化測試工具的實踐,讀者可親身體驗智能化測試的好處。
7,借助大模型的智能化測試,讓讀者體驗從 AI 算法的智能化測試到大模型的智能化測試的轉變,并在介紹真實的 RAG 實踐后讓讀者體驗大模型測試和用大模型進行測試。
陳磊,曾任職京東測試架構師,阿里云有價值專家,華為云有價值專家,中國商業(yè)聯(lián)合會互聯(lián)網(wǎng)應用工作委員會智庫專家,中關村智聯(lián)軟件服務業(yè)質量創(chuàng)新聯(lián)盟軟件測試標準化技術委員會委員,中移聯(lián)合智庫專家, Asian Journal of Physical Education & Computer Science in Sports 編委會委員、 EXIN DOM !督涌跍y試方法論》、《持續(xù)測試》、《軟件研發(fā)效能權威指南》《京東質量團隊轉型實踐:從測試到測試開發(fā)的蛻變》、《軟件研發(fā)行業(yè)創(chuàng)新實戰(zhàn)案例解析》、《信創(chuàng)產品測試》作者,在極客時間開設過專欄“接口測試入門課”,在拉勾教育開設過“軟件測試第一課”,擔任過《軟件研發(fā)質量管理體系白皮書》、《測試敏捷化白皮書》編委。具有多年質量工程技術實踐經驗,精通研發(fā)效能提升、手工測試團隊自動化測試轉型實踐、智能化測試等,公開發(fā)表學術論文近 30 篇,專利 20 余篇,并且是國內 TID 、 NCTS 、 MAD 、 MPD 、 TICA 、China DevOpsdays 、 QECon、GOPS、GTest等技術峰會的演講嘉賓或出品人。
第 1 章 AI 系統(tǒng)概述 001
1.1 AI 簡介 001
1.2 AI 系統(tǒng)的分類 003
1.3 機器學習的模型和分類 006
1.4 AIGC 是新趨勢 009
1.5 AI 系統(tǒng)對測試工程師提出的新問題 010
1.5.1 測試徹底變成黑盒測試 010
1.5.2 數(shù)據(jù)集劃分困難 011
1.5.3 測試預期變得模糊 011
1.5.4 偏見識別要求高 012
1.5.5 多種可能性導致需要重定判斷標準 013
1.6 小結 014
第 2 章 數(shù)據(jù)和測試評價 015
2.1 數(shù)據(jù)收集和清洗 015
2.2 數(shù)據(jù)標注 018
2.3 數(shù)據(jù)集劃分 021
2.3.1 留出法 023
2.3.2 自助法 023
2.3.3 交叉驗證法 024
2.4 依托測試數(shù)據(jù)的測試評價方法 026
2.5 小結 029
第 3 章 AI 模型評估 031
3.1 大模型中常用參數(shù)的含義 031
3.2 模型的性能度量 035
3.3 大模型的基準測試 038
3.3.1 面向自然語言處理能力的基準測試:GLUE 和 SuperGLUE 038
3.3.2 模型知識獲取能力的基準測試:MMLU、C-Eval 041
3.3.3 多指標綜合基準測試:HELM 043
002 大模型測試技術與實踐
3.4 小結 044
第 4 章 AI 系統(tǒng)測試的關鍵技術和實踐 045
4.1 功能測試和 AI 系統(tǒng)測試困局 045
4.2 蛻變測試 047
4.3 傳統(tǒng)軟件的測試實踐仍然有效 053
4.3.1 測試用例設計方法同樣有效 053
4.3.2 分層測試還會發(fā)揮作用 058
4.3.3 兼容性測試設計方法更加重要 059
4.3.4 性能測試仍然有效 063
4.4 ChatGPT 類應用中 SSE 協(xié)議的接口測試 067
4.4.1 SSE 協(xié)議簡介 067
4.4.2 SSE 服務端代碼 069
4.4.3 SSE 客戶端代碼 070
4.4.4 SSE 接口的測試腳本 072
4.5 LangSmith 幫助測試大模型系統(tǒng)的能力和效果 072
4.6 AI 系統(tǒng)的測試評估方法 078
4.7 小結 079
4.7.1 代碼自動化法 079
4.7.2 人工法 081
4.7.3 模型法 082
第 5 章 AI 道德的驗證和實踐方法 085
5.1 AI 道德 085
5.1.1 歧視 089
5.1.2 偏見 091
5.1.3 道德判斷 095
5.1.4 透明度 097
5.1.5 可信度 100
5.1.6 權利謀取 101
5.2 AI 道德的好幫手:Model Card 102
5.3 AI 道德的其他驗證和實踐方法 106
5.4 小結 109
第6章 提示詞工程和軟件測試 111
6.1 提示詞工程 111
6.1.1 提示詞 112
003 目 錄
6.1.2 提示詞的設計方法 116
6.2 大模型的思維鏈提示詞系統(tǒng)集成 127
6.2.1 通過思維鏈實現(xiàn)測試用例設計方法中的等價類劃分法 128
6.2.2 通過思維鏈實現(xiàn)測試用例設計方法中的因果圖法 138
6.3 通過LangChain封裝訊飛星火大模型的調用類 146
6.4 利用大模型生成數(shù)據(jù) 155
6.5 小結 157
第7章 智能化測試 159
7.1 智能化測試是發(fā)展的必然 159
7.2 分層測試中的智能化測試 163
7.2.1 開源的智能化單元測試 164
7.2.2 智能化接口測試設計思路 165
7.2.3 開源的智能化UI測試 171
7.3 小結 174
第8章 大模型下的智能化測試 175
8.1 大模型和測試技術 175
8.2 RAG 176
8.3 Embedding模型 178
8.4 SQLAlchemy實現(xiàn)數(shù)據(jù)庫的交互 179
8.4.1 使用filter_by()方法 179
8.4.2 使用filter()方法 180
8.4.3 使用join()方法 181
8.4.4 使用distinct()方法 182
8.4.5 使用order_by()方法 182
8.4.6 使用group_by()方法和having子句 182
8.5 通過LlamaIndex實現(xiàn)大模型SQL語句生成的3種方法詳解 183
8.5.1 查詢引擎 184
8.5.2 查詢時表提取 186
8.5.3 Retriever 187
8.6 LlamaIndex的NodeParser 188
8.6.1 文檔的NodeParser 189
8.6.2 HTML的NodeParser 190
8.6.3 JSON的NodeParser 190
8.6.4 Markdown的NodeParser 192
004 大模型測試技術與實踐
8.6.5 文檔分割 193
8.7 大模型云服務生成接口測試腳本實戰(zhàn) 195
8.7.1 大模型云服務的調用 195
8.7.2 接口測試腳本生成 201
8.7.3 接口測試的解決方案 207
8.8 本地大模型生成接口測試腳本實戰(zhàn) 212
8.8.1 Ollama在本地部署大模型 213
8.8.2 Ollama在局域網(wǎng)內部署訪問 214
8.8.3 Ollama常用命令 218
8.8.4 本地大模型驅動的接口測試實踐 219
8.9 基于大模型的Web自動化框架LaVague 221
8.10 小結 223
附錄A 225
附錄B 227
B.1 系統(tǒng)層指標 227
B.1.1 CPU指標 227
B.1.2 內存指標 228
B.1.3 磁盤指標 229
B.1.4 網(wǎng)絡指標 231
B.2 中間件層指標 232
B.2.1 網(wǎng)關 232
B.2.2 數(shù)據(jù)庫 233
B.2.3 緩存 234
B.2.4 MQ 235
B.2.5 分布式存儲系統(tǒng) 236
B.3 應用層指標 236
B.3.1 響應時間 236
B.3.2 吞吐量 237
B.3.3 應用資源 238
B.3.4 線程池 239
B.3.5 垃圾回收 239
B.3.6 錯誤信息 241
B.4 業(yè)務層指標 242
B.5 壓力機指標 242