0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于大模型在軟件測(cè)試領(lǐng)域應(yīng)用的全面綜述

vliwulianw ? 來源:軟件質(zhì)量報(bào)道 ? 2024-01-18 09:33 ? 次閱讀

大模型(LLM)由于其卓越的自然語言理解、推理等能力,已經(jīng)被應(yīng)用于各種場(chǎng)景,取得了前所未有的效果。

類似的,軟件測(cè)試領(lǐng)域也受益于其強(qiáng)大的能力,能夠幫助生成逼真且多樣化測(cè)試輸入、模擬各種異常、加速缺陷的發(fā)現(xiàn),提升測(cè)試效率和軟件質(zhì)量。

來自中國科學(xué)院軟件研究所、澳大利亞Monash大學(xué)、加拿大York大學(xué)的研究團(tuán)隊(duì)收集了截止到2023年10月30日發(fā)表的102篇相關(guān)論文,并分別從軟件測(cè)試和大模型視角進(jìn)行了全面分析,總結(jié)出一篇關(guān)于大模型在軟件測(cè)試領(lǐng)域應(yīng)用的全面綜述。

c0bee602-b542-11ee-8b88-92fbcf53809c.png

研究發(fā)現(xiàn)一覽圖是這樣的(兩個(gè)不同視角:測(cè)試、LLM):

c0eed97a-b542-11ee-8b88-92fbcf53809c.png

詳細(xì)內(nèi)容我們接著往下看。

從軟件測(cè)試的視角來看

首先,研究人員從軟件測(cè)試的角度進(jìn)行了分析,并將收集到的研究工作按照測(cè)試任務(wù)進(jìn)行組織。

如下圖所示,大模型的應(yīng)用主要集中在軟件測(cè)試生命周期的后段,用于測(cè)試用例準(zhǔn)備(包括單元測(cè)試用例生成、測(cè)試預(yù)言生成、系統(tǒng)級(jí)測(cè)試輸入生成)、測(cè)試報(bào)告分析、程序調(diào)試和修復(fù)等任務(wù)。然而,在測(cè)試生命周期的早期任務(wù)(如測(cè)試需求、測(cè)試計(jì)劃等)上,目前還沒有使用大語言模型的相關(guān)工作。

c103989c-b542-11ee-8b88-92fbcf53809c.png

進(jìn)一步地,研究人員還對(duì)大模型在各種軟件測(cè)試任務(wù)上的應(yīng)用進(jìn)行了詳細(xì)分析。

以單元測(cè)試用例生成為例,單元測(cè)試用例生成任務(wù)主要涉及為獨(dú)立的軟件或組件單元編寫測(cè)試用例,以確保它們的正確性。傳統(tǒng)的基于搜索、約束或隨機(jī)的生成技術(shù)存在著測(cè)試用例覆蓋率弱或可讀性差的問題。

引入LLM后,相對(duì)于傳統(tǒng)方法,大模型不僅能夠更好地理解領(lǐng)域知識(shí)以生成更準(zhǔn)確的測(cè)試用例,而且還可以理解軟件項(xiàng)目和代碼上下文的信息,從而生成更全面的測(cè)試用例。

對(duì)于系統(tǒng)級(jí)測(cè)試輸入,模糊測(cè)試作為常用技術(shù),主要圍繞著生成無效、意外或隨機(jī)的測(cè)試輸入來達(dá)到測(cè)試的目的,研究人員也詳細(xì)分析了大模型如何改進(jìn)傳統(tǒng)模糊測(cè)試技術(shù)。

例如有研究提出通用模糊測(cè)試框架Fuzz4All、ChatFuzz等,也有研究專注于特定軟件開發(fā)基于大模型的模糊測(cè)試技術(shù),包括深度學(xué)習(xí)庫、編譯器、求解器、移動(dòng)應(yīng)用、信息物理系統(tǒng)等。

