精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

大廠實踐: LLM 加速大規模測試遷移

開發 測試 人工智能
本文介紹了 Airbnb 通過 LLM 實現 3500 個 Enzyme React 測試文件向 RTL 的遷移實踐,將原本預計 1 年半的人工工作量縮減為 6 周。

Airbnb最近完成了第一次由 LLM 驅動的大規模代碼遷移,將 3500 個測試文件從 Enzyme 更新為 React測試庫(RTL,React Testing Library)。最初我們估計這需要 1 年半的時間來手工完成,但通過使用前沿模型和強大的自動化組合,我們在 6 周內完成了整個遷移。

本文將重點介紹從 Enzyme 遷移到 RTL 所面臨的獨特挑戰,如何通過 LLM 解決這些挑戰,以及如何構建遷移工具來執行 LLM 驅動的大規模遷移。

一、背景

2020 年,Airbnb 采用 React 測試庫(RTL)進行所有新的 React 組件測試開發,標志著我們邁出了遠離 Enzyme 的第一步。盡管自 2015 年以來,Enzyme 一直為我們提供良好的服務,但它是為 React 的早期版本設計的,并且該框架對組件內部的深度訪問不再符合現代 React 測試實踐。

但由于框架之間存在根本性差異,我們無法輕易替換(閱讀 Introducing the React Testing Library[2] 獲取更多關于差異的信息)。而且分析發現如果僅僅刪除 Enzyme 文件,會在代碼覆蓋率中造成顯著缺口。為了完成遷移,需要一種自動化方法來將測試文件從 Enzyme 重構為 RTL,同時保留原始測試意圖以及代碼覆蓋率。

二、如何做到

2023 年中,Airbnb 的一個黑客馬拉松團隊展示了大語言模型可以在短短幾天內成功將數百個 Enzyme 文件轉換為 RTL。

在這個很有希望的結果基礎上,我們在 2024 年為 LLM 驅動的遷移開發了一個可擴展流水線。我們將遷移分解為離散的、可以并行化每個文件步驟和配置的重試循環,并通過額外的上下文顯著擴展了提示詞。最后,對復雜文件的長尾執行了寬度優先的提示詞調優。

1. 文件驗證和重構步驟

首先將遷移分解為一系列自動驗證和重構步驟。可以把它想象成一個生產流水線:每個文件都經過驗證階段,當檢查失敗時,就引入 LLM 來修復。

我們將此流程建模為狀態機,只有在前一個狀態通過驗證后才將文件移動到下一個狀態:

這種分步驟的方法為自動化流水線提供了堅實基礎,使我們能夠跟蹤進度,優化特定步驟的故障率,并在需要時重新運行文件或步驟。基于步驟的方法還使同時在數百個文件上運行遷移變得簡單,這對于快速遷移簡單文件和在遷移過程中逐漸消除長尾文件至關重要。

2. 重試循環和動態提示

在遷移早期,我們嘗試了不同的提示工程策略來提高每個文件遷移的成功率。然而,在分步驟方法的基礎上,我們發現改善結果的最有效途徑是簡單的蠻力:多次重試步驟,直到通過或達到極限。我們更新了步驟,為每次重試使用動態提示,將驗證錯誤和文件的最新版本提供給 LLM,并構建了循環執行器,可以配置每個步驟的嘗試次數。

通過簡單的重試循環,我們發現可以成功遷移大量簡單到中等復雜度的測試文件,其中有些需要重試幾次才能成功完成,大多數可以在 10 次嘗試后成功完成。

3. 擴展上下文

對于具有一定復雜度的測試文件,只需增加重試次數就可以了。然而,要處理具有復雜的測試狀態設置或過多間接文件,我們發現最好的方法是將盡可能多的相關上下文放入提示詞中。

在遷移結束時,我們的提示已經擴展到 40,000 到 100,000 個 token,涉及多達 50 個相關文件,大量手工編寫的示例,以及來自同一項目中現有的、編寫良好的、通過測試的文件示例。

每個提示詞包括:

  • 被測組件的源代碼
  • 正在遷移的測試文件
  • 驗證失敗的步驟
  • 來自同一目錄的相關測試(維護團隊特定模式)
  • 一般性的遷移指南和通用解決方案

下面是實際應用中的樣子(為了可讀性做了部分修改):

// Code example shows a trimmed down version of a prompt 
// including the raw source code from related files, imports, 
// examples, the component source itself, and the test file to migrate.

