胡應廣-AI輔助測試腳本失敗分析和修復.pdf

編號:614114 PDF 29頁 3.27MB 下載積分:VIP專享
下載報告請您先登錄!

胡應廣-AI輔助測試腳本失敗分析和修復.pdf

1、AI輔助測試腳本失敗分析和修復胡應廣|華為演講嘉賓胡應廣高級測試開發工程師華為ICT軟件測試工程與自動化專家,多年云原生軟件測試開發相關經驗,負責GTS產品測試系統構架設計與開發,主導產品線大模型應用測評系統能力構建和AI輔助研發質效提升項目的探索與實踐。目 錄CONTENTS1.背景介紹2.問題與挑戰3.解決思路與整體方案4.具體實現與技術實踐5.總結與展望背景介紹PART 01自動化測試過程分析與業務痛點 自動化測試流程與耗時統計出包安裝 編譯出包 環境安裝失敗用例定位分析 查看執行機日志 失敗的步驟檢查 響應碼檢查 響應內容檢查 進行問題復現 重新執行用例,對比正常執行日志進行初步診斷問

2、題處理 檢查環境信息 檢查用例相關服務狀態和環境配置是否正常 版本問題提單跟蹤 用例問題修復用例 環境問題修復環境 分析業務日志 登錄節點查看業務日志,進一步分析根因用例執行 測試數據預置 自動化用例執行小時級小時級xx人天(用例規模10w+、失敗用例千級)x人天多流水線并行敏捷開發模式下需要通過執行大量自動化用例快速反饋版本質量和存在的缺陷,產品自動化測試用例越來越龐大,全量執行一次失敗用例多,全部依賴人工分析投入效率低、工作量大,問題反饋周期長,無法滿足業務訴求;即便把自動化用例通過率提升到99%以上,每天仍然有上千個失敗用例要人工分析,按照現有效率計算仍需要投入數人天的工作量。業務現狀與

3、痛點問題與挑戰PART 02日志獲取困難人工分析效率低相同問題重復分析業務環境集群化部署組網復雜,日志分散在不同的節點容器上,人工獲取用例執行日志困難自動化測試腳本并行執行,無法準確區分失敗用例對應的服務日志產品框架復雜,測試腳本失敗影響因素多,人工分析效率低、周期長歷史經驗無法很好的繼承和復用同一批次相同/相似失敗測試腳本重復分析相同版本跨測試環境相同/相似失敗測試腳本重復分析測試腳本歷史相同/相似問題重復分析測試腳本失敗分析主要瓶頸和挑戰解決思路與整體方案PART 03關鍵問題解決思路解決思路:通過日志特征語義聚類和相似度對比去重1、通過聚類算法進行問題去重,避免同一批次相同/相似失敗測試

4、腳本重復分析2、構建已知問題根因失敗用例向量知識庫,通過語義相似檢索召回歷史失敗根因,避免歷史相同問題重復分析問題2:人工分析效率低問題1:相同問題重復分析解決思路:大語言模型在NLP任務上能力強大甚至超越人類,引入LLM替代人工進行測試腳本失敗根因診斷1、通過大模型外掛領域向量知識庫,增強LLM進行測試腳本日志解析能力2、構建典型失敗特征-問題根因因果關系知識圖譜(KGs),通過RAG技術增強LLM對失敗日志根因推理性能整體方案典型問題案例庫專家規則庫失敗日志特征聚類失敗日志解析知識庫(RAG)服務層存量問題已知根因知識庫失敗日志解析Prompt模板問題根因推理Prompt模板(few-sh

5、ot)失敗日志預處理(降噪)失敗重試日志 等待時間日志 日期、時間戳 超長的HTML Body體 無用的請求Header 超Token長度裁剪 資產層Prompt Engineering日志采集日志模板規則管理日志處理引擎失敗問題根因聯合診斷應用層對接自動化測試流水線測試作業平臺歷史相似問題檢索失敗分析Copilot模型評估23知識圖譜(KGs)4華為盤古大模型已知問題根因/問題分類-SFT模型層LLM華為盤古-S大模型Embedding Model聚類模型1具體實現與技術實踐PART 04測試腳本日志采集和清洗日志清洗 失敗重試日志 等待時間日志 日期、時間戳 IP/Port mask替換