這些研究的一個(gè)關(guān)注重點(diǎn)是生成多樣化的測(cè)試輸入,以實(shí)現(xiàn)更高的覆蓋率,通常通過將變異技術(shù)與基于大模型的生成相結(jié)合來實(shí)現(xiàn);另一個(gè)關(guān)注重點(diǎn)是生成可以更早觸發(fā)錯(cuò)誤的測(cè)試輸入,常見做法是收集歷史上觸發(fā)錯(cuò)誤的程序來對(duì)大模型進(jìn)行微調(diào)或?qū)⑵渥鳛檠菔境绦蛟诓樵兇竽P蜁r(shí)使用。

論文中對(duì)于各種研究的技術(shù)思路有更為詳細(xì)地介紹和比較。

從大模型的視角來看

隨后,研究人員再從大模型的視角出發(fā),分析了軟件測(cè)試任務(wù)中選用的大模型,并進(jìn)一步介紹了如何讓大模型適應(yīng)測(cè)試任務(wù),包括提示工程技術(shù)、大模型的輸入以及與傳統(tǒng)測(cè)試技術(shù)的結(jié)合使用。

在所選用的大模型方面,如下圖所示,最常用的前三種大模型分別是ChatGPT、Codex和CodeT5。后兩種是專門在多種編程語言的代碼語料庫上訓(xùn)練得到的大模型,能夠根據(jù)自然語言描述生成完整的代碼片段,因此非常適合涉及源代碼的測(cè)試任務(wù),如測(cè)試用例生成、缺陷修復(fù)。

此外,雖然已經(jīng)有14個(gè)研究使用GPT-4(排名第四),但是GPT-4作為一種多模態(tài)大模型,研究人員表示尚未發(fā)現(xiàn)相關(guān)研究探索軟件測(cè)試任務(wù)中利用其圖像相關(guān)功能(例如UI截圖、編程演示),這值得在未來研究中探索。(編者注:其實(shí)是可以的,編者曾做過相關(guān)的實(shí)驗(yàn))

c11601da-b542-11ee-8b88-92fbcf53809c.png

在如何調(diào)整大模型行為以勝任軟件測(cè)試任務(wù)方面,主要有預(yù)訓(xùn)練或微調(diào)和提示工程兩種技術(shù)手段。

如下圖所示,有38項(xiàng)研究使用了預(yù)訓(xùn)練或微調(diào)模式以微調(diào)大模型的行為,而64項(xiàng)研究則使用了提示工程來引導(dǎo)大模型達(dá)到預(yù)期的結(jié)果。

提示工程技術(shù)的主要優(yōu)勢(shì)在于無需更新模型權(quán)重也能讓大模型適應(yīng)特定領(lǐng)域和任務(wù),并強(qiáng)化大模型的理解和推理能力,目前已經(jīng)采用的技術(shù)包括零樣本或少樣本學(xué)習(xí)、自我一致性、思維鏈、自動(dòng)提示等技術(shù)。

c122fa34-b542-11ee-8b88-92fbcf53809c.png

此外,研究人員發(fā)現(xiàn)有35項(xiàng)研究在運(yùn)用大模型之上,還結(jié)合了傳統(tǒng)測(cè)試技術(shù),包括變異測(cè)試、差分測(cè)試、程序分析、統(tǒng)計(jì)分析等,以取得更好的測(cè)試有效性和覆蓋率。

雖然大模型在各種任務(wù)中表現(xiàn)出巨大的潛力,但仍然存在一些局限性,如難以理解和處理復(fù)雜的程序結(jié)構(gòu)。

因此,將大模型與其他技術(shù)結(jié)合起來,以最大程度地發(fā)揮它們的優(yōu)勢(shì)和避免劣勢(shì),從而在特定情況下實(shí)現(xiàn)更好的結(jié)果,例如生成更多樣化和復(fù)雜的代碼,更好地模擬真實(shí)場(chǎng)景。

c13d08fc-b542-11ee-8b88-92fbcf53809c.png

用大模型找Bug還有哪些挑戰(zhàn)?

過去兩年中,利用大模型進(jìn)行軟件測(cè)試已經(jīng)有了很多成功的實(shí)踐。然而,研究人員指出它仍處于早期發(fā)展階段,還有許多挑戰(zhàn)和未解決問題需要探索。

