本技術涉及計算機,具體而言,涉及一種數(shù)據(jù)測試方法、裝置、存儲介質及計算機程序產(chǎn)品。
背景技術:
1、在軟件開發(fā)過程中,單元測試是一種重要的質量保證手段,可以有效地檢測代碼的質量和正確性。然而,傳統(tǒng)的單元測試工作通常需要開發(fā)者手動編寫大量的單元測試代碼,該過程不僅耗時耗力,而且可能由于人為因素導致測試覆蓋率不高。相關技術中主要通過測試工具和框架來自動生成單元測試代碼,雖然在一定程度上解決了手動編寫測試代碼的問題,但在測試過程中通常需要開發(fā)者手動參與,例如選擇待測的方法和對象、設置測試參數(shù)等,由此降低了自動化的效率。在處理復雜的邏輯和多態(tài)的情況時,相關技術中的測試方法可能會出現(xiàn)生成的測試代碼不準確或者覆蓋率不高的問題。此外,相關技術中的測試方法在發(fā)現(xiàn)代碼缺陷方面也存在一定的局限性,即無法準確地定位到具體的錯誤位置,由此導致測試效率低下。
2、針對上述的問題,目前尚未提出有效的解決方案。
技術實現(xiàn)思路
1、本技術實施例提供了一種數(shù)據(jù)測試方法、裝置、存儲介質及計算機程序產(chǎn)品,以至少解決相關技術中在進行單元測試過程中存在的測試效率低、測試覆蓋率差的技術問題。
2、根據(jù)本技術實施例其中一方面,提供了一種數(shù)據(jù)測試方法,包括:獲取初始代碼文件和目標提示語句,其中,目標提示語句用于提示單元測試代碼對應的測試類型信息和依賴項內(nèi)容,單元測試代碼用于驗證初始代碼文件中的多個預設程序單元是否符合預期功能設定;利用自然語言處理模型對初始代碼文件和目標提示語句進行分析處理,生成單元測試代碼;對單元測試代碼進行編譯處理,得到編譯結果,其中,編譯結果用于確定單元測試代碼是否通過編譯;響應基于編譯結果確定單元測試代碼通過編譯,執(zhí)行單元測試代碼,得到測試執(zhí)行結果,其中,測試執(zhí)行結果用于確定初始代碼文件中的代碼錯誤位置和代碼錯誤類型。
3、可選地,獲取目標提示語句包括:利用程序結構接口對初始代碼文件進行分析處理,得到目標測試數(shù)據(jù),其中,目標測試數(shù)據(jù)包括:待測試代碼數(shù)據(jù)和關聯(lián)代碼數(shù)據(jù);基于目標測試數(shù)據(jù)對預設提示模板進行填充處理,得到目標提示語句。
4、可選地,利用程序結構接口對初始代碼文件進行分析處理,得到目標測試數(shù)據(jù)包括:利用程序結構接口對初始代碼文件進行解析處理,得到初始代碼文件對應的語法樹結構信息,其中,語法樹結構信息用于確定初始代碼文件的語法結構和調用關系;基于語法樹結構信息獲取目標測試數(shù)據(jù)。
5、可選地,基于目標測試數(shù)據(jù)對預設提示模板進行填充處理,得到目標提示語句包括:基于目標測試數(shù)據(jù)確定單元測試代碼對應的測試類型信息和依賴項內(nèi)容;利用測試類型信息和依賴項內(nèi)容對預設提示模板進行填充處理,得到目標提示語句。
6、可選地,數(shù)據(jù)測試方法還包括:響應基于編譯結果確定單元測試代碼未通過編譯,依據(jù)編譯結果獲取編譯提示信息,其中,編譯提示信息用于提示單元測試代碼對應的編譯失敗原因;利用編譯提示信息和自然語言處理模型對單元測試代碼進行更新處理,直至更新后的單元測試代碼通過編譯。
7、可選地,編譯失敗原因包括以下至少之一:代碼語法錯誤、引用數(shù)據(jù)錯誤、文件路徑錯誤、編譯器配置錯誤。
8、可選地,利用自然語言處理模型對初始代碼文件和目標提示語句進行分析處理,生成單元測試代碼包括:利用自然語言處理模型對初始代碼文件進行識別處理,得到識別結果,以及利用自然語言處理模型對目標提示語句進行解析,得到解析結果;基于識別結果和解析結果生成目標測試用例;根據(jù)目標測試用例生成單元測試代碼。
9、根據(jù)本技術實施例其中一方面,還提供了一種數(shù)據(jù)測試裝置,包括:獲取模塊,用于獲取初始代碼文件和目標提示語句,其中,目標提示語句用于提示單元測試代碼對應的測試類型信息和依賴項內(nèi)容,單元測試代碼用于驗證初始代碼文件中的多個預設程序單元是否符合預期功能設定;生成模塊,用于利用自然語言處理模型對初始代碼文件和目標提示語句進行分析處理,生成單元測試代碼;編譯模塊,用于對單元測試代碼進行編譯處理,得到編譯結果,其中,編譯結果用于確定單元測試代碼是否通過編譯;執(zhí)行模塊,用于響應基于編譯結果確定單元測試代碼通過編譯,執(zhí)行單元測試代碼,得到測試執(zhí)行結果,其中,測試執(zhí)行結果用于確定初始代碼文件中的代碼錯誤位置和代碼錯誤類型。
10、可選地,獲取模塊還用于:利用程序結構接口對初始代碼文件進行分析處理,得到目標測試數(shù)據(jù),其中,目標測試數(shù)據(jù)包括:待測試代碼數(shù)據(jù)和關聯(lián)代碼數(shù)據(jù);基于目標測試數(shù)據(jù)對預設提示模板進行填充處理,得到目標提示語句。
11、可選地,獲取模塊還用于:利用程序結構接口對初始代碼文件進行解析處理,得到初始代碼文件對應的語法樹結構信息,其中,語法樹結構信息用于確定初始代碼文件的語法結構和調用關系;基于語法樹結構信息獲取目標測試數(shù)據(jù)。
12、可選地,獲取模塊還用于:基于目標測試數(shù)據(jù)確定單元測試代碼對應的測試類型信息和依賴項內(nèi)容;利用測試類型信息和依賴項內(nèi)容對預設提示模板進行填充處理,得到目標提示語句。
13、可選地,數(shù)據(jù)測試裝置還包括:處理模塊,用于響應基于編譯結果確定單元測試代碼未通過編譯,依據(jù)編譯結果獲取編譯提示信息,其中,編譯提示信息用于提示單元測試代碼對應的編譯失敗原因;更新模塊,用于利用編譯提示信息和自然語言處理模型對單元測試代碼進行更新處理,直至更新后的單元測試代碼通過編譯。
14、可選地,編譯失敗原因包括以下至少之一:代碼語法錯誤、引用數(shù)據(jù)錯誤、文件路徑錯誤、編譯器配置錯誤。
15、可選地,生成模塊還用于:利用自然語言處理模型對初始代碼文件進行識別處理,得到識別結果,以及利用自然語言處理模型對目標提示語句進行解析,得到解析結果;基于識別結果和解析結果生成目標測試用例;根據(jù)目標測試用例生成單元測試代碼。
16、根據(jù)本技術實施例其中一方面,提供了一種電子設備,包括:存儲器,存儲有可執(zhí)行程序;處理器,用于運行程序,其中,程序運行時執(zhí)行本技術實施例中任意一項的數(shù)據(jù)測試方法。
17、根據(jù)本技術實施例其中一方面,提供了一種計算機可讀存儲介質,計算機可讀存儲介質包括存儲的可執(zhí)行程序,其中,在可執(zhí)行程序運行時控制存儲介質所在設備執(zhí)行本技術實施例中任意一項的數(shù)據(jù)測試方法。
18、根據(jù)本技術實施例其中一方面,提供了一種計算機程序產(chǎn)品,包括計算機程序,計算機程序在被處理器執(zhí)行時實現(xiàn)根據(jù)本技術實施例中任意一項的數(shù)據(jù)測試方法。
19、在本技術實施例中,通過獲取初始代碼文件和目標提示語句,進而利用自然語言處理模型對初始代碼文件和目標提示語句進行分析處理,生成單元測試代碼,隨后對單元測試代碼進行編譯處理,得到編譯結果,響應基于編譯結果確定單元測試代碼通過編譯,執(zhí)行單元測試代碼,得到測試執(zhí)行結果,以確定初始代碼文件中的代碼錯誤位置和代碼錯誤類型,達到了自動化生成單元測試代碼并執(zhí)行單元測試的目的,從而實現(xiàn)了提升單元測試的測試效率和測試覆蓋率的技術效果,進而解決了相關技術中在進行單元測試過程中存在的測試效率低、測試覆蓋率差的技術問題。