6、超長的HTML Body體 無用的請求Header 無用的solution日志 超長Token內容裁剪 對日志降噪和過濾特征提取 測試步驟 請求指令 接口標識 預期結果 實際結果 響應碼 響應內容 錯誤信息 調用鏈日志 提取失敗要素日志解析日志加載選擇模板解析日志內容日志保存日志加載和預處理日志采集1、測試腳本執行日志2、API接口調用鏈日志3、服務端業務失敗日志失敗腳本日志采集通過日志清洗,保留用例失敗原因相關的關鍵特性要素,保證向量知識庫相似問題檢索召回準確性和大模型推理輸入必要信息的完備性。原始日志特征日志1特征日志2特征日志3 清洗后的日志測試腳本日志內容特征聚類去重常用聚類算法:K-

7、Means是一種基于距離的聚類算法,它將數據點劃分為K個簇,通過最小化數據點與所屬簇的質心之間的平方距離來確定聚類結果。K-Means優點:1.原理簡單、實現容易2.收斂速度快3.對正態分布的數據效果好缺點:1.需要預先指定聚類的數量K2.對噪聲和孤立點敏感3.只能發現凸形簇聚類DBSCANDBSCAN是一種基于密度的聚類算法,通過確定數據點的密度來劃分聚類。DBSCAN將高密度區域視為聚類,并能夠識別出噪聲點和孤立點。優點:1.能夠對任意形狀的數據聚類2.能夠識別出噪聲點和孤立點3.不需要預先指定聚類數量缺點:1.需要指定領域半徑和最小樣本數2.參數調優困難3.對高維數據處理困難針對同一批次

8、失敗測試腳本日志特征提取和清洗,利用聚類算法,并通過失敗特征進行二次分類和離群點移除,實現不同失敗用例相同/相似異常模式精確聚類,避免相同問題失敗的自動化用例重復分析。根據日志特征選擇合適的聚類算法作為基礎進行算法優化或者進行二次分類,實現簇內樣本的同質性。測試腳本日志內容特征聚類去重針對同一批次失敗測試腳本日志特征提取和清洗,利用聚類算法,并通過失敗特征進行二次分類和離群點移除,實現不同測試腳本相同/相似異常模式精確聚類,避免相同問題測試腳本重復分析。特征聚類失敗測試腳本日志特征提取基于業務精細化二次分類輸出Case 1Case 2Case 3Case N錯誤碼失敗接口失敗步驟接口響應內容報

9、錯信息EmbeddingK-Means fit通過計算輪廓系數自動選擇最佳k值聚類結果遍歷每個簇內日志特性按照接口標識&錯誤碼進行二次分類和離群點移除Cluster 1Cluster 2Cluster M實施方案:離群點Cluster ASub-Cluster BSub-Cluster C輪廓系數S =#(),a(a()=average()b()=average()b()=min()=min()相似的失敗日志其根因也類似,通過聚類將日志特征相同/相似的失敗測試腳本進行分類,避免同類問題重復分析。聚類效果42個失敗用例聚類為7類,收斂比為83.3%42個失敗用例聚類為7類,收斂比為83.3%16

10、1個失敗用例,聚類后為9類問題,收斂比95.7%161個失敗用例,聚類后為9類問題,收斂比95.7%向量知識庫的構建和相似問題檢索存量失敗腳本日志人工標注結果向量知識庫入庫流程日志特征要素提取和日志清洗原始日志特征日志1特征日志2特征日志3 清洗后的日志Embedding 1.1294,0.4694,0.6865,.,-0.2391,-0.8607,-0.5970 1.1366,0.5211,0.7489,.,-0.2814,-0.7929,-0.5442 0.8244,1.0755,0.8376,.,-0.4066,-0.9126,-0.9700 1.0779,0.6564,0.6508,.