挑戰(zhàn)1:實(shí)現(xiàn)高覆蓋率的挑戰(zhàn)

探索被測(cè)試軟件的多樣行為以實(shí)現(xiàn)高覆蓋率始終是軟件測(cè)試的重要關(guān)注點(diǎn)。大模型直接實(shí)現(xiàn)所需的多樣性仍然具有很大挑戰(zhàn),例如單元測(cè)試用例生成中,在SF110數(shù)據(jù)集上,行覆蓋率僅為2%,分支覆蓋率僅為1%。

在系統(tǒng)測(cè)試輸入生成方面,對(duì)于面向深度學(xué)習(xí)庫的模糊測(cè)試,TensorFlow的API覆蓋率為66%(2215/3316)。已有工作通常將變異測(cè)試與大模型結(jié)合使用,以生成更多樣化的輸出。

其他潛在的研究方向涉及利用測(cè)試相關(guān)的數(shù)據(jù)來訓(xùn)練或微調(diào)能夠理解測(cè)試特性的專用大模型,可以理解測(cè)試要求,自主地生成多樣化的輸出。

挑戰(zhàn)2:測(cè)試預(yù)言的挑戰(zhàn)

測(cè)試預(yù)言問題一直是各種測(cè)試應(yīng)用面臨的挑戰(zhàn),已有工作常見做法是將其轉(zhuǎn)化為更容易獲取的形式,通常通過差分測(cè)試來實(shí)現(xiàn)或僅關(guān)注容易自動(dòng)識(shí)別的測(cè)試預(yù)言(例如崩潰類錯(cuò)誤),雖然取得了不錯(cuò)效果,但僅適用于少數(shù)情況。

探索利用大模型解決其他類型的測(cè)試預(yù)言問題是非常有價(jià)值的。

例如,蛻變測(cè)試也是常用的緩解測(cè)試預(yù)言問題的技術(shù),可以探索結(jié)合人機(jī)交互或領(lǐng)域知識(shí)自動(dòng)產(chǎn)生蛻變關(guān)系,還可探索大模型自動(dòng)生成基于蛻變關(guān)系的測(cè)試用例,覆蓋各類輸入。進(jìn)一步,像GPT-4這樣的多模態(tài)大模型也為檢測(cè)用戶界面相關(guān)缺陷并輔助推導(dǎo)測(cè)試預(yù)言提供了可能性。

挑戰(zhàn)3:精準(zhǔn)評(píng)估性能的挑戰(zhàn)

缺乏基準(zhǔn)數(shù)據(jù)集和基于大模型技術(shù)潛在的數(shù)據(jù)泄漏問題給進(jìn)行嚴(yán)格和全面的性能評(píng)估帶來了挑戰(zhàn)。研究人員通過檢查訓(xùn)練大模型的數(shù)據(jù)源CodeSearchNet和BigQuery,發(fā)現(xiàn)Defect4J基準(zhǔn)數(shù)據(jù)集中使用的四個(gè)代碼庫同時(shí)包含在CodeSearchNet中,并且整個(gè)Defects4J代碼庫都包含在BigQuery中。

因此,大模型在預(yù)訓(xùn)練過程中已經(jīng)見過現(xiàn)有的程序修復(fù)基準(zhǔn)數(shù)據(jù)集,存在嚴(yán)重的數(shù)據(jù)泄露問題。所以,需要構(gòu)建更專門和多樣化的基準(zhǔn)數(shù)據(jù)集,并采取措施防止數(shù)據(jù)泄漏。

挑戰(zhàn)4:用于現(xiàn)實(shí)項(xiàng)目的挑戰(zhàn)

由于對(duì)數(shù)據(jù)隱私的關(guān)注,在考慮實(shí)際應(yīng)用時(shí),大多數(shù)軟件組織傾向于避免使用商用大模型,更愿意采用開源的大模型,并使用組織特定的數(shù)據(jù)進(jìn)行訓(xùn)練或微調(diào)。

