前沿技術實踐|軟體測試的變革:Meta 引入由 LLM 驅動的 bug 捕捉工具

TesterHome小助手發表於2025-02-11

(TesterHome 社群編譯整理)

傳統測試生成技術難以針對特定高影響故障(如安全、隱私問題)。近日,美國 Meta 公佈了一項新的軟體測試領域應用成果——引入由大語言模型驅動的 bug 捕捉工具,他們稱這是一次軟體測試的變革。

這一工具可以透過突變測試結合 LLM,將自然語言描述的軟體問題轉化為針對性測試用例。

它是什麼?

Meta 的自動合規性強化 (ACH) 工具是一種基於 LLM 的突變引導式測試生成系統。ACH 透過在原始碼中生成特定於特定關注領域的未檢測到的故障(突變體)並使用這些突變體生成測試來強化平臺以防止迴歸。例如,當應用於隱私時,ACH 會自動搜尋與隱私相關的故障並防止它們將來進入系統,最終強化程式碼庫以降低任何隱私迴歸的風險。

ACH 會自動生成針對特定型別故障的單元測試。Meta 用純文字向 ACH 描述他們關心的故障。描述可能不完整,甚至自相矛盾,但 ACH 仍然會生成測試,證明其能夠捕獲所描述的錯誤。

傳統上,自動化測試生成技術僅僅是為了增加程式碼覆蓋率。正如每個測試人員所知,這只是解決方案的一部分,因為增加覆蓋率並不一定能發現錯誤。ACH 完全背離了這一傳統,因為它針對的是特定錯誤,而不是未發現的程式碼,儘管它通常也會在定位錯誤的過程中增加覆蓋率。此外,由於 ACH 建立在有保證的 LLM 軟體工程原則之上,因此它可以保證其測試確實能捕獲所描述的錯誤型別。

Meta 的新研究論文 “基於變異引導的 LLM 的 Meta 測試生成” 詳細介紹了 ACH 的底層科學基礎以及如何將 ACH 應用於隱私測試,但這種方法可以應用於任何型別的迴歸測試。

工作原理

突變測試是一種故意將錯誤(突變體)引入原始碼(使用版本控制將它們排除在生產之外)以評估現有測試框架檢測這些變化的能力的方法,這種測試方法已經研究了幾十年。但是,儘管如此,突變測試仍然難以部署。

在早期的方法中,突變體本身會自動生成(通常使用基於規則的方法)。但這種方法產生的突變體在它們實際代表的關注程度方面並不特別現實。

最重要的是,即使突變體被自動生成,人類仍然必須手動編寫測試來殺死突變體(捕獲故障)。

編寫這些測試是一個艱苦而費力的過程。因此,工程師們面臨著一個雙重問題:即使完成了編寫測試以捕獲突變的所有工作,也無法保證測試能夠捕獲自動生成的突變。

透過利用 LLM,可以生成代表實際問題的突變體,同時還可以透過生成測試來自動捕獲錯誤,從而節省人力。ACH 將自動測試生成技術與大型語言模型 (LLM) 的功能相結合,以生成與測試關注領域高度相關的突變體以及保證捕獲真正重要的錯誤的測試。

總體來說,ACH 的工作分為三個步驟:

1.一位工程師描述了他們所擔心的錯誤型別。
2.ACH 使用該描述自動生成大量錯誤。
3.ACH 使用生成的錯誤來自動生成大量捕獲它們的測試。

在 Meta,目前已將 ACH 輔助測試應用於多個平臺,包括 Facebook Feed、Instagram、Messenger 和 WhatsApp。根據自己的測試得出結論,工程師發現 ACH 有助於針對特定問題強化程式碼,並且即使 ACH 生成的測試不直接解決特定問題,也發現了其他好處。


ACH 系統架構的頂層概述。該系統利用 LLM 生成故障,根據可能的等效項進行檢查,然後生成測試以捕獲這些故障。

為何重要

Meta 擁有大量的資料系統,並使用許多不同的程式語言、框架和服務來支援 Meta 的應用和產品系列。但是,Meta 遍佈全球的數千名工程師如何確保他們的程式碼可靠,並且不會產生會對應用程式效能產生負面影響的錯誤,從而導致隱私風險?答案在於 LLM。

基於 LLM 的測試生成和基於 LLM 的突變生成並非新鮮事物,但這是它們首次被結合並部署在大規模工業系統中。生成突變和測試以殺死它們傳統上是難以擴充套件的過程。由於 LLM 是機率性的,不需要依賴嚴格定義的規則來做出決策,因此它們使我們能夠非常高效地解決這個等式的兩邊——生成突變和測試以殺死它們——並且具有很高的準確性。

這種新方法大大提高了自動化測試生成形式的現代化程度,並幫助軟體工程師從各種來源(以前的故障、同事、使用者要求、監管要求等)收集關注點,並有效地將它們從自由格式的文字轉換為可操作的測試——並保證測試能夠捕捉到他們正在尋找的故障。

ACH 可應用於任何類別的故障,並對加強未來回歸和最佳化測試本身產生重大影響。

下一步

Meta 公司稱,他們的創新方法結合了基於 LLM 的測試生成和突變生成,有助於實現該領域複雜的技術組織工作流程自動化。這項創新有可能簡化風險評估、減少開發人員的認知負擔,並最終打造更安全的線上生態系統。“我們致力於擴大部署領域、開發測量突變相關性的方法以及檢測現有故障,以推動全行業採用合規的自動化測試生成。”

  • 文章來源:TesterHome 社群微信公眾號編譯整理
    https://mp.weixin.qq.com/s/F54rpO9ZkCNmTWK-fQIczw?token=139419840&lang=zh_CN

  • 外文原文連結(含論文地址):
    https://engineering.fb.com/2025/02/05/security/revolutionizing-software-testing-llm-powered-bug-catchers-meta-ach/

相關文章