11、,-0.3683,-0.8986,-0.7538 1.1294,0.4694,0.6865,.,-0.2391,-0.8607,-0.5970 1.1366,0.5211,0.7489,.,-0.2814,-0.7929,-0.5442 0.8244,1.0755,0.8376,.,-0.4066,-0.9126,-0.9700 1.0779,0.6564,0.6508,.,-0.3683,-0.8986,-0.7538Vector DB知識庫知識定義為了更好的復用歷史經驗,避免歷史相似問題重復分析,我們將人工標注的歷史問題日志特征轉化為嵌入存儲在向量數據庫中,然后遇到新的問題時優先進行相似性

12、檢索,置信度高的直接復用歷史結論,置信度低的用于RAG增強LLM生成。定義:根據歷史經驗總結出來的規則,特點是規則與問題根因一一對應。用途:可以根據報錯日志的內容直接進行規則匹配,匹配成功的即命中規則。專家規則庫向量知識庫定義:經人工標注的單個測試腳本歷史執行失敗日志特征向量庫。用途:測試腳本失敗優先檢索該腳本歷史執行失敗的日志并召回相似度高的Top歷史記錄。歷史問題庫定義:經人工標注的典型測試腳本失敗日志特征向量庫。用途:典型問題庫存儲的是具有共性失敗特征的日志向量,用于所有測試腳本失敗相似性檢索。典型問題庫向量知識庫的構建和相似問題檢索相似問題檢索流程測試腳本執行日志-特征要素提取和日志清

13、洗一級檢索二級檢索專家規則匹配特征過濾-相似用例-相似步驟-相同接口-相同錯誤碼-相似錯誤余弦相似度98%TopN用例歷史失敗日志檢索三級檢索典型問題知識庫檢索檢索結果相似腳本名稱/編號相似腳本失敗日志相似失敗腳本問題分類相似失敗腳本根因描述相似失敗腳本問題解決措施相似檢索、過濾與倒排通過向量知識庫的應用,可以幫助我們在測試腳本失敗分析時直接復用或參考已有的歷史經驗知識,避免歷史相同/相似問題重復分析。向量索引和距離:索引構建與檢索算法FLAT、HNSW、IVF系列向量間距離度量法a.內積(IP)b.歐式距離(L2)c.余弦相似度(COSINE)索引類型算法說明向量規模召回率檢索速度備注FLA

14、T暴力檢索,召回率100%。10萬以內100%慢適用于小型數據集或查詢時間無關的情況HNSW一種基于圖的近似最近鄰搜索算法,具有超快的搜索速度和出色的召回率。10萬-1億95%非??熨|量高,速度快,但內存使用量大IVF系列基于倒排索引和向量量化的高效近似最近鄰搜索算法。1億以上95%快良好的可擴展選項。高質量,合理的速度和內存使用常用索引算法對比:基于知識圖譜增強 LLM 推理知識圖譜增強LLM方案分析:1、測試腳本失敗根因影響因素多樣化(環境問題、數據依賴、配置依賴、腳本問題、執行端問題、服務端缺陷等),單純將測試日志輸出給大模型分析很難準確地定位出問題的根本原因;2、測試腳本失敗日志和業務

15、日志特征(比如錯誤碼、錯誤信息、異常堆棧等)與問題根因之間存在一定的因果關系;3、通過微調和上下文學習可以使能大模型更清晰的理解失敗特征和問題根因之間的聯系,可以避免或緩解大模型的幻覺,從而更準確地推理。當前問題:大模型對日志內容及上下文的理解能力比較擅長,但缺乏產品領域業務日志特征和問題根因關聯知識,導致LLM日志分析定位定界存在幻覺和誤判。解決思路:將知識圖譜信息融入到Prompt中,為LLM提供圖上下文信息,從而增強大模型日志特征和問題根因因果關系推理結果的準確性和可解析性。知識圖譜(Knowledge Graph)知識圖譜(Knowledge Graph),是一種表示實體與實體之間復雜