const prompt = [
'Convert this Enzyme test to React Testing Library:',
`SIBLING TESTS:\n${siblingTestFilesSourceCode}`,
`RTL EXAMPLES:\n${reactTestingLibraryExamples}`,
`IMPORTS:\n${nearestImportSourceCode}`,
`COMPONENT SOURCE:\n${componentFileSourceCode}`,
`TEST TO MIGRATE:\n${testFileSourceCode}`,
].join('\n\n');

這種豐富的上下文方法被證明對更復雜的文件非常有效,LLM 可以更好的理解團隊的特定模式、通用測試方法和代碼庫的整體體系架構。

應該注意到,盡管我們在這個步驟中做了一些提示工程,但主要成功驅動因素是選擇正確的相關文件(查找附近的文件,來自同一個項目的好的示例文件,過濾與組件相關的文件的依賴項,等等),而不是依賴更完美的提示工程。

通過重試、構建豐富的上下文以及測試遷移移腳本之后,當我們進行第一次批量運行時,在短短 4 個小時內就成功遷移了 75% 的目標文件。

4. 從 75% 到 97%:系統化改進

75% 的成功率確實令人興奮,但仍然有近 900 個文件沒有達到驗證標準。為了解決這個長尾問題,我們需要一種系統化方法來了解剩余文件卡在哪里,并改進遷移腳本來解決這些問題。我們希望首先擴展廣度,積極減少剩余文件,而不要被最困難的遷移案例所困。

為此,我們在遷移工具中構建了兩個特性。

  • 首先,我們構建了一個簡單的系統,通過在文件中添加自動生成的注釋來記錄每個遷移步驟的狀態,從而使我們能夠看到腳本所面臨的常見問題。下面是代碼注釋的樣子:
// MIGRATION STATUS: {"enyzme":"done","jest":{"passed":8,"failed":2,"total":10,"skipped":0,"successRate":80},"eslint":"pending","tsc":"pending",}
  • 其次,我們添加了輕松重新運行單個文件或路徑模式的能力,根據它們所攜帶的特定步驟進行過濾:
$ llm-bulk-migration --step=fix-jest --match=project-abc/**

基于這兩個功能,我們可以快速運行反饋循環來改進提示和工具:

  • 運行所有剩余的失敗文件,以找到 LLM 卡住的常見問題
  • 選擇文件樣本(5 到 10 個)來說明某個常見問題
  • 更新提示詞和腳本來解決這個問題
  • 重新運行失敗文件樣本以驗證修復
  • 再次對所有剩余的文件執行上述操作

在運行這個“采樣、調整、掃描”循環 4 天后,我們已經將完成的文件從所有文件的 75% 推到了 97%,只剩下了不到 100 個文件。到目前為止,我們已經對許多長尾文件進行了 50 到 100 次重試,似乎已經達到了通過自動化修復的極限。我們沒有投入更多調優,而是選擇手動修復剩余文件,從基線(失敗)開始重構,從而減少修復這些文件的工作量。

三、結果及影響

有了驗證和重構流水線、重試循環和擴展上下文,我們能夠在4小時內自動遷移 75% 的目標文件。

經過四天的“采樣、調優和掃描”策略實現的提示詞和腳本優化,我們完成了 3500 個原始 Enzyme 文件的97%。

對于剩余的 3% 沒有通過自動化完成的文件,腳本為手動干預提供了一個很好的基線,幫助我們在一周之內完成了剩余文件的遷移。

最重要的是,我們能夠在保持原始測試意圖和代碼覆蓋率的同時替換 Enzyme。即使在遷移的長尾上有很高的重試次數,總成本(包括 LLM API 的使用和 6 周的工程時間)被證明比最初手動遷移的估算要高效得多。

四、下一步

這種遷移突出了 LLM 對大規模代碼轉換的能力。我們計劃擴展這種方法,開發更復雜的遷移工具,并探索 LLM 驅動的自動化的新應用,以提高開發人員的生產力。

參考資料

  • [1] Accelerating Large-Scale Test Migration with LLMs: https://medium.com/airbnb-engineering/accelerating-large-scale-test-migration-with-llms-9565c208023b
  • [2] Introducing the React Testing Library: https://kentcdodds.com/blog/introducing-the-react-testing-library
責任編輯:趙寧寧 來源: DeepNoMind
相關推薦

2013-03-22 14:44:52

大規模分布式系統飛天開放平臺

2024-09-26 10:41:31

2021-04-22 13:38:21

前端開發技術

2025-10-16 09:14:48

2025-04-27 04:05:00

AI模型爬蟲

2020-11-30 11:06:30

云計算云遷移IT

2024-07-03 08:19:56

2022-07-07 11:00:09

美團模型實踐

2025-03-06 10:33:04

2016-01-12 14:59:40

分布式存儲分布式存儲架構

2023-06-28 08:23:41

搜索語義模型

2023-05-10 10:54:37

項目ts代碼

2016-09-18 15:54:57

百度FPGASQL

2024-01-31 13:49:00

敏捷測試SIT開發

2020-06-10 10:00:53

Serverless數據處理函數

2016-04-15 00:43:13

2023-06-25 12:42:00

2022-03-15 18:33:34

URL重構Dubbo3.0

2021-09-06 11:15:05

數據治理字節跳動埋點
點贊
收藏

51CTO技術棧公眾號

天堂网视频在线| 深爱五月激情网| 里番在线播放| 91美女精品福利| 国产精品精品国产| 永久免费看片视频教学| 中文一区二区三区四区| 欧美日韩中文在线观看| 日韩中文不卡| 精品人妻一区二区三区四区不卡 | 国产白丝精品91爽爽久久| 久久久女女女女999久久| 日韩女同一区二区三区 | 人人澡人人添人人爽一区二区| ww亚洲ww在线观看国产| 成人免费午夜电影| 91在线视频在线观看| 亚洲字幕久久| 伊人精品在线观看| 在线天堂www在线国语对白| 欧洲亚洲精品久久久久| 日韩欧美一区视频| 狠狠精品干练久久久无码中文字幕 | 欧美日韩系列| 亚洲成人av综合| 裸体在线国模精品偷拍| 91高潮在线观看| 一区二区在线观看免费视频| av一区二区高清| 亚洲精品v天堂中文字幕| 国产乱码一区二区三区四区| 久久青青视频| 岛国av一区二区三区| 国产在线无码精品| 91社区在线| 久久精品免视看| 久久久久久久久久久一区 | 国内精品伊人久久久久av影院| 欧美做爰性生交视频| 国产在线欧美在线| 午夜国产一区| 久久精品视频网站| 91视频免费看片| 国产成人黄色| 亚洲欧美福利视频| 欧美bbbbb性bbbbb视频| 欧美wwwwww| 亚洲黄页视频免费观看| 亚洲欧洲国产视频| 精品一区二区三区视频在线播放| 欧美日韩三级视频| 国产一区二区在线免费播放| 欧美最新精品| 在线影视一区二区三区| 黄色一级大片在线观看| 欧洲av不卡| 色老汉av一区二区三区| www.日日操| 99re66热这里只有精品4| 一本一道波多野结衣一区二区| 免费毛片小视频| 成人动漫一区| 欧美最新大片在线看| 亚洲精品视频导航| 成人在线观看免费播放| 欧美日韩亚洲不卡| 污网站在线免费| 午夜免费欧美电影| 精品国产免费人成电影在线观看四季 | 97久久综合区小说区图片区| 亚洲第一二三四五区| 人妻无码中文久久久久专区| 神马久久av| 国产一区二区三区在线观看网站| 中文字幕91视频| 欧美日韩ab| 欧美在线激情视频| 一区二区视频在线免费观看| 国产一区二区三区观看| 国产精品福利视频| 免费人成黄页在线观看忧物| 欧美国产一区二区在线观看| www.午夜色| 国产又色又爽又黄刺激在线视频| 午夜视频一区二区| 亚洲第一狼人区| 亚洲精品午夜| 亚洲色图25p| 国产又黄又爽又无遮挡| 亚洲三级视频| 国产精品嫩草影院久久久| av加勒比在线| 91色视频在线| 精品一区二区成人免费视频 | 啪一啪鲁一鲁2019在线视频| 中文字幕永久在线视频| 国产91精品免费| 日本一区二区三区视频在线观看 | 亚洲国产精品久久久天堂| 午夜精品久久久久久久久久久久| 中文字幕亚洲乱码熟女1区2区| 精品一区二区三区久久久| 国产精品制服诱惑| h视频网站在线观看| 亚洲香肠在线观看| 日韩在线第三页| 91免费精品国偷自产在线在线| 亚洲欧美日韩第一区| 欧美成人精品一区二区免费看片| 午夜亚洲性色福利视频| 产国精品偷在线| eeuss影院在线观看| 亚洲1区2区3区4区| 超碰在线免费av| 精品日韩欧美一区| 91国内精品久久| 国产高中女学生第一次| 国产精品理论片| 欧美韩国日本在线| youjizzjizz亚洲| 不卡av在线播放| 中文字幕一区二区在线视频| 91久色porny| 天堂8在线天堂资源bt| 日本午夜免费一区二区| 亚洲人成电影网站色www| 久草视频精品在线| 国产美女娇喘av呻吟久久| 日本一区二区三区www| 三妻四妾的电影电视剧在线观看 | 中国免费黄色片| 亚洲精品99| 成人h片在线播放免费网站| 韩国三级av在线免费观看| 精品成人av一区| 欧洲成人午夜精品无码区久久| 手机在线电影一区| 国产精品国语对白| 国产一二三在线观看| 色哟哟国产精品| 粉嫩av蜜桃av蜜臀av| 亚洲少妇一区| 久久国产精品-国产精品| 黄色在线网站噜噜噜| 亚洲成人亚洲激情| 国产一级生活片| 成人av网站在线观看免费| 日本免费黄色小视频| 国产精品一站二站| 乱亲女秽乱长久久久| 国产精品女同一区二区| 综合中文字幕亚洲| 日韩在线一区视频| 综合激情视频| 成人免费在线看片| 成人影院在线播放| 日韩av在线影院| 中文字字幕在线中文| 久久精品人人做人人综合 | 亚洲福利影视| 欧美成年人在线观看| 亚洲国产精品一| 亚洲一区免费视频| 欧类av怡春院| 丝袜国产日韩另类美女| 五月天久久综合网| 久久免费福利| 97精品国产97久久久久久春色| 五月婷婷开心中文字幕| 91久久免费观看| 日本视频在线免费| 国产成人av一区二区| 精品无码国模私拍视频| 欧美猛男男男激情videos| 国产精品小说在线| 91精品久久久| 国产丝袜高跟一区| 一级特黄特色的免费大片视频| 一色屋精品亚洲香蕉网站| 无码人妻一区二区三区一| 国产视频一区三区| 亚洲精品成人自拍| 97se亚洲| 国产精品欧美日韩一区二区| 不卡视频一区| 国产又黄又爽又无遮挡| 99精品久久免费看蜜臀剧情介绍| 欧美 国产 日本| 久久影院100000精品| 成人免费看片网址| 伊人久久在线| 久久综合九色九九| 天堂a√在线| 67194成人在线观看| 久久综合加勒比| 国产欧美一区在线| 美国黄色一级视频| 日本vs亚洲vs韩国一区三区| www.男人天堂网| 成人女性视频| 国产亚洲欧美一区二区| 天堂综合在线播放| 欧美在线免费看| 色呦呦久久久| 在线观看国产精品日韩av| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的| 欧美视频你懂的| 日韩大片免费在线观看| 国产精品久久久久久久岛一牛影视| 亚洲少妇中文字幕| 蜜臀久久久久久久| 逼特逼视频在线| 国产精品xvideos88| 水蜜桃一区二区三区| 韩国精品福利一区二区三区| 成人精品福利视频| 免费看av不卡| 91精品国产免费久久久久久| 91精品久久| 日韩中文字幕在线| 黄色在线网站| 亚洲福利在线看| 精品国产av 无码一区二区三区| 欧洲视频一区二区| 国产三级精品三级在线观看| 亚洲第一综合色| 2018天天弄| 亚洲欧美日韩国产综合在线| eeuss中文字幕| 国产视频一区二区在线| 人妻熟女aⅴ一区二区三区汇编| 成人午夜视频在线观看| 中文字幕第10页| 韩国一区二区视频| 一本一道久久a久久综合蜜桃| 日韩成人免费电影| 欧美激情精品久久久久久小说| 国产伦理一区| 女性女同性aⅴ免费观女性恋| 狠狠入ady亚洲精品经典电影| 中国一级黄色录像| 亚洲一区在线| 激情视频小说图片| 在线精品国产| 一级性生活视频| 国产精品久久| 国产欧美日韩小视频| 激情欧美丁香| heyzo亚洲| 亚洲神马久久| 国产精品无码av无码| 天堂资源在线中文精品| 国产精品免费成人| 日本特黄久久久高潮| 天天色综合社区| 精彩视频一区二区三区| 日本一二三区在线| 国产美女在线精品| 黄色在线免费播放| 99re在线精品| 日本性高潮视频| 国产精品美日韩| 欧美爱爱小视频| 亚洲成人av电影| 成人公开免费视频| 精品视频在线视频| av网站免费播放| 亚洲国产精品热久久| 亚洲色图狠狠干| 日韩精品免费看| av男人的天堂在线| 欧美男插女视频| 超碰资源在线| 国产精品视频xxxx| 深夜福利一区| 久久伊人资源站| 国产精品传媒精东影业在线| 日韩精品一区二区三区四| 欧美亚洲一区二区三区| 国产精品久久a| 福利电影一区二区| 中文字幕免费高清| **网站欧美大片在线观看| 国产成人在线播放视频| 在线观看一区二区视频| 国产丰满果冻videossex| 日韩精品视频在线观看免费| 在线观看a视频| 久久久久久亚洲精品| 99久久综合国产精品二区| 成人免费视频网站| av伊人久久| 男女啪啪免费视频网站| 美女www一区二区| 亚洲图片综合网| 中文字幕一区二区视频| 波多野结衣视频网站| 日韩一区二区三区在线观看| 青青免费在线视频| 久久高清视频免费| 日本在线精品| 国产一区二区高清视频| 99久久亚洲精品| 成年人视频在线免费| 国产凹凸在线观看一区二区| 91导航在线观看| 欧美日韩国产丝袜美女| 精品人妻一区二区三区日产乱码 | 91麻豆桃色免费看| 伊人成综合网伊人222| 久久久久久久9| 精品一区二区三区在线观看国产 | 国产精品久久精品日日| 在线观看亚洲欧美| 日韩女优毛片在线| a天堂中文在线| 欧日韩在线观看| 成人看片黄a免费看视频| 穿情趣内衣被c到高潮视频| 免费久久精品视频| 亚洲激情视频小说| 天天亚洲美女在线视频| 亚洲精品久久久狠狠狠爱| 精品国偷自产在线| 成人午夜sm精品久久久久久久| 九九九久久久| 99热这里只有成人精品国产| 色综合久久久无码中文字幕波多| 国产精品久久久久久妇女6080| 尤物视频免费观看| 精品中文视频在线| hd国产人妖ts另类视频| 亚洲综合小说区| 综合国产精品| 国产男女无遮挡猛进猛出| 亚洲欧洲av在线| 97精品人妻一区二区三区香蕉 | 国产在线看片| 91精品视频观看| xvideos亚洲人网站| 天堂а√在线中文在线鲁大师| 亚洲成人午夜电影| 亚洲AV无码成人片在线观看| 不卡av在线播放| 国产区一区二| 日本xxxxx18| 国产高清精品网站| 91在线播放观看| 日韩一区二区在线观看视频播放| 三级外国片在线观看视频| 国产精品一区二区3区| 色小子综合网| www.污污视频| 亚洲精品日韩专区silk| 性生交大片免费看女人按摩| 久久99视频免费| 136福利精品导航| 国产精品无码一区二区在线| 99视频国产精品| 狠狠人妻久久久久久综合| 国产午夜精品一区二区三区 | 伊人夜夜躁av伊人久久| 国产草草影院ccyycom| 九九精品视频在线观看| 911亚洲精品| 久久免费视频3| 国产网站一区二区| 亚洲专区第一页| 欧美成人高清视频| 懂色av一区二区| 99福利在线观看| 国产精品传媒在线| 亚洲精华国产精华精华液网站| 久久免费视频在线观看| 亚州精品视频| 亚洲欧美自拍另类日韩| 亚洲六月丁香色婷婷综合久久| 亚洲经典一区二区三区| 国产成人精品在线| **女人18毛片一区二区| 女性生殖扒开酷刑vk| 色综合久久中文字幕综合网| 91视频在线观看| 国产精品露出视频| 可以免费看不卡的av网站| 青青操在线播放| 精品国产伦一区二区三区观看方式 | 国产精品久久欧美久久一区| 欧美黑人性猛交| 国产欧美日韩| 2018国产精品| 欧美三级电影网| 91福利区在线观看| 亚洲精品在线免费看| 成人免费视频国产在线观看| 中文在线最新版天堂| 欧美激情小视频| 国产精品久久久久蜜臀| 亚洲av无码一区二区三区网址 | 国产精品久久久久9999赢消|