System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 国产午夜片无码区在线播放,无码精品蜜桃一区二区三区WW,无码中文人妻视频2019
  • 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    基于程序執行路徑分解的測試用例生成方法、裝置制造方法及圖紙

    技術編號:43914502 閱讀:13 留言:0更新日期:2025-01-03 13:21
    本公開提出一種基于程序執行路徑分解的測試用例生成方法、裝置,該方法包括:獲取目標代碼,目標代碼中包括目標函數語句的代碼,目標函數語句是指觸發至少兩個執行條件的函數語句;按照代碼執行路徑對目標代碼進行拆分,得到多個子代碼,多個子代碼包括至少兩個執行條件分別對應的子代碼;針對多個子代碼中的任意一個子代碼,生成與子代碼對應的單元測試用例;根據與多個子代碼一一對應的多個單元測試用例,生成目標代碼的測試用例。本公開實施例能夠使得生成的測試用例全面覆蓋代碼的所有邏輯分支,從而達到提高單元測試的測試效率和測試效果的目的。

    【技術實現步驟摘要】

    本公開涉及軟件開發,具體涉及一種基于程序執行路徑分解的測試用例生成方法、裝置。


    技術介紹

    1、在軟件開發過程中,單元測試是確保代碼質量和功能正確性的關鍵環節。單元測試是指驗證軟件中的最小可測試部分(例如單個函數)的正確性。單元測試的目的是隔離代碼的一小部分,并確保這部分代碼在各種輸入條件下都能按預期工作。

    2、現有技術中一般利用大模型技術來生成代碼的單元測試用例,但針對結構層次較多且各層次之間相互關聯的類型的程序,例如:第二層次的函數的執行需要使用的第一層次函數的結果,或者,是第一層次函數的一種條件的分支,大模型在理解方面存在局限性,導致生成的測試用例可能無法全面覆蓋代碼的所有邏輯分支和邊界條件,從而影響整個測試流程的效率和效果。


    技術實現思路

    1、有鑒于此,本公開提出了一種基于程序執行路徑分解的測試用例生成方法、裝置,以解決相關技術中由于大模型在理解邏輯復雜程序時存在局限性,導致生成的測試用例可能無法覆蓋代碼的所有邏輯分支和邊界條件,影響測試效率和效果的問題。

    2、本公開第一方面實施例提出了一種基于程序執行路徑分解的測試用例生成方法,所述方法包括:

    3、獲取目標代碼,所述目標代碼中包括目標函數語句的代碼,所述目標函數語句是指觸發至少兩個執行條件的函數語句;

    4、按照代碼執行路徑對所述目標代碼進行拆分,得到多個子代碼,所述多個子代碼包括所述至少兩個執行條件分別對應的子代碼;

    5、針對所述多個子代碼中的任意一個子代碼,生成與所述子代碼對應的單元測試用例;

    6、根據與所述多個子代碼一一對應的多個單元測試用例,生成所述目標代碼的測試用例。

    7、本公開實施例通過按照代碼執行路徑對目標代碼進行拆分,得到多個子代碼;生成與每個目標代碼對應的測試用例,并基于所有測試用例生成目標代碼的測試用例,能夠使得生成的測試用例全面覆蓋代碼的所有邏輯分支,從而達到提高單元測試的測試效率和測試效果的目的。

    8、在本公開實施例中,所述按照代碼執行路徑對所述目標代碼進行拆分,得到多個子代碼,包括:

    9、將所述目標代碼轉換為對應的抽象語法樹;

    10、根據所述至少兩個執行條件分別對所述抽象語法樹進行拆分,得到多個子抽象語法樹,所述至少兩個執行條件中任一執行條件對應的執行功能對應所述多個子抽象語法樹中的一個子抽象語法樹;

    11、將所述多個子抽象語法樹分別進行轉換,得到所述多個子代碼。

    12、在本公開實施例中,所述目標函數語句是以下任一:判斷函數語句、選擇函數語句和循環函數語句。

    13、在本公開實施例中,所述目標函數語句為所述判斷函數語句;所述根據所述至少兩個執行條件分別對所述抽象語法樹進行拆分,得到多個子抽象語法樹,包括:

    14、當所述抽象語法樹的多個子節點中存在所述判斷函數語句的判斷節點時,確定與所述判斷節點對應的肯定分支結構和否定分支結構;

    15、基于所述肯定分支結構,生成與所述肯定分支結構對應的第一子抽象語法樹;

    16、基于所述否定分支結構,生成與所述否定分支結構對應的第二子抽象語法樹。

    17、本公開實施例通過確定抽象語法樹中判斷節點所對應的肯定分支結構和否定分支結構,生成與之對應的子抽象語法樹,有助于針對程序的不同分支生成測試用例,從而達到提高語句覆蓋率和分支覆蓋率的目的,也可以更精準地測試程序在不同條件下的行為。

    18、在本公開實施例中,所述目標函數語句為所述選擇函數語句;所述根據所述至少兩個執行條件分別對所述抽象語法樹進行拆分,得到多個子抽象語法樹,包括:

    19、當所述抽象語法樹的多個子節點中存在所述選擇函數語句的選擇節點時,確定與所述選擇節點對應的多個類型分支結構;

    20、針對所述多個類型分支結構中的任意一個類型分支結構,基于所述類型分支結構,生成與所述類型分支結構對應的第三子抽象語法樹。

    21、本公開實施例通過確定抽象語法樹中與選擇節點相對應的多個類型分支結構,并生成與每個類型分支結構相對應的子抽象語法樹,生成多個子抽象語法樹可以確保測試路徑覆蓋到所有可能的執行路徑,包括那些由不同條件分支組合形成的復雜路徑,從而達到提高條件覆蓋率的目的,進而實現提高單元測試的測試效率和測試效果。

    22、在本公開實施例中,所述目標函數語句為所述循環函數語句;所述根據所述至少兩個執行條件分別對所述抽象語法樹進行拆分,得到多個子抽象語法樹,包括:

    23、當所述抽象語法樹的多個子節點中存在所述循環函數語句的目標循環節點時,確定與所述目標循環節點對應的目標分支結構;所述目標循環節點是指以原有變量作為截止判斷條件的循環節點,所述目標分支結構包括所述目標循環節點,以及所述目標循環節點的所有子節點;

    24、基于所述目標分支結構,生成與所述目標分支結構對應的第四子抽象語法樹。

    25、在本公開實施例中,所述根據與所述多個子代碼一一對應的多個單元測試用例,生成所述目標代碼的測試用例,包括:

    26、將所述多個單元測試用例進行合并,得到所述目標代碼的測試用例。

    27、在本公開實施例中,在所述生成與所述子代碼對應的單元測試用例之前,還包括:

    28、獲取訓練樣本;所述訓練樣本包括多個樣本代碼,以及與所述多個樣本代碼一一對應的多個樣本單元測試用例;

    29、使用所述訓練樣本訓練初始模型,得到所述單元測試用例生成模型,所述單元測試用例生成模型用于根據所述子代碼生成單元測試用例。

    30、在本公開實施例中,所述獲取訓練樣本,包括:

    31、獲取多個樣本代碼,以及與所述多個樣本代碼一一對應的多個樣本單元測試用例;

    32、針對所述多個樣本代碼中的任意一個樣本代碼,從所述樣本代碼中提取出對應的特征向量;所述特征向量包括以下至少一種:結構特征、語法特征以及邏輯復雜度特征;

    33、將每個樣本代碼的特征向量,以及對應的樣本單元測試用例作為所述訓練樣本。

    34、本公開第二方面的實施例提供了一種基于程序執行路徑分解的測試用例生成裝置,包括:

    35、代碼獲取模塊,用于獲取目標代碼,所述目標代碼中包括目標函數語句的代碼,所述目標函數語句是指觸發至少兩個執行條件的函數語句;

    36、代碼拆分模塊,用于按照代碼執行路徑對所述目標代碼進行拆分,得到多個子代碼,所述多個子代碼包括所述至少兩個執行條件分別對應的子代碼;

    37、單元測試用例生成模塊,用于針對所述多個子代碼中的任意一個子代碼,生成與所述子代碼對應的單元測試用例;

    38、測試用例生成模塊,用于根據與所述多個子代碼一一對應的多個單元測試用例,生成所述目標代碼的測試用例。

    39、本公開第三方面的實施例提供了一種計算機設備,該計算機設備包括存儲器和處理器,所述存儲器和所述處理器之間互相通信連接,所述存儲器中本文檔來自技高網...

    【技術保護點】

    1.一種基于程序執行路徑分解的測試用例生成方法,其特征在于,所述方法包括:

    2.根據權利要求1所述的方法,其特征在于,所述按照代碼執行路徑對所述目標代碼進行拆分,得到多個子代碼,包括:

    3.根據權利要求2所述的方法,其特征在于,所述目標函數語句是以下任一:判斷函數語句、選擇函數語句和循環函數語句。

    4.根據權利要求3所述的方法,其特征在于,所述目標函數語句為所述判斷函數語句;所述根據所述至少兩個執行條件分別對所述抽象語法樹進行拆分,得到多個子抽象語法樹,包括:

    5.根據權利要求3所述的方法,其特征在于,所述目標函數語句為所述選擇函數語句;所述根據所述至少兩個執行條件分別對所述抽象語法樹進行拆分,得到多個子抽象語法樹,包括:

    6.根據權利要求3所述的方法,其特征在于,所述目標函數語句為所述循環函數語句;所述根據所述至少兩個執行條件分別對所述抽象語法樹進行拆分,得到多個子抽象語法樹,包括:

    7.根據權利要求1或2所述的方法,其特征在于,所述根據與所述多個子代碼一一對應的多個單元測試用例,生成所述目標代碼的測試用例,包括:

    8.根據權利要求1所述的方法,其特征在于,在所述生成與所述子代碼對應的單元測試用例之前,還包括:

    9.根據權利要求8所述的方法,其特征在于,所述獲取訓練樣本,包括:

    10.一種基于程序執行路徑分解的測試用例生成裝置,其特征在于,所述裝置包括:

    ...

    【技術特征摘要】

    1.一種基于程序執行路徑分解的測試用例生成方法,其特征在于,所述方法包括:

    2.根據權利要求1所述的方法,其特征在于,所述按照代碼執行路徑對所述目標代碼進行拆分,得到多個子代碼,包括:

    3.根據權利要求2所述的方法,其特征在于,所述目標函數語句是以下任一:判斷函數語句、選擇函數語句和循環函數語句。

    4.根據權利要求3所述的方法,其特征在于,所述目標函數語句為所述判斷函數語句;所述根據所述至少兩個執行條件分別對所述抽象語法樹進行拆分,得到多個子抽象語法樹,包括:

    5.根據權利要求3所述的方法,其特征在于,所述目標函數語句為所述選擇函數語句;所述根據所述至少兩個執行條件分別對所述抽象語法樹進...

    【專利技術屬性】
    技術研發人員:李戈蔣思源,劉洋
    申請(專利權)人:北京硅心科技有限公司
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 日韩a级无码免费视频| 中文字幕久久精品无码| 亚洲AV无码片一区二区三区 | 日日摸日日碰夜夜爽无码| 高清无码中文字幕在线观看视频| 无码av无码天堂资源网| 少妇无码一区二区三区免费| 五月天无码在线观看| 久久av无码专区亚洲av桃花岛| 国产成人年无码AV片在线观看| 无码国内精品久久人妻| 中文字幕人妻无码一夲道 | 久久青青草原亚洲av无码 | 日本爆乳j罩杯无码视频| 精品深夜AV无码一区二区老年| 高潮潮喷奶水飞溅视频无码| 国产一区二区三区无码免费| 乱人伦人妻中文字幕无码| 精品人妻系列无码天堂| 亚洲AV无码成人网站久久精品大| 精品久久久久久无码人妻蜜桃| 一本天堂ⅴ无码亚洲道久久| 玖玖资源站无码专区| 无码久久精品国产亚洲Av影片| 亚洲欧洲日产国码无码网站 | 亚洲AV永久无码区成人网站| 国产免费黄色无码视频| 无码视频在线播放一二三区| 日日摸日日碰人妻无码| 国产成人无码精品久久久露脸| 亚洲中文无码mv| av色欲无码人妻中文字幕| 日韩av无码国产精品| 无码专区永久免费AV网站| 人妻丰满熟AV无码区HD| 无码人妻精品一区二区三区9厂| 国产精品无码久久av不卡| 五月婷婷无码观看| 永久免费AV无码网站国产| 亚洲Av无码专区国产乱码DVD | 亚洲中文字幕无码中文字在线|