此外,一些公司還考慮到計(jì)算能力的限制或關(guān)注能源消耗等,傾向于采用中等規(guī)模的模型。在這樣的現(xiàn)實(shí)條件下,要達(dá)到與已有研究工作中報(bào)告的類似性能是非常具有挑戰(zhàn)的。例如,在廣泛使用的QuixBugs數(shù)據(jù)集中,40個(gè)Python錯(cuò)誤中有39個(gè)能夠自動(dòng)修復(fù),40個(gè)Java錯(cuò)誤中有34個(gè)能夠自動(dòng)修復(fù)。

然而,當(dāng)涉及到從Stack Overflow收集的深度學(xué)習(xí)程序(代表實(shí)際的編碼實(shí)踐)時(shí),72個(gè)Python錯(cuò)誤中僅有16個(gè)能夠自動(dòng)修復(fù)。如何更關(guān)注現(xiàn)實(shí)需求研發(fā)相應(yīng)的技術(shù)才能更利于技術(shù)落地和實(shí)際應(yīng)用。

大模型也帶來了研究機(jī)遇

利用大模型進(jìn)行軟件測(cè)試也帶來了許多研究機(jī)遇,對(duì)于軟件測(cè)試領(lǐng)域的發(fā)展大有益處。

機(jī)遇1:利用大模型進(jìn)行更多樣化的軟件測(cè)試任務(wù)和階段

在測(cè)試任務(wù)的初期階段,目前LLM還未得到有效應(yīng)用(編者注:其實(shí)在早期,LLM更能發(fā)揮作用)。主要原因有兩方面:一是早期測(cè)試任務(wù)的主觀性,需要專家進(jìn)行評(píng)估;二是早期階段缺乏開放數(shù)據(jù)資源,這限制了大模型的性能表現(xiàn)。

此外,如下圖所示,雖然大模型在單元測(cè)試和系統(tǒng)測(cè)試方面得到了廣泛應(yīng)用,但在集成測(cè)試和驗(yàn)收測(cè)試方面的應(yīng)用相對(duì)較少??傊绾纬浞掷么竽P瓦M(jìn)行更多樣化的軟件測(cè)試任務(wù)和測(cè)試階段是一個(gè)值得深入研究的新方向。例如,在驗(yàn)收測(cè)試方面,大模型可以與人類測(cè)試人員協(xié)同工作,以自動(dòng)生成測(cè)試用例并評(píng)估測(cè)試覆蓋率。

c16b5b94-b542-11ee-8b88-92fbcf53809c.png

機(jī)遇2:將大模型應(yīng)用于更廣泛的測(cè)試類型和軟件

一方面,雖然大模型在功能測(cè)試方面得到了廣泛應(yīng)用,但在性能測(cè)試和可用性測(cè)試等其他方面應(yīng)用較少,這可能是因?yàn)檫@些測(cè)試已有一些專門且讓人滿意的模型和工具。

但將大模型與這些工具相結(jié)合仍不失為一個(gè)潛在的研究方向,例如利用大模型整合性能測(cè)試工具,并模擬真實(shí)用戶行為來產(chǎn)生不同類型的工作負(fù)載。另一方面,如下圖所示,已經(jīng)有研究在多種類型的軟件測(cè)試中成功應(yīng)用了大模型,例如移動(dòng)應(yīng)用,深度學(xué)習(xí)庫、自動(dòng)駕駛系統(tǒng)等。不僅能將現(xiàn)有技術(shù)遷移到其他類型的軟件上,也可以針對(duì)某類軟件的特性,研發(fā)針對(duì)性的技術(shù)。

c177cca8-b542-11ee-8b88-92fbcf53809c.png

機(jī)遇3:整合先進(jìn)的提示工程技術(shù)

現(xiàn)有研究尚未充分挖掘大模型的潛力,如下圖所示,僅使用了五種最常見的提示工程技術(shù)。未來的研究應(yīng)該探索更高級(jí)的提示工程技術(shù)(如圖中的思維樹、多模態(tài)思維鏈等),以更充分地發(fā)揮或增強(qiáng)大模型的理解和推理能力。

c194ffd0-b542-11ee-8b88-92fbcf53809c.png

機(jī)遇4:和傳統(tǒng)技術(shù)結(jié)合

