《1-張海峰-代碼變更自動分析在整機ROM測試中的實踐.pdf》由會員分享,可在線閱讀,更多相關《1-張海峰-代碼變更自動分析在整機ROM測試中的實踐.pdf(33頁珍藏版)》請在三個皮匠報告上搜索。
1、代碼變更自動分析在整機ROM測試中的實踐2023 深圳站張海峰小米 高級軟件研發工程師致力于通過技術手段提高軟件測試效率和質量,在本領域擁有十年工作經驗,曾任職于Testin,滴滴出行。于2017年加入小米,目前就職于手機測試部,主要負責終端自動化測試工具、測試框架和平臺建設等工作。2023 深圳站目錄CONTENTSROM代碼變更自動分析的挑戰01 ROM代碼變更自動分析的目標02 ROM代碼變更自動分析的實踐03 業務落地及業務收益04 總結與展望05 2023 深圳站01ROM 代碼變更分析的挑戰2023 深圳站基于代碼變更分析的測試策略識別變更范圍確定兩個版本之間的代碼差異。識別出的變
2、更可能包括新增功能修改功能或修復錯誤等確定影響范圍根據代碼變更,分析可能受到影響的模塊和特性??s小測試范圍,確保測試重點放在受影響的模塊和特性上。風險評估對識別出的變更進行風險評估。確定變更的嚴重性、可能導致的問題以及這些問題對整個系統的影響。優先處理高風險的變更。制定測試計劃根據變更范圍、影響模塊和風險評估結果,制定詳細的測試計劃。包括測試用例,并針對高風險變更編寫特定的測試用例,進行探索性測試提高測試效率:通過分析代碼變更,可以識別出代模塊受到了影從有針對性地對這些模進行測試,這樣可以減少不必要的全面測試,與其執行大量關的測試用例,通過關于針對受到影響的代碼央執行相關的測試用例,從而節省時
3、間和資源由于有限的時間和測試資源導致無法每次代碼變更執行完整的測試。在這種情況下,基于代碼變更分析的測試策略能夠確保關鍵的、受影響的部分得到充分的測試,從而使有限的測試資源能夠更好地利用。提高測試質量:2023 深圳站ROM 代碼變更分析的挑戰變更數量多,分析任務復雜,專家資源有限,難以在分析效率和質量上得到保障架構復雜涉及到硬件抽象層、系統服務、應用程序框架、預裝應用等方面涉及功能多涉及到手機20多個模塊和上百個手機功能特性變更數量多維護和在研項目幾十個,每個項目不同版本的會有幾百個代碼變更協作流程長分析代碼變更需要不同領域20+專家協同工作,分析流程漫長,有時會持續幾天存在主觀差異由于存在
4、主觀差異,以及專家能力水平的不同,分析結論至少存在10%的差異2023 深圳站02ROM 代碼變更分析的目標2023 深圳站ROM 代碼變更自動分析的目標輔助各領域測試專家輸出測試策略,提升測試專家分析效率,拉齊分析的一致性預測代碼變更的影響模塊任務1:預測影響模塊預測代碼變更影響的子模塊任務2:預測影響子模塊篩選恰當的測試用例進行測試任務3:測試用例篩選評估代碼存在缺陷的可能性任務4:代碼風險評估影響模塊分析影響子模塊分析測試方案風險評估2023 深圳站03ROM 代碼自動分析的實踐2023 深圳站CL自動分析基礎框架IssueTestChangeExpert機器學習 從具有大量標準數據中構
5、建模型貝葉斯推理 對不確定專家知識進行建模規則系統 對確定性專家知識建模搜索排序 對關聯性文檔數據進行檢索影響模塊預測影響特性預測測試用例選擇變更風險評估2023 深圳站1.1 影響范圍預測-模塊級別測試專家過去幾年曾經對大量變更進行模塊級別的分析涉及幾十個手機模塊WiFiAudioDisplayBluetooth是否可以通過機器學習的方法預測代碼變更對哪些手機模塊有影響?如何構建訓練數據集?提取什么特征最有效果?如何選擇模型并對效果進行評估?2023 深圳站通過挖掘測試用例管理系統,Issue管理系統,Gerrit 數據建立變更代碼、缺陷、用例、專家分析結果的關系標記為Camera的變更1.
6、數據采集與集成2.樣本均衡1.2 模塊預測-數據集構建2023 深圳站1.3 模塊預測-提取特征及模型構建類別字段提取方法代碼Code ChangeCode Change EmbeddingFilesTF-IDF元數據MessageTF-IDFProjectTarget EncodingAuthors DepartmentTarget EncodingIssueSummaryTF-IDFDescriptionTF-IDFCommentsTF-IDFComponentsTarget Encoding每個變更提取20+字段生成1w+特征向量構建5w+訓練數據Bo Lin,Shangwen Wang
7、,Ming Wen,and Xiaoguang Mao.2022.Context-Aware Code Change Embedding for Better Patch Correctness Assessment.ACM Trans.Softw.Eng.Methodol.31,3,Article 51(July 2022),29 pages.https:/doi.org/10.1145/3505247代碼變更Code ChangeEmbedding分類數據TargetEncoding文本數據TF-IDF根據不同類型的數據應用不同方法構建特征向量2023 深圳站1.4 模塊預測-模型構建及評
8、估采用XGboost+LR模型,F1-Score 到達98%規則引擎 70%SVM 80%XGboost 95%XGboost+LR 98%2023 深圳站2.1 影響子模塊預測1.如何表示不確定性知識2.如何收集專家知識3.如何既利用專家知識和稀有的標注數據在細分領域缺少標注數據,無法直接使用機器學習方式進行構建模型如何在缺少標注數據的情況下構建預測模型?確定性知識不確定性知識領域知識庫WLANAudioDisplayBluetoothP2PDual WiFiUSB共享網絡安全認證快連自動重連四網切換數據加速專家驅動2023 深圳站2.2 影響子模塊預測:不確定性專家知識建模處理不確定性貝葉
9、斯網絡可以利用概率來描述變量之間的關系,使得模型能夠更好地處理不確定性利用專家知識貝葉斯網絡可以將專家的知識與經驗整合到模型中,從而使得模型更加準確和有用。從數據中學習貝葉斯網絡可以從歷史數據中學習,以改進其推理和決策模型。這一過程可以幫助模型逐步優化性能。支持推理決策貝葉斯網絡可以根據已知的信息,推斷其他的變量概率分布,從而可以支持推理和決策。應用廣泛貝葉斯網絡適用于各種領域,例如醫療、金融、環境、交通等。在這些領域中,貝葉斯網絡可以用于分類、預測、診斷、決策等各種應用場景貝葉斯網絡是一種概率圖模型,用于描述和處理變量之間的依賴關系和推理。其最大的優勢在于能有效地處理不確定性和缺失數據。20
10、23 深圳站2.3 影響子模塊預測:構建貝葉斯網絡模型構建20+個知識庫預測查全率(Recall)80%定義問題及影響因素確定模型結構設置先驗概率使用稀有數據調整參數模型檢驗應用和調優2023 深圳站3.1 測試用例選擇WLANAudioDisplayBluetoothP2PDual WiFiUSB共享網絡安全認證快連自動重連四網切換數據加速測試用例自動化用例Dual WiFi確定變更影響范圍之后如何選擇合適的測試用例?變更(代碼+變更描述+Issue描述)采用相似度檢索技術實現2023 深圳站3.2 測試用例選擇:基礎檢索框架測試用例代碼覆蓋代碼+變更描述+Issue描述CTS,Framew
11、ork,Module,Kernel2023 深圳站4.代碼變更風險評估Yibiao Yang,Yuming Zhou,Jinping Liu,Yangyang Zhao,Hongmin Lu,Lei Xu,Baowen Xu,and Hareton Leung.2016.Effort-aware just-in-time defect prediction:simple unsupervised models could be better than supervised models.In Proceedings of the 2016 24th ACM SIGSOFT Internatio
12、nal Symposium on Foundations of Software Engineering(FSE 2016).Association for Computing Machinery,New York,NY,USA,157168.https:/doi.org/10.1145/2950290.2950353缺陷傾向隨著模塊規模的增加而增加,但增長速度逐漸變慢。與較大模塊相比,較小的模塊更容易出現缺陷2023 深圳站體系結構及業務流程支撐2023 深圳站04業務落地及收益2023 深圳站業務收益代碼變更自動分析系統顯著提高了分析效率和質量,降低了成本和人力需求,同時實現了跨業務跨部門
13、能力拓展ROM CL分析效率提升xx%成本降低,CL分析實現左移,并且分析范圍擴展到開發版專家分析差異降低xx%賦能CTS自動化業務每年節省xx人天整機CL分析業務每年節省xx人天能力輸出外部門,無需專家即可評估影響范圍代 碼 變 更 自動 分 析 系 統2023 深圳站05總結與展望2023 深圳站總結與展望機器學習的方法在中等規模數據下,通過機器學習方法預測變更影響范圍是可行的專家知識的建模在細分領域缺少標注數據的情況下,可以通過專家知識構建貝葉斯網絡初始模型稀有數據的利用可以使用稀有數據對貝葉斯網絡參數進行微調文本和代碼的結合文本和代碼覆蓋數據可以結合作為文檔,用于后續的相似度檢索無監督
14、方法在有標簽數據獲取成本很高的情況下,無監督方法可以提供一個合理的起點依賴分析隨著軟件系統的快速發展,代碼變更的頻率和復雜度也在不斷增加,如何自動高效、準確地分析代碼變更是提升測試效率和質量的重要方法缺陷預測自動修復感謝聆聽CSDN全球最大的中文開發者社區平臺CSDN全球最大的中文開發者社區平臺CSDN創立于1999年全球編程類網站排名第7(來源:Similarweb 2023.04)注冊用戶超過4300萬,覆蓋90%的中文開發者新媒體矩陣粉絲數量超過3100萬超過1000家企業客戶和合作伙伴目前公司員工近800名,分布在北京、長沙、上海、深圳、杭州、成都等城市,并在美國硅谷常設辦事處旗下品牌旗下品牌專業中文IT技術社區:CSDN.NET多媒體專業出版:新程序員開發者專屬移動APP:CSDN APP代碼托管協作平臺:GitCode代碼工具協同平臺:InsCodeIT人力資源服務:科銳??怂关俗W絡高校IT技術學習成長平臺:高校俱樂部