本申請涉及軟件測試,更具體地,涉及一種模糊測試用例的生成方法、裝置、計算機設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、模糊測試是檢查信息系統(tǒng)安全性的有效測試方法,模糊測試通過驅(qū)動模糊測試用例向程序輸入高度隨機的數(shù)據(jù)的方式探索程序狀態(tài)、檢測程序漏洞。編寫模糊測試用例代碼是對軟件進行模糊測試的必要步驟。在相關(guān)技術(shù)中,模糊測試用例代碼的生成通常是通過對待測試軟件的使用方式進行分析后,再根據(jù)分析出的使用方式生成模糊測試用例,但通過該這樣的方式在針對一些軟件生成模糊測試用例時會存在不準確的問題。
技術(shù)實現(xiàn)思路
1、本申請?zhí)岢隽艘环N模糊測試用例的生成方法、裝置、計算機設(shè)備及存儲介質(zhì),提高了模糊測試用例生成的準確性。
2、第一方面,本申請實施例提供了一種模糊測試用例的生成方法,所述方法包括:獲取與待測試軟件對應(yīng)的外部軟件的中間表示代碼;根據(jù)所述中間表示代碼中的與所述待測試軟件的外部接口對應(yīng)的虛函數(shù)調(diào)用點,確定所述虛函數(shù)調(diào)用點的目標調(diào)用列表,其中,所述目標調(diào)用列表包括所述外部軟件調(diào)用所述待測試軟件時所調(diào)用的外部接口的接口信息;根據(jù)所述目標調(diào)用列表以及所述待測試軟件對應(yīng)的數(shù)據(jù)流信息以及控制流信息,確定所述待測試軟件的調(diào)用信息,其中,所述數(shù)據(jù)流信息以及所述控制流信息是基于所述中間表示代碼中的數(shù)據(jù)訪問指令以及控制流切換指令確定的,所述調(diào)用信息包括所述外部軟件調(diào)用所述外部接口時的依賴數(shù)據(jù)以及所述外部軟件調(diào)用的所述外部接口之間的控制依賴關(guān)系信息;根據(jù)所述調(diào)用信息,生成模糊測試用例,所述模糊測試用例用于模糊測試所述外部軟件對所述待測試軟件的調(diào)用。
3、第二方面,本申請實施例提供了一種模糊測試用例的生成裝置,所述裝置包括:數(shù)據(jù)獲取模塊、目標調(diào)用列表確定模塊、調(diào)用信息確定模塊以及模糊測試用例生成模塊,其中,所述數(shù)據(jù)獲取模塊用于獲取與待測試軟件對應(yīng)的外部軟件的中間表示代碼;所述目標調(diào)用列表確定模塊用于根據(jù)所述中間表示代碼中的與所述待測試軟件的外部接口對應(yīng)的虛函數(shù)調(diào)用點,確定所述虛函數(shù)調(diào)用點的目標調(diào)用列表,其中,所述目標調(diào)用列表包括所述外部軟件調(diào)用所述待測試軟件時所調(diào)用的外部接口的接口信息;所述調(diào)用信息確定模塊用于根據(jù)所述目標調(diào)用列表以及所述待測試軟件對應(yīng)的數(shù)據(jù)流信息以及控制流信息,確定所述待測試軟件的調(diào)用信息,其中,所述數(shù)據(jù)流信息以及所述控制流信息是基于所述中間表示代碼中的數(shù)據(jù)訪問指令以及控制流切換指令確定的,所述調(diào)用信息包括所述數(shù)據(jù)流中信息中所述外部軟件調(diào)用所述待測試軟件的外部接口時的依賴數(shù)據(jù)以及所述控制流信息中所述外部軟件調(diào)用所述待測試軟件的外部接口的控制依賴關(guān)系;所述模糊測試用例生成模塊用于根據(jù)所述調(diào)用信息,生成模糊測試用例,所述模糊測試用例用于模糊測試所述外部軟件對所述待測試軟件的調(diào)用。
4、第三方面,本申請實施例提供了一種計算機設(shè)備,包括:一個或多個處理器;存儲器;一個或多個應(yīng)用程序,其中所述一個或多個應(yīng)用程序被存儲在所述存儲器中并被配置為由所述一個或多個處理器執(zhí)行,所述一個或多個應(yīng)用程序配置用于執(zhí)行上述第一方面提供的模糊測試用例的生成方法。
5、第四方面,本申請實施例提供了一種計算機可讀取存儲介質(zhì),所述計算機可讀取存儲介質(zhì)中存儲有程序代碼,所述程序代碼可被處理器調(diào)用執(zhí)行上述第一方面提供的模糊測試用例的生成方法。
6、本申請?zhí)峁┑姆桨?,先獲取待測試軟件對應(yīng)的外部軟件的中間表示代碼,再最中間表示代碼中的虛函數(shù)調(diào)用點進行分析,以獲取與待測試軟件的外部接口對應(yīng)的目標調(diào)用列表,最后根據(jù)目標調(diào)用列表、待測試軟件對應(yīng)的數(shù)據(jù)流信息以及控制流信息以及模糊測試用例的模板生成模糊測試用例,通過分析虛函數(shù)調(diào)用點來生成模糊測試用例,避免了直接分析外部軟件對待測試軟件的使用方式所帶來的分析錯誤以及生成不正常的模糊測試用例,提高了模糊測試用例生成的準確性。
1.一種模糊測試用例的生成方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述中間表示代碼中的與所述待測試軟件的外部接口對應(yīng)的虛函數(shù)調(diào)用點,確定所述虛函數(shù)調(diào)用點的目標調(diào)用列表,包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述目標調(diào)用列表以及所述待測試軟件對應(yīng)的數(shù)據(jù)流信息以及控制流信息,確定所述待測試軟件的調(diào)用信息,包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述控制流信息包括控制流節(jié)點圖,所述根據(jù)所述控制流信息,獲取所述外部軟件調(diào)用所述待測試軟件的外部接口之間的控制依賴關(guān)系信息,包括:
5.根據(jù)權(quán)利要求1-4任一項所述的方法,其特征在于,所述根據(jù)所述調(diào)用信息,生成模糊測試用例,包括:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述根據(jù)所述控制依賴關(guān)系信息以及測試數(shù)據(jù),并基于模糊測試用例的模板,生成所述外部軟件對所述待測試軟件進行模糊測試的模糊測試用例,包括:
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,在所述基于所述依賴數(shù)據(jù),創(chuàng)建所述測試數(shù)據(jù)之前,還包括:
8.一種模糊測試用例的生成裝置,其特征在于,所述裝置包括:數(shù)據(jù)獲取模塊、目標調(diào)用列表確定模塊、調(diào)用信息確定模塊以及模糊測試用例生成模塊,其中,
9.一種計算機設(shè)備,其特征在于,包括:
10.一種計算機可讀取存儲介質(zhì),其特征在于,所述計算機可讀取存儲介質(zhì)中存儲有程序代碼,所述程序代碼可被處理器調(diào)用執(zhí)行如權(quán)利要求1-7任一項所述的方法。