16、關系的結構化語義網絡,隨著AI應用的不斷發展,知識圖譜已廣泛應用于智能搜索,智能問答、文本分析、異常監測、數據挖掘、個性化推薦等領域。單純的RAG技術無法針對關聯性比較強的失敗日志進行準確的分析,知識圖譜增強將會成為解決這一類問題的關鍵?;谥R圖譜增強 LLM 推理 測試腳本失敗影響因素復雜多樣化:錯誤碼和錯誤描述與實際問題根因呈多對多的關系;失敗根因與問題分類對應關系:出于對失敗腳本后置處理的需要進行問題分類,大模型由于缺少相應的先驗知識容易分類錯誤。問題的因果關系不斷積累和演進,逐漸形成圖結構化的領域知識網絡。領域知識圖譜:基于知識圖譜增強 LLM 推理Part1、知識圖譜生成:從存量問

17、題根因數據中提取日志特征相關實體(Entity);建立實體和問題根因之間的關系(Relation)生成知識圖譜;Failure Log Fragment:ResponseBody:result:false,errorCode:6030*0114,desc:The version(1.0)of the tenant privacy statement is incorrect,errorParams:version:1.0ERROR-https-jss*-nio*-fc16:0:0:0:0:0:0:68-18443-exec-2-be793a322b656639-com.hu*wei.*.*.*

18、.third.*.Third*20C*entService()Refresh tokn is emptyFailure Cause:Failure Cause of Manual LabeledClassification:Problem ClassificationEntity 1.1294,0.4694,0.6865,.,-0.2391,-0.8607,-0.5970 1.1366,0.5211,0.7489,.,-0.2814,-0.7929,-0.5442 0.8244,1.0755,0.8376,.,-0.4066,-0.9126,-0.9700 1.0779,0.6564,0.65

19、08,.,-0.3683,-0.8986,-0.7538 1.1294,0.4694,0.6865,.,-0.2391,-0.8607,-0.5970 1.1366,0.5211,0.7489,.,-0.2814,-0.7929,-0.5442 0.8244,1.0755,0.8376,.,-0.4066,-0.9126,-0.9700 1.0779,0.6564,0.6508,.,-0.3683,-0.8986,-0.7538EmbeddingVector DBPrompt:我希望你扮演一名專業的軟件工程師,我將給你一個測試腳本執行日志,您的任務是 Task Description And

20、Log Content Graph Context More In-Content ExamplesNew Failure Log Content Similar Entity RetrieverSubgraph Structure as PromptLLMsSubgraph RetrieverKGsSubgraph StructuresGraph ContextPromptPart2、日志三元組鏈接:日志特征實體抽??;實體鏈接和子圖檢索;Part3、知識圖譜作為上下文提示增強LLM推理:子圖結構生成自然語言描述信息;將子圖信息融入到Prompt中,為LLM提供圖上下文信息?;谥R圖譜增強

21、LLM 推理Question:我希望你扮演一名專業的軟件工程師,我將給你一個測試腳本執行日志,您的任務是 Task Description#Request Url https:/HOST/rest/v2/32b4a./a*s/metric/upload ResponseBodyerrorCode:SVCS*T*G.*MS.2000001,errorMessage:Import fails because another file is being imported.Try again later.More Log Content#Few In-Context ExamplesPromptFai

22、lure Cause:根據日志分析,該測試腳本執行過程中upload接口執行失敗,預期的errorMessage與實際返回的錯誤信息不符。預期錯誤信息提到指標層級Zh字段不合法,但實際返回的是導入失敗,有文件正在導入中,請稍后重試。這表明可能是接口處理邏輯錯誤,或者業務規則對于metricName_zh字段的驗證不正確,或者在上傳數據時有并發處理導致的暫時性沖突。Classification:版本BUG-服務端處理錯誤Model OutputStandard PromptingQuestion:我希望你扮演一名專業的軟件工程師,我將給你一個測試腳本執行日志,您的任務是 Task Descrip

23、tion#Request Url https:/HOST/rest/v2/32b4a./a*s/metric/upload ResponseBodyerrorCode:SVCS*T*G.*MS.2000001,errorMessage:Import fails because another file is being imported.Try again later.More Log Content#以下是與日志特征相關的問題根因和問題分類信息,請參考來完成你的任務:Graph ContextFew In-Context ExamplesPromptFailure Cause:根據所提供的錯

