System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實現(xiàn)步驟摘要】
本公開涉及測試,尤其涉及一種應(yīng)用程序的測試方法、裝置、設(shè)備及介質(zhì)。
技術(shù)介紹
1、相關(guān)技術(shù)中,為了對應(yīng)用程序進行測試,可以利用robolectric測試模塊將測試環(huán)境注入evosuite工具,使得evosuite工具中具有測試環(huán)境,從而能夠利用evosuite工具生成測試用例進行測試,測試環(huán)境例如可以為安卓(android)環(huán)境。上述測試用例生成過程中,對象的構(gòu)造和初始化可以通過構(gòu)建依賴關(guān)系圖進行分析,但是這種方式存在因分析過程復(fù)雜度較高以及分析耗時過長導(dǎo)致效果劣化、代碼覆蓋率低的問題。
技術(shù)實現(xiàn)思路
1、為了解決上述技術(shù)問題,本公開提供了一種應(yīng)用程序的測試方法、裝置、設(shè)備及介質(zhì)。
2、本公開實施例提供了一種應(yīng)用程序的測試方法,所述方法包括:
3、在應(yīng)用程序的單元測試過程中,響應(yīng)于對所述應(yīng)用程序中目標(biāo)函數(shù)的測試代碼生成指令,獲取所述目標(biāo)函數(shù)所在目標(biāo)類的字節(jié)碼;
4、對所述目標(biāo)類的字節(jié)碼進行分析,確定變量調(diào)用關(guān)系;
5、基于所述變量調(diào)用關(guān)系構(gòu)造目標(biāo)對象,并對所述目標(biāo)對象進行初始化,生成所述目標(biāo)函數(shù)的測試代碼,其中,所述目標(biāo)對象包括測試所述目標(biāo)函數(shù)所需的多個關(guān)鍵變量。
6、本公開實施例還提供了一種應(yīng)用程序的測試裝置,所述裝置包括:
7、獲取模塊,用于在應(yīng)用程序的單元測試過程中,響應(yīng)于對所述應(yīng)用程序中目標(biāo)函數(shù)的測試代碼生成指令,獲取所述目標(biāo)函數(shù)所在目標(biāo)類的字節(jié)碼;
8、調(diào)用關(guān)系模塊,用于對所述目標(biāo)類的字節(jié)
9、生成模塊,用于基于所述變量調(diào)用關(guān)系構(gòu)造目標(biāo)對象,并對所述目標(biāo)對象進行初始化,生成所述目標(biāo)函數(shù)的測試代碼,其中,所述目標(biāo)對象包括測試所述目標(biāo)函數(shù)所需的多個關(guān)鍵變量。
10、本公開實施例還提供了一種電子設(shè)備,所述電子設(shè)備包括:處理器;用于存儲所述處理器可執(zhí)行指令的存儲器;所述處理器,用于從所述存儲器中讀取所述可執(zhí)行指令,并執(zhí)行所述指令以實現(xiàn)如本公開實施例提供的應(yīng)用程序的測試方法。
11、本公開實施例還提供了一種計算機可讀存儲介質(zhì),所述存儲介質(zhì)存儲有計算機程序,所述計算機程序用于執(zhí)行如本公開實施例提供的應(yīng)用程序的測試方法。
12、本公開實施例提供的技術(shù)方案與現(xiàn)有技術(shù)相比具有如下優(yōu)點:本公開實施例提供的應(yīng)用程序的測試方案,在應(yīng)用程序的單元測試過程中,響應(yīng)于對應(yīng)用程序中目標(biāo)函數(shù)的測試代碼生成指令,獲取目標(biāo)函數(shù)所在目標(biāo)類的字節(jié)碼;對目標(biāo)類的字節(jié)碼進行分析,確定變量調(diào)用關(guān)系;基于變量調(diào)用關(guān)系構(gòu)造目標(biāo)對象,并對目標(biāo)對象進行初始化,生成目標(biāo)函數(shù)的測試代碼,其中,目標(biāo)對象包括測試目標(biāo)函數(shù)所需的多個關(guān)鍵變量。采用上述技術(shù)方案,在應(yīng)用程序的單元測試過程中,針對應(yīng)用程序的目標(biāo)函數(shù)的測試代碼生成指令,可以分析確定目標(biāo)函數(shù)所在目標(biāo)類的變量調(diào)用關(guān)系,基于該變量調(diào)用關(guān)系實現(xiàn)對象構(gòu)造和測試代碼的生成,由于變量調(diào)用關(guān)系僅分析了能夠?qū)Ψ椒ǖ膱?zhí)行邏輯產(chǎn)生影響的關(guān)鍵變量,對象構(gòu)造也僅僅構(gòu)造關(guān)鍵變量,具有簡潔性和有效性,降低了分析復(fù)雜度,并且提升了測試代碼的覆蓋范圍。
本文檔來自技高網(wǎng)...【技術(shù)保護點】
1.一種應(yīng)用程序的測試方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述變量調(diào)用關(guān)系通過調(diào)用關(guān)系樹表示,對所述目標(biāo)類的字節(jié)碼進行分析,確定變量調(diào)用關(guān)系,包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述調(diào)用關(guān)系樹是以所述目標(biāo)類為根節(jié)點,方法和關(guān)鍵變量為子節(jié)點的樹。
4.根據(jù)權(quán)利要求2或3所述的方法,對所述目標(biāo)類的字節(jié)碼進行遍歷,通過分析所述目標(biāo)類包括的多個方法以及多個變量之間的調(diào)用關(guān)系構(gòu)建所述調(diào)用關(guān)系樹,包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,創(chuàng)建所述目標(biāo)類的方法所對應(yīng)的方法節(jié)點,包括:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,創(chuàng)建所述方法的關(guān)鍵變量的變量節(jié)點,還包括:
7.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還包括:
8.根據(jù)權(quán)利要求2所述的方法,其特征在于,基于所述變量調(diào)用關(guān)系構(gòu)造目標(biāo)對象,并對所述目標(biāo)對象進行初始化,生成所述目標(biāo)函數(shù)的測試代碼,包括:
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述測試代碼生成指令為基于遺傳算法的迭代
10.一種應(yīng)用程序的測試裝置,其特征在于,包括:
11.一種電子設(shè)備,其特征在于,所述電子設(shè)備包括:
12.一種計算機可讀存儲介質(zhì),其特征在于,所述存儲介質(zhì)存儲有計算機程序,所述計算機程序用于執(zhí)行上述權(quán)利要求1-9中任一所述的應(yīng)用程序的測試方法。
...【技術(shù)特征摘要】
1.一種應(yīng)用程序的測試方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述變量調(diào)用關(guān)系通過調(diào)用關(guān)系樹表示,對所述目標(biāo)類的字節(jié)碼進行分析,確定變量調(diào)用關(guān)系,包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述調(diào)用關(guān)系樹是以所述目標(biāo)類為根節(jié)點,方法和關(guān)鍵變量為子節(jié)點的樹。
4.根據(jù)權(quán)利要求2或3所述的方法,對所述目標(biāo)類的字節(jié)碼進行遍歷,通過分析所述目標(biāo)類包括的多個方法以及多個變量之間的調(diào)用關(guān)系構(gòu)建所述調(diào)用關(guān)系樹,包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,創(chuàng)建所述目標(biāo)類的方法所對應(yīng)的方法節(jié)點,包括:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,創(chuàng)建所述方法的關(guān)鍵變量...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:王垚儒,陳柳杉,甘陳卿,裴玉,梁昊,馬國俊,
申請(專利權(quán))人:北京字跳網(wǎng)絡(luò)技術(shù)有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。