精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

一区二区日韩电影| 久久99精品久久久| 亚洲男人天堂2024| 男人添女人下面免费视频| 日p在线观看| 国产精品99久久久久久久女警| 欧美激情一区二区三区成人| www.超碰97| 欧美电影在线观看网站| 一区二区三区日本| 麻豆91蜜桃| 91无套直看片红桃| 一区二区久久| 日韩在线中文视频| a天堂视频在线观看| 99久久er| 午夜在线成人av| 亚洲国产精品www| 黑人精品一区二区三区| 久久精品国内一区二区三区| 国内精品在线一区| 波多野结衣喷潮| 日韩中文av| 欧美一三区三区四区免费在线看 | 97超碰人人在线| 国产suv精品一区二区6| 国产精品中文在线| 国产尤物在线视频| 欧美日韩亚洲一区| 色吧影院999| 91精品人妻一区二区三区| 亚洲高清在线一区| 欧美三级资源在线| 久久久久人妻精品一区三寸| 26uuu亚洲电影在线观看| 国产亚洲婷婷免费| 久久国产精品久久| 俄罗斯嫩小性bbwbbw| 国产主播一区二区三区| 国产精品美女午夜av| 日本道在线观看| 亚洲手机视频| 欧美老女人性生活| 秋霞欧美一区二区三区视频免费| 一区三区在线欧| 亚洲成av人乱码色午夜| 波多野结衣中文字幕在线播放| 日韩一级特黄| 欧美性大战久久久久久久| 那种视频在线观看| 中文不卡1区2区3区| 亚洲高清三级视频| 18禁裸男晨勃露j毛免费观看| av在线网址观看| 亚洲欧洲av另类| 亚洲精品成人三区| 色影院视频在线| 中文av一区二区| 午夜一区二区三区| 国产成人天天5g影院在线观看| 久久综合av免费| 精品国产一区二区三区免费 | 日本一区免费在线观看| 欧洲亚洲精品视频| 国产亚洲精品bt天堂精选| 欧美日韩天天操| 日韩一二三四| 久久久www免费人成精品| 欧美日韩精品久久| 69av在线| 亚洲男人天堂av网| 99在线观看视频免费| 免费在线播放电影| 福利精品视频在线| 亚洲中文字幕久久精品无码喷水| 日韩精品一区二区三区av| 欧美色精品天天在线观看视频| 亚洲欧美视频二区| 精品视频在线一区| 亚洲大胆人体视频| 精品国产av无码| 日本欧美肥老太交大片| 色偷偷噜噜噜亚洲男人| 国产极品国产极品| 一区二区激情| 国产精品九九九| 国产免费av电影| 不卡一卡二卡三乱码免费网站| 麻豆av福利av久久av| av资源在线观看免费高清| 亚洲欧美日韩国产中文在线| 六月婷婷激情综合| 中文字幕一区久| 欧美精品xxxxbbbb| 欧美激情 亚洲| 亚洲瘦老头同性70tv| 最新91在线视频| 久久久久成人网站| 日韩电影在线一区二区| 91久久综合亚洲鲁鲁五月天| 刘玥91精选国产在线观看| 国产欧美中文在线| www.国产二区| 伊人久久精品一区二区三区| 欧美电影影音先锋| 深田咏美中文字幕| 98精品久久久久久久| jazzjazz国产精品久久| 欧美日韩在线视频一区二区| 久久久久久久久久久久91| 日韩精品亚洲专区在线观看| 精品一区精品二区| 免费在线观看h片| 亚洲欧美日韩国产综合精品二区| 成人国产在线视频| 深夜影院在线观看| 亚洲精品国产一区二区精华液 | 成人综合av网| 91亚洲精选| 午夜一区二区三区视频| 孩娇小videos精品| 免费观看成人www动漫视频| 精品国产一区二区三区久久久| 少妇一级淫片免费放中国 | 日韩av在线播放网址| 欧美国产亚洲视频| 一级久久久久久久| 久久九九久精品国产免费直播| 日本三级中文字幕在线观看| 日本一道高清亚洲日美韩| 精品国产乱码久久久久久图片 | 亚洲丝袜精品丝袜在线| 黑人糟蹋人妻hd中文字幕 | 七七久久电影网| 欧美日韩国产天堂| 人妻一区二区视频| 夜夜嗨一区二区三区| 2014亚洲精品| 免费a在线看| 在线观看日产精品| 人妻熟女aⅴ一区二区三区汇编| 欧美激情日韩| 91日韩在线视频| 午夜小视频在线| 欧美性大战久久| 日本黄色网址大全| 午夜在线播放视频欧美| 精品人伦一区二区三区| segui88久久综合| 日韩精品一区二区三区视频在线观看 | 亚洲精品电影在线一区| 日韩三区在线| 国产亚洲欧洲高清| 精品黑人一区二区三区| 久久精品网站免费观看| 久久精品99国产| 伊人久久大香线蕉| 热久久视久久精品18亚洲精品| 亚洲欧洲视频在线观看| 天天色天天爱天天射综合| 国内精品久久久久伊人av| 色婷婷综合在线观看| 伊人久久大香线| 成人午夜在线视频一区| 成人毛片av在线| 日韩欧美一区电影| 在线免费观看毛片| 91免费看片在线观看| 国产精品-区区久久久狼| 美女毛片一区二区三区四区| 日本伊人精品一区二区三区介绍| 天堂√在线中文官网在线| 都市激情亚洲色图| 强伦人妻一区二区三区| 日韩精品亚洲专区| 亚洲日本精品国产第一区| 91嫩草国产线观看亚洲一区二区| 久久成年人视频| 午夜精品久久久久久久99| 亚洲国产成人porn| 中文字幕一二三四区| 日韩精品免费视频人成| 亚洲在线欧美| 亚洲国产aⅴ精品一区二区| 97在线免费观看| 免费在线看v| 欧美午夜精品一区| 国产免费无码一区二区视频| 99久久久久久| 一区二区三区视频在线观看免费| 羞羞色午夜精品一区二区三区| 91久久国产综合久久蜜月精品| 美女av在线免费看| 日韩在线免费视频观看| 亚洲第一页视频| 欧美日韩色婷婷| 日本精品久久久久中文| 丰满放荡岳乱妇91ww| 午夜免费精品视频| 好看的av在线不卡观看| 天天综合狠狠精品| av动漫精品一区二区| 国产精品96久久久久久| 青春草在线免费视频| 亚洲欧洲免费视频| 国产高清视频免费观看| 色综合久久久网| 少妇影院在线观看| 国产欧美视频在线观看| 特黄特色免费视频| 麻豆精品久久精品色综合| 成人免费毛片在线观看| 日本a口亚洲| 久久国产精品 国产精品| 国产美女精品视频免费播放软件| 26uuu另类亚洲欧美日本老年| 黄色片网站在线| 亚洲欧美日韩在线高清直播| 亚洲av无码国产综合专区| 欧美性生活大片视频| 五月天婷婷丁香| 亚洲视频小说图片| 欧洲美一区二区三区亚洲| 成人av在线播放网址| 亚洲精品第三页| 日韩成人一级片| 欧美深夜福利视频| 欧美日韩福利| 制服诱惑一区| 欧美亚洲国产激情| 久久久久久a亚洲欧洲aⅴ| 日韩中文字幕一区二区高清99| 国产精品久久久久77777| 婷婷电影在线观看| 久久久久久久久网站| 岛国中文字幕在线| 日韩一区二区欧美| 国产精品一级伦理| 亚洲欧美日韩精品久久亚洲区| 三级网站免费观看| 欧美第一区第二区| 国产情侣在线播放| 91精品免费在线观看| 亚洲影视一区二区| 在线免费观看日韩欧美| 一级黄色av片| 91国产精品成人| 国产精品乱码一区二区视频| 欧美日韩精品在线视频| 国产成人在线播放视频| 午夜久久久久久久久| 精品无码人妻一区二区三区| 亚洲欧美激情小说另类| 精品国产国产综合精品| 亚洲桃色在线一区| 久久久久亚洲AV成人| 一区二区三区欧美日| 欧美日韩在线视频免费播放| 亚洲精品亚洲人成人网在线播放| 国产性生活大片| 亚洲丝袜自拍清纯另类| 欧美国产日韩在线观看成人| 亚洲视频综合在线| 清纯粉嫩极品夜夜嗨av| 亚洲一级二级在线| 中文在线观看免费网站| 狠狠色噜噜狠狠狠狠97| 台湾佬中文在线| 在线观看亚洲精品| 在线不卡免费视频| 欧美高清hd18日本| 99精品久久久久久中文字幕| 日韩精品一区二区三区三区免费 | 久久99国产精品久久99果冻传媒| 91高清国产视频| 国产毛片精品视频| 国产污在线观看| 久久久一区二区| 亚洲毛片亚洲毛片亚洲毛片| 中文字幕色av一区二区三区| 中文字幕另类日韩欧美亚洲嫩草| 一区二区三区四区不卡在线| 中文字幕亚洲精品在线| 在线一区二区视频| 国产精品嫩草影院精东| 亚洲成在人线av| 国产三级视频在线看| 日韩在线观看免费av| 污污视频在线| 日韩美女在线观看| 日韩欧美一级| 欧美日韩一区二区三| 99久久综合| 日日鲁鲁鲁夜夜爽爽狠狠视频97 | 欧美三级午夜理伦三级富婆| 国产成人免费视频一区| 法国伦理少妇愉情| 日韩美女视频19| 日日夜夜综合网| 在线成人免费视频| 日本一级在线观看| 久久亚洲成人精品| 中文字幕21页在线看| 亚洲精品欧美极品| 深夜福利久久| 日韩a级在线观看| 蜜桃av一区二区在线观看| 在线播放第一页| 国产精品久久久久久久久快鸭| 欧美日韩综合一区二区| 91黄色免费看| 殴美一级特黄aaaaaa| 日韩一级黄色av| 中文字幕乱码在线播放| 91原创国产| 久久日文中文字幕乱码| 春日野结衣av| 粉嫩嫩av羞羞动漫久久久 | 一区二区三区中文字幕| 91视频在线视频| 欧美精品一区二区三区蜜桃视频| yw193.com尤物在线| 97在线视频一区| 日韩精品视频中文字幕| 一区不卡字幕| 久久大逼视频| 性色av蜜臀av浪潮av老女人| 一区精品在线播放| 国产一卡二卡三卡| 日韩成人在线电影网| 亚洲无线看天堂av| 成人女保姆的销魂服务| 日韩a一区二区| 色诱视频在线观看| 久久综合久久99| 欧美三级一区二区三区| 亚洲国产精品久久久久秋霞蜜臀| 成人短视频在线| 91久久中文字幕| 小处雏高清一区二区三区| 日本xxxx黄色| 国产视频不卡一区| 69视频免费看| 亚洲人成在线观看| av资源亚洲| 免费观看成人高| 国产精品久久777777毛茸茸| 五月天丁香社区| 亚洲高清不卡在线观看| 亚洲av综合色区无码一区爱av| 久久亚洲欧美日韩精品专区| 青青草国产一区二区三区| 亚洲高清在线观看一区| 人禽交欧美网站| 青青草自拍偷拍| 欧美日韩国产精品成人| 午夜视频成人| 亚洲va国产va天堂va久久| 亚洲一级淫片| 亚洲一二三四五| 亚洲v中文字幕| 午夜视频福利在线| 青青久久av北条麻妃黑人| 亚洲人成网www| 亚洲最大综合网| 中文字幕亚洲成人| 超碰在线观看av| 欧美激情精品久久久久久黑人| 动漫av一区| 国产午夜伦鲁鲁| 国产欧美一区二区精品久导航 | 国产又色又爽又高潮免费| 欧美日韩高清一区二区三区| 国产黄网站在线观看| 99久久一区三区四区免费| 在线亚洲激情| 精品欧美一区二区久久久| 欧美日韩一区高清| 日韩另类在线| 精品亚洲欧美日韩| 日韩avvvv在线播放| 中文字幕手机在线观看| 精品第一国产综合精品aⅴ| xxx欧美xxx| 亚洲一区二区自拍偷拍| 丰满放荡岳乱妇91ww| 丁香六月婷婷综合| 久久天天躁狠狠躁夜夜av| 99久久香蕉| 99视频精品免费| 亚洲欧美日韩系列| 日韩在线免费看| 国产精品综合不卡av| 亚洲人人精品| 91狠狠综合久久久久久| 欧美大片一区二区| 欧美专区福利免费| 97超碰人人爱| 国产三级欧美三级| 亚洲第一成年人网站|