24、誤日志分析,導入文件upload接口執行失敗,問題的根本原因是接口在處理數據上傳時遇到了并發問題或者處理邏輯錯誤。由于實際返回的錯誤信息提示“導入失敗,有文件正在導入中,請稍后重試”,這表明數據上傳操作可能因為其他并發操作而被阻塞,或者服務端的處理邏輯對于并發請求的管理存在問題。Classification:用例運行時問題-用例并行沖突Model OutputKnowledge Augmented LLM PromptingKGs知識圖譜增強LLM失敗腳本根因分析對于新的失敗日志,采用大語言模型結合領域知道對日志進行分析,提取日志特征實體檢索相關知識圖譜子圖結構,并采用Few-shot多示例上

25、下文學習增強的方式進行大模型失敗根因推理和問題分類推薦?!痉桨杆悸贰繉τ谌率∧_本,采用LLM+RAG+KGs&Few-shot Prompting上下文學習的方式進行大模型失敗根因推理。1、首先采用大語言模型+RAG對失敗用例日志進行分析和總結;2、然后,從測試日志中提取失敗特征相關實體Entity;3、根據實體Entity,從圖數據庫中查詢子圖結構體并轉化為自然語言描述,作為LLMs Prompt提示圖上下文信息;4、使用Few-shot多示例上下文學習的方式拼接最終的Prompt請求,輸入給大模型進行失敗根因推理和問題分類推薦;【總結】通過此方式,避免了微調模型大量的人工語料投入和訓練

26、成本,以及微調后模型性能不確定性問題。并且通過知識圖譜上下文,增強大模型對問題根因因果關系的理解,增強大模型推理結果的準確性和可解析性。KGs RetrieverFew-Shot Prompting:我希望你扮演一名專業的軟件工程師。我將給你一個用例的測試報告,您的任務是 (task description)問題分類從以下選項中選擇:-被測服務端處理錯誤-客戶端請求用戶授權問題-接口請求參數問題Graph Contex 我將提供一些示例作為開始。腳本名稱:example test1 case name 分析報告:example test1 report summary (summarized

27、incident summary)問題根因&問題分類:Failure_cause:,classification:(more in-content examples)腳本名稱:current failed case name 分析報告:current failed case test log summary 問題根因&問題分類:(new failed case log summary)Retriever Subgraph StructuresRetrieval Corpus Knowledge Graph In-context Learning 參考論文1.Automated Root Cau

28、sing of Cloud Incidents using incontext learning via gpt42.Knowledge Graph Structure as Prompt:Improving Small Language Models Capabilities for Knowledge-based Causal Discovery 3.Knowledge-Augmented Language Model Prompting for Zero-Shot Knowledge Graph Question Answering4.Unifying Large Language Mo

29、dels and Knowledge Graphs:A Roadmap5.Knowledgeable Preference Alignment for LLMs in Domain-specific Question AnsweringKG Structure as PromptVector DBKGs圖數據庫圖數據庫LLM+KGs 根因推理LLM+RAG 日志解析Domain KnowledgeRoot Cause Diagnosis失敗根因&問題分類測試日志提示工程,與模型溝通的藝術作為一位軟件自動化測試領域的專家,您的任務是根據以下測試腳本日志內容進行解析并總結,重點關注日志中的以下幾個

30、方面:1、導致用例失敗的步驟信息,如接口URI;2、失敗步驟接口請求所依賴的參數以及上下文信息;3、導致用例失敗的特征,例如錯誤描述、檢查點、接口返回內容中的細節等,預期是什么,實際發生了什么;4、每行日志以INFO -TraceLog開頭的是最近一次接口請求的結果日志,如果有錯誤,錯誤信息會在這個日志中顯示。#執行日志開始#作為一位軟件自動化測試領域的專家,您的任務是根據以下測試腳本日志內容進行解析并總結,重點關注日志中的以下幾個方面:1、導致用例失敗的步驟信息,如接口URI;2、失敗步驟接口請求所依賴的參數以及上下文信息;3、導致用例失敗的特征,例如錯誤描述、檢查點、接口返回內容中的細節等