目前關(guān)于大模型在解決軟件測(cè)試問題方面的能力還沒有明確的共識(shí),有研究將大模型與傳統(tǒng)軟件測(cè)試技術(shù)相結(jié)合取得了很好的效果,這可能意味著大模型并非解決軟件測(cè)試問題的唯一靈丹妙藥。

考慮到已有許多成熟的軟件工程相關(guān)技術(shù)和工具,可以探索將大模型與傳統(tǒng)技術(shù)相結(jié)合(例如形式化驗(yàn)證等尚未在已有研究中探索過的)、探索其他更先進(jìn)的結(jié)合方式、以及與工具集成更好地發(fā)掘已有工具的潛力。







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • GPT
    GPT
    +關(guān)注

    關(guān)注

    0

    文章

    348

    瀏覽量

    15248
  • 大模型
    +關(guān)注

    關(guān)注

    2

    文章

    2220

    瀏覽量

    2239
  • LLM
    LLM
    +關(guān)注

    關(guān)注

    0

    文章

    253

    瀏覽量

    286

原文標(biāo)題:使用大模型進(jìn)行軟件測(cè)試:調(diào)查、現(xiàn)狀和展望

文章出處:【微信號(hào):軟件質(zhì)量報(bào)道,微信公眾號(hào):軟件質(zhì)量報(bào)道】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    柔性測(cè)試技術(shù)的應(yīng)用領(lǐng)域

    柔性測(cè)試技術(shù)是以多種相關(guān)技術(shù)為基礎(chǔ),可滿足復(fù)雜、多樣化的測(cè)試測(cè)量需求的系統(tǒng)化技術(shù)。它的應(yīng)用領(lǐng)域廣泛,涵蓋了多個(gè)重要行業(yè),以下是關(guān)于柔性測(cè)試
    的頭像 發(fā)表于 10-08 18:03 ?209次閱讀

    摩爾線程攜手東華軟件完成AI大模型推理測(cè)試與適配

    近日,摩爾線程與東華軟件云筑AI創(chuàng)新中心宣布,雙方已完成大模型推理測(cè)試與適配。依托摩爾線程的全功能GPU國產(chǎn)算力,東華軟件打造安全可信的基于私有化大
    的頭像 發(fā)表于 07-31 10:51 ?581次閱讀

    軟件測(cè)試六大問 全面而深入的軟件測(cè)試行業(yè)解疑

    隨著科技的進(jìn)步和大數(shù)據(jù)時(shí)代的到來,?軟件測(cè)試面臨著前所未有的挑戰(zhàn)和機(jī)遇。?在這篇文章中我們將深入討論軟件測(cè)試行業(yè)的發(fā)展前景、行業(yè)趨勢(shì)、薪資水平等,為讀者提供一次
    的頭像 發(fā)表于 07-30 10:28 ?191次閱讀

    人工智能大模型工業(yè)網(wǎng)絡(luò)安全領(lǐng)域的應(yīng)用

    隨著人工智能技術(shù)的飛速發(fā)展,人工智能大模型作為一種具有強(qiáng)大數(shù)據(jù)處理能力和復(fù)雜模式識(shí)別能力的深度學(xué)習(xí)模型,已經(jīng)多個(gè)領(lǐng)域展現(xiàn)了其獨(dú)特的優(yōu)勢(shì)和廣闊的應(yīng)用前景。
    的頭像 發(fā)表于 07-10 14:07 ?575次閱讀

    摩爾線程與智譜AI完成大模型性能測(cè)試與適配

    近日,摩爾線程與智譜AI人工智能領(lǐng)域開展了一輪深入的合作,共同對(duì)GPU大模型進(jìn)行了適配及性能測(cè)試。此次測(cè)試不僅涵蓋了大
    的頭像 發(fā)表于 06-14 16:40 ?858次閱讀

    仿真測(cè)試軟件測(cè)試的區(qū)別

    在當(dāng)今軟件開發(fā)和驗(yàn)證的領(lǐng)域中,測(cè)試是保證軟件質(zhì)量的關(guān)鍵環(huán)節(jié)。而在測(cè)試的眾多方法中,仿真測(cè)試
    的頭像 發(fā)表于 05-17 14:33 ?664次閱讀

    【大語言模型:原理與工程實(shí)踐】大語言模型的評(píng)測(cè)

    和安全性。行業(yè)模型的評(píng)測(cè)則針對(duì)特定領(lǐng)域的能力,整體能力的評(píng)測(cè)則從宏觀角度評(píng)估模型的通用性。基座模型的評(píng)測(cè)中,除了自回歸損失和困惑度等指標(biāo)外
    發(fā)表于 05-07 17:12

    【大語言模型:原理與工程實(shí)踐】核心技術(shù)綜述

    我也不打算把網(wǎng)上相關(guān)的信息總結(jié)一下,這樣的話,工作量很大。 我主要看了-大語言模型基礎(chǔ)技術(shù)這節(jié) 大語言模型(Large Language Models,LLMs)的核心技術(shù)涵蓋了從模型
    發(fā)表于 05-05 10:56

    【大語言模型:原理與工程實(shí)踐】探索《大語言模型原理與工程實(shí)踐》

    全面認(rèn)識(shí),還提供了將這些模型應(yīng)用于實(shí)際問題的實(shí)用指導(dǎo)。對(duì)于希望人工智能領(lǐng)域深入研究的讀者來說,這是一本不可多得的參考書籍。
    發(fā)表于 04-30 15:35

    谷歌模型訓(xùn)練軟件有哪些?谷歌模型訓(xùn)練軟件哪個(gè)好?

    谷歌模型訓(xùn)練方面提供了一些強(qiáng)大的軟件工具和平臺(tái)。以下是幾個(gè)常用的谷歌模型訓(xùn)練軟件及其特點(diǎn)。
    的頭像 發(fā)表于 03-01 16:24 ?758次閱讀

    谷歌模型軟件有哪些功能

    谷歌模型軟件通常指的是谷歌推出的一系列人工智能模型軟件工具,其中最具代表性的是Google Gemini。Google Gemini是谷歌DeepMind團(tuán)隊(duì)開發(fā)的一款大型語言
    的頭像 發(fā)表于 03-01 16:20 ?535次閱讀

    谷歌模型合成軟件有哪些

    谷歌模型合成軟件通常指的是谷歌提供的用于創(chuàng)建、修改和共享3D模型軟件。目前,谷歌推出的模型合成軟件
    的頭像 發(fā)表于 02-29 18:20 ?1272次閱讀

    谷歌模型軟件有哪些好用的

    谷歌模型軟件的好用程度可能因個(gè)人需求和技能水平而異,但以下是一些廣受歡迎的谷歌模型軟件,它們各自的領(lǐng)域
    的頭像 發(fā)表于 02-29 18:17 ?932次閱讀

    Banana Pi BPI-W3 RK3588開發(fā)平臺(tái)批量產(chǎn)測(cè)軟件,全面批量測(cè)試

    Banana Pi BPI-W3 RK3588開發(fā)平臺(tái)批量產(chǎn)測(cè)軟件,全面批量測(cè)試
    的頭像 發(fā)表于 11-02 09:08 ?1252次閱讀
    Banana Pi BPI-W3 RK3588開發(fā)平臺(tái)批量產(chǎn)測(cè)<b class='flag-5'>軟件</b>,<b class='flag-5'>全面</b>批量<b class='flag-5'>測(cè)試</b>

    基于模型的方法民機(jī)機(jī)載軟件中的應(yīng)用

    機(jī)載軟件適航標(biāo)準(zhǔn)對(duì)軟件研制過程、生命周期數(shù)據(jù)以及符合性證據(jù)等都提出了明確的要求。然而,這些過程要求都是建立歐美80~90年代軟件工程實(shí)踐的基礎(chǔ)上,以文本需求+代碼為主要的開發(fā)方式。隨
    的頭像 發(fā)表于 10-27 15:30 ?510次閱讀
    基于<b class='flag-5'>模型</b>的方法<b class='flag-5'>在</b>民機(jī)機(jī)載<b class='flag-5'>軟件</b>中的應(yīng)用