天天看點

基于強化學習的測試日志智能分析實踐

摘要:測試日志智能分析是提升智能化測試效率的一個關鍵步驟。

本文分享自華為雲社群《​​【智能化測試專題】基于強化學習的測試日志智能分析實踐​​》,作者: DevAI 。

随着軟體規模的不斷擴增,加快測試時間降低成本、實作智能化測試是至關重要的,而測試日志智能分析是提升智能化測試效率的一個關鍵步驟。目前由自動化測試階段産生的大量日志,主要依賴人工分析,而人工分析工作量大、耗時較長,以華為某産品線為例,每月都會産生30-40萬的測試失敗日志,而人工分析每天僅能分析20-30條日志。此外人工分析時,很大一部分工作是分析重複或同類問題,且測試人員分析經驗複用困難,嚴重制約測試效率。

測試日志智能分析是從日志采集、日志解析與預處理、失敗日志根因分析及分類以及資料可視化的一整套解決方案。日志分析的發展從傳統的基于規則引擎的算法,到現在的基于機器學習與AI技術的算法方案,其自動化程度得到了很大的提升, 然而它依然會面臨着一些問題:1)算法和業務之間存在一定的資訊差,業務需要了解算法層面所需要的關鍵資訊,才可能使得所提供的資訊是有效的。2)算法方面也需要協同産品方面的專家,來進行特征提取,而專家資源受限。3)其解決方案需要針對不同産品特性進行調參、優化模型等,但模型需要海量曆史資料和标準化的标注,業務方标注準确率堪憂。

針對上述問題,我們基于強化學習和主動學習,提出了一種失敗測試日志分析方案,其主要流程如圖1所示。該方案包括了:1) 資料采集 2)資料預處理3)特征生成 4)模型生成 5)智能分析等子產品。

基于強化學習的測試日志智能分析實踐

1. 資料采集

日志智能分析的任務是有監督/半監督學習任務,我們需要事先對資料進行收集與标注,針對測試人員标注好的資料,我們按8:2的比例進行訓練資料和測試資料的切分。平均地,訓練資料的量級可達到萬級以上,測試資料的量級可達到千級/萬級以上。

基于強化學習的測試日志智能分析實踐

2. 資料預處理

測試日志文本通常是非結構化的日志文本,文本長度通常較長,單個日志大小平均可達300KB,我們需要事先進行文本清洗和預處理,來過濾與失敗類别無關的資訊,聚焦到與任務相關的有效資訊上。預處理步驟會先移除不需要的格式,比如解析html格式文本,提取相應的日志内容;接着,提取的日志内容會分别經過基于通用規則的方法和基于使用者自定義規則的方法,來進行資料的清洗和分詞。這裡的通用規則是綜合多個業務提煉的規則,使用者自定義規則則是使用者針對目前業務生成的規則和自定義詞典(包括專業名詞和停用詞等),可适配到各個業務。

基于強化學習的測試日志智能分析實踐

3. 特征生成

日志文本特征向量建構主要選取了基于word2vec的向量化方法和基于TextCNN的向量化方法來。日志文檔特征向量是利用word2vec方法生成的詞向量與對數詞頻權重平均後的結果,以及TextCNN直接生成文檔向量。

基于強化學習的測試日志智能分析實踐

4. 模型生成與智能分析

模型生成與智能分析主要是結合了強化學習和主動學習,來對是否給出正确預測進行獎罰。對于新采集到的日志,會跟日志庫中的資料進行比較,選出top-k個距離最近的日志樣本,若距離超出一定門檻值,則不給出分析結論,若符合門檻值内的樣本則加入候選集中,并且強化學習模型會計算候選集的得分,根據得分判斷是否給出失敗原因描述。最後由人工去确認失敗原因是否正确以此是否做出獎勵或懲罰,進而不斷優化強化學習模型。

基于強化學習的測試日志智能分析實踐

5. 性能分析

相比于業界主流方法,該模型的分析準确率能夠達到90%以上,算法時間整體從501.2s提升在2.1s左右。另外智能分析模型在某産品落地時,免人工複核占比52.78%。

基于強化學習的測試日志智能分析實踐
基于強化學習的測試日志智能分析實踐

6. 自助接入

測試日志智能分析已經落地華為100多個産品線,為使用者提供了自主接入、自主訓練、結果分析的功能:提供自動的預處理規則管理、預處理效果展示,支援使用者一鍵式自助訓練模型,觀測模型分析準确率與結果。

基于強化學習的測試日志智能分析實踐
基于強化學習的測試日志智能分析實踐

7. 總結

在華為多個産品業務背景下,本文提出了一種有效的日志智能分析方案,可以學習曆史測試日志,對現網失敗用例根因智能定界,大大減少了重複問題的定位,減輕了測試人員的工作量,另外針對不同産品的資料特征,可以适配合适的模型方案,并提供了使用者自助接入與分析的功能。相比于基于規則的分析方法,本文方法不需要維護複雜的規則表以及規則沖突的情況,另外相比于傳統監督學習的方法,本文方法更适用于有大量人工标記且資料稀疏的情況,來提升預測結果的準确性。我們也将持續地關注業界學界的最佳實踐及新模型,以探索更優的解決方案。

文章來自PaaS技術創新Lab,PaaS技術創新Lab隸屬于華為雲,緻力于綜合利用軟體分析、資料挖掘、機器學習等技術,為軟體研發人員提供下一代智能研發工具服務的核心引擎和智慧大腦。我們将聚焦軟體工程領域硬核能力,不斷構築研發利器,持續傳遞高價值商業特性!加入我們,一起開創研發新“境界”!

繼續閱讀