31、,預期是什么,實際發生了什么;4、每行日志以INFO -TraceLog開頭的是最近一次接口請求的結果日志,如果有錯誤,錯誤信息會在這個日志中顯示。#執行日志開始#Test_Script_Log_ContentTest_Script_Log_Content#執行日志結束#參考以下信息回答:#執行日志結束#參考以下信息回答:#Few In-Context About Domain InfoFew In-Context About Domain Info#您的摘要最多應該有5-6句話且不分行,并且應該是第三人稱,總長度不超過2000字。您必須以結束摘要。#您的摘要最多應該有5-6句話且不分行,并且

32、應該是第三人稱,總長度不超過2000字。您必須以結束摘要。LLM+RAG 日志解析 Prompting作為一位軟件自動化測試領域的專家,正在對自動化執行失敗的腳本進行問題根因分析。請根據執行日志摘要和可能與回答這個問題相關的事實對問題根因進行歸類,并總結出最可能的問題根因??蛇x問題分類如下:作為一位軟件自動化測試領域的專家,正在對自動化執行失敗的腳本進行問題根因分析。請根據執行日志摘要和可能與回答這個問題相關的事實對問題根因進行歸類,并總結出最可能的問題根因??蛇x問題分類如下:classification_listclassification_list可能與回答這個問題相關的事實:可能與回答這

33、個問題相關的事實:Graph_ContexGraph_Contex#執行日志摘要開始#執行日志摘要開始#Test_Log_SummaryTest_Log_Summary#執行日志摘要結束#請結合執行日志摘要和可能與回答這個問題相關的事實,幫我對失敗的用例進行分析給出最可能的問題根因和問題分類。按照如下的JSON格式輸出:“failure_cause:這里只寫問題根因(4-5句話且不換行,2000字以內),classification:這里寫問題分類(只選擇一個)#執行日志摘要結束#請結合執行日志摘要和可能與回答這個問題相關的事實,幫我對失敗的用例進行分析給出最可能的問題根因和問題分類。按照如下

34、的JSON格式輸出:“failure_cause:這里只寫問題根因(4-5句話且不換行,2000字以內),classification:這里寫問題分類(只選擇一個)LLM+KGs 根因推理 Prompting 擬人原則將大模型想象成是一個人,與人的溝通技巧同樣適用于大模型。溝通原則a.假設性提問b.問題聚焦c.表述清晰d.背景完善 知識邊界如果大模型無法理解或回答垂直領域的知識或問題,需要補充Prompt上下文信息,比如接口的定義、日志中專業術語的解釋等總結與展望PART 05總結1.特征聚類:通過日志特征聚類去重可以大幅降低失敗測試腳本分析數量2.語義相似度檢索:通過文本向量化和語義相似度檢索技術可以有效的復用歷史經驗3.KGs+LLM:知識圖譜在增強大模型日志根因診斷方面有比較好的應用效果內容回顧和總結:展望大模型與知識圖譜協同或是未來AI應用的發展趨勢?1.LLM輔助知識圖譜生成和治理2.知識圖譜用于檢測/評估大模型的幻覺3.知識圖譜用于AI Agent的Planning的生成4.知識圖譜用于大模型增量訓練與微調提升領域推理能力利用AI技術深化計算機對現實世界的理解推動研發進入智能化時代

友情提示

1、下載報告失敗解決辦法
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站報告下載后的文檔和圖紙-無水印,預覽文檔經過壓縮,下載后原文更清晰。

本文(胡應廣-AI輔助測試腳本失敗分析和修復.pdf)為本站 (patton) 主動上傳,三個皮匠報告文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。 若此文所含內容侵犯了您的版權或隱私,請立即通知三個皮匠報告文庫(點擊聯系客服),我們立即給予刪除!

溫馨提示:如果因為網速或其他原因下載失敗請重新下載,重復下載不扣分。
客服
商務合作
小程序
服務號
折疊
午夜网日韩中文字幕,日韩Av中文字幕久久,亚洲中文字幕在线一区二区,最新中文字幕在线视频网站