System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術屬于軟件模糊測試,特別涉及一種基于大語言模型的模糊測試用例生成方法和系統。
技術介紹
1、在軟件測試領域,模糊測試是一種通過輸入異常或隨機數據來觸發被測系統意外行為的自動化軟件測試技術。它對于發現軟件缺陷和安全漏洞至關重要。模糊測試通過生成異常或隨機的輸入數據來探測系統潛在的缺陷和漏洞。隨著模糊測試工具的不斷發展,它們在現實世界的應用中揭露了眾多的安全漏洞。而編譯器、解釋器和約束求解器,也成為了模糊測試的重點對象。這些系統作為軟件開發過程中的關鍵組件,對它們的安全性測試尤為關鍵。目前,模糊測試工具主要分為基于生成的測試工具和基于變異的測試工具。基于生成的工具嘗試構造符合目標語言語法的完整代碼片段,而基于變異的工具則在一組高質量的輸入樣本上應用變化操作,以探索更廣泛的輸入空間。然而,這些傳統方法存在一些固有的局限性和挑戰:
2、(1)傳統模糊測試工具針對特定的編程語言或系統設計,這導致了它們的普適性受限。開發一個模糊測試工具需要大量的時間和專業知識。例如,針對c/c++編譯器的csmith包含超過80000行代碼,而syzkaller則需要數萬條規則來生成和修改linux系統調用。由于每種編程語言都有其獨特性,將一個模糊測試工具從一個語言環境遷移到另一個是一個復雜的過程。此外,一種有效的模糊測試策略在不同的系統之間并不通用。
3、(2)基于生成還是基于變異的模糊測試在探索整個輸入空間方面都存在局限。基于生成的模糊測試工具高度依賴于目標語言的語法規則來構造代碼,這限制了它們只能測試到語言的一小部分特
技術實現思路
1、為了解決現有技術中存在的不足,本專利技術提供了一種基于大語言模型的模糊測試用例生成方法和系統,以解決現有模糊測試工具面臨的特定性限制和輸入空間覆蓋不足的問題。
2、為解決上述技術問題,本專利技術采用如下的技術方案。
3、本專利技術首先公開了一種基于大語言模型的模糊測試用例生成方法,該方法包括以下步驟:
4、步驟1:接收用于描述目標測試用例的用戶輸入信息;
5、步驟2:基于預設提取模型對用戶輸入信息進行自動提取,得到模糊測試提示;
6、步驟3:將所述模糊測試提示輸入生成模型,利用所述生成模型生成代碼段并進行評分;
7、步驟4:將評分最高的代碼段作為最優提示,再次輸入所述生成模型,利用所述生成模型生成模糊測試用例;
8、步驟5:迭代執行步驟2至步驟4,直到生成預定義數量的模糊測試用例,將所有模糊測試用例組成模糊測試用例集。
9、本專利技術進一步包括以下優選方案:
10、所述基于預設提取模型對用戶輸入信息進行自動提取,得到模糊測試提示,進一步包括:
11、首先向所述提取模型輸入自動提示指令,并設置參數temp=0,使提取llm傾向于選擇概率最高的輸出,生成高置信度的模糊測試提示,將生成的提示形式化為條件概率;
12、隨后將參數temp置為1,使模型在選擇輸出時引入隨機性,同時將每個生成的模糊測試提示添加到候選列表中,直到達到預設樣本數量的候選模糊測試提示。
13、所述利用所述生成模型生成代碼段并進行評分,進一步包括:
14、在獲取所述樣本數量的候選模糊測試提示后,基于評分函數對所有生成的代碼段進行評分,所述評分函數基于有效生成的唯一代碼段的數量,即被目標系統測試用例所接受的測試用例數量。
15、所述評分函數定義為:
16、σc∈mg(p)[isvaild(c,sut)]
17、其中,mg為所述生成模型,p為候選提示,isvalid為判斷函數,如果生成的代碼c有效則返回1,否則返回0。
18、所述提取模型為gpt-4,所述生成模型為starcoder。
19、本專利技術同時公開了一種利用前述基于大語言模型的模糊測試用例生成方法的基于大語言模型的模糊測試用例生成系統,包括:
20、用戶輸入模塊,用于接收用于描述目標測試用例的用戶輸入信息;
21、提示提取模塊,用于基于預設提取模型對用戶輸入信息進行自動提取,得到模糊測試提示;
22、代碼段生成模塊,用于將所述模糊測試提示輸入生成模型,利用所述生成模型生成代碼段并進行評分;
23、用例生成模塊,用于將評分最高的代碼段作為最優提示,再次輸入所述生成模型,利用所述生成模型生成模糊測試用例;
24、用例集構建模塊,用于生成預定義數量的模糊測試用例,將所有模糊測試用例組成模糊測試用例集。
25、相應地,本申請還公開了一種終端,包括處理器及存儲介質;
26、所述存儲介質用于存儲指令;
27、所述處理器用于根據所述指令進行操作以執行根據前述基于大語言模型的模糊測試用例生成方法的步驟。
28、相應地,本申請還公開了一種計算機可讀存儲介質,其上存儲有計算機程序,該程序被處理器執行時實現前述基于大語言模型的模糊測試用例生成方法的步驟。
29、本專利技術的有益效果在于,與現有技術相比,本專利技術提供了一種基于大語言模型的模糊測試用例生成方法和系統,通過訓練大語言模型來理解被測系統的說明文檔或代碼規范,進而生成更為有效的測試用例,從而提高測試用例的多樣性和覆蓋率。與傳統的基于生成或基于變異的模糊測試器相比,本專利技術具有更高的靈活性和適應性,能夠為多種編程語言和系統提供有效的模糊測試支持;通過智能選擇和反饋循環,逐步提升測試用例的有效性和覆蓋范圍,不僅提高了測試過程的效率,還顯著增強了發現潛在缺陷和漏洞的能力,提升了軟件系統的安全性和可靠性。
本文檔來自技高網...【技術保護點】
1.一種基于大語言模型的模糊測試用例生成方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的基于大語言模型的模糊測試用例生成方法,其特征在于,所述基于預設提取模型對用戶輸入信息進行自動提取,得到模糊測試提示,進一步包括:
3.根據權利要求2所述的基于大語言模型的模糊測試用例生成方法,其特征在于,所述利用所述生成模型生成代碼段并進行評分,進一步包括:
4.根據權利要求3所述的基于大語言模型的模糊測試用例生成方法,其特征在于,所述評分函數定義為:
5.根據權利要求4所述的基于大語言模型的模糊測試用例生成方法,其特征在于,所述提取模型為GPT-4,所述生成模型為StarCoder。
6.一種基于大語言模型的模糊測試用例生成系統,其特征在于,包括:
7.根據權利要求6所述的基于大語言模型的模糊測試用例生成系統,其特征在于,所述提示提取模塊,進一步用于:
8.根據權利要求7所述的基于大語言模型的模糊測試用例生成系統,其特征在于,所述代碼段生成模塊,進一步用于:
9.根據權利要求8所述的基于
10.根據權利要求9所述的基于大語言模型的模糊測試用例生成系統,其特征在于,所述提取模型為GPT-4,所述生成模型為StarCoder。
11.一種終端,包括處理器及存儲介質;其特征在于:
12.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,該程序被處理器執行時實現權利要求1-5任一項所述的基于大語言模型的模糊測試用例生成方法的步驟。
...【技術特征摘要】
1.一種基于大語言模型的模糊測試用例生成方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的基于大語言模型的模糊測試用例生成方法,其特征在于,所述基于預設提取模型對用戶輸入信息進行自動提取,得到模糊測試提示,進一步包括:
3.根據權利要求2所述的基于大語言模型的模糊測試用例生成方法,其特征在于,所述利用所述生成模型生成代碼段并進行評分,進一步包括:
4.根據權利要求3所述的基于大語言模型的模糊測試用例生成方法,其特征在于,所述評分函數定義為:
5.根據權利要求4所述的基于大語言模型的模糊測試用例生成方法,其特征在于,所述提取模型為gpt-4,所述生成模型為starcoder。
6.一種基于大語言模型的模糊測試用例生成系統,其特征在于,包括:
<...【專利技術屬性】
技術研發人員:李東昌,李勃,馬驍,谷豐強,馬靜雅,王姣,田東博,李嘉,羅海青,任瑤迦,金洺宇,王冰,王曉宇,姚承偉,王國棟,盧陽,王勇,劉京,陳劍飛,
申請(專利權)人:國網山東省電力公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。