本申請涉及軟件測試,特別涉及測試數(shù)據(jù)生成方法。本申請同時涉及測試數(shù)據(jù)生成裝置以及一種測試數(shù)據(jù)生成設(shè)備。
背景技術(shù):
1、在軟件開發(fā)與維護的過程中,軟件測試扮演著保障軟件質(zhì)量的關(guān)鍵角色。測試環(huán)境的構(gòu)造是確保軟件測試能夠順利進行并產(chǎn)生準(zhǔn)確結(jié)果的重要環(huán)節(jié)。測試環(huán)境的構(gòu)造包括硬件環(huán)境、軟件環(huán)境、網(wǎng)絡(luò)環(huán)境、數(shù)據(jù)環(huán)境、工具環(huán)境等多個方面。在測試環(huán)境的準(zhǔn)備工作中,數(shù)據(jù)環(huán)境中測試數(shù)據(jù)的準(zhǔn)備尤為重要。測試數(shù)據(jù)是執(zhí)行測試用例的基礎(chǔ),直接影響到測試的有效性和完整性。
2、相關(guān)技術(shù)中,可以通過將線上數(shù)據(jù)同步后對同步得到的數(shù)據(jù)進行修改來準(zhǔn)備測試數(shù)據(jù),但是這樣的數(shù)據(jù)準(zhǔn)備方案需要大量依賴業(yè)務(wù)經(jīng)驗,例如,如何對同步的數(shù)據(jù)進行修改非常依賴于業(yè)務(wù)經(jīng)驗,因此,數(shù)據(jù)準(zhǔn)備的過程復(fù)雜、效率低,且人工成本極高。
3、鑒于此,需要提供無需大量依賴人工業(yè)務(wù)經(jīng)驗的便捷的準(zhǔn)備測試數(shù)據(jù)的方法。
技術(shù)實現(xiàn)思路
1、有鑒于此,本申請實施例提供了測試數(shù)據(jù)生成方法、裝置和設(shè)備,以解決現(xiàn)有的測試數(shù)據(jù)生成方法存在的大量依賴人工業(yè)務(wù)經(jīng)驗、過程復(fù)雜、成本高的問題。
2、根據(jù)本申請實施例的第一方面,提供了一種測試數(shù)據(jù)生成方法,包括:
3、獲取執(zhí)行第一數(shù)據(jù)庫操作得到的執(zhí)行結(jié)果數(shù)據(jù);所述第一數(shù)據(jù)庫操作是第一程序響應(yīng)于目標(biāo)業(yè)務(wù)類型的線上業(yè)務(wù)請求執(zhí)行的數(shù)據(jù)庫操作;所述第一程序為第一版本的目標(biāo)程序;
4、確定與所述目標(biāo)業(yè)務(wù)類型的所述線上業(yè)務(wù)請求對應(yīng)的逆向sql指令;
5、對所述執(zhí)行結(jié)果數(shù)據(jù)執(zhí)行所述逆向sql指令所指示的第二數(shù)據(jù)庫操作,得到測試數(shù)據(jù);所述測試數(shù)據(jù)用于在仿真測試環(huán)境中的第二程序執(zhí)行所述目標(biāo)業(yè)務(wù)類型的測試業(yè)務(wù)請求時使用;所述第二程序為第二版本的所述目標(biāo)程序。
6、根據(jù)本申請實施例的第二方面,提供了一種測試數(shù)據(jù)生成裝置,包括:
7、執(zhí)行結(jié)果數(shù)據(jù)獲取模塊,用于獲取執(zhí)行第一數(shù)據(jù)庫操作得到的執(zhí)行結(jié)果數(shù)據(jù);所述第一數(shù)據(jù)庫操作是第一程序響應(yīng)于目標(biāo)業(yè)務(wù)類型的線上業(yè)務(wù)請求執(zhí)行的數(shù)據(jù)庫操作;所述第一程序為第一版本的目標(biāo)程序;
8、逆向sql指令確定模塊,用于確定與所述目標(biāo)業(yè)務(wù)類型的所述線上業(yè)務(wù)請求對應(yīng)的逆向sql指令;
9、測試數(shù)據(jù)生成模塊,用于對所述執(zhí)行結(jié)果數(shù)據(jù)執(zhí)行所述逆向sql指令所指示的第二數(shù)據(jù)庫操作,得到測試數(shù)據(jù);所述測試數(shù)據(jù)用于在仿真測試環(huán)境中的第二程序執(zhí)行所述目標(biāo)業(yè)務(wù)類型的測試業(yè)務(wù)請求時使用;所述第二程序為第二版本的所述目標(biāo)程序。
10、根據(jù)本申請實施例的第三方面,提供了一種測試數(shù)據(jù)生成設(shè)備,包括:
11、至少一個處理器;以及,
12、與所述至少一個處理器通信連接的存儲器;其中,
13、所述存儲器存儲有可被所述至少一個處理器執(zhí)行的指令,所述指令被所述至少一個處理器執(zhí)行,以使所述至少一個處理器能夠:
14、獲取執(zhí)行第一數(shù)據(jù)庫操作得到的執(zhí)行結(jié)果數(shù)據(jù);所述第一數(shù)據(jù)庫操作是第一程序響應(yīng)于目標(biāo)業(yè)務(wù)類型的線上業(yè)務(wù)請求執(zhí)行的數(shù)據(jù)庫操作;所述第一程序為第一版本的目標(biāo)程序;
15、確定與所述目標(biāo)業(yè)務(wù)類型的所述線上業(yè)務(wù)請求對應(yīng)的逆向sql指令;
16、對所述執(zhí)行結(jié)果數(shù)據(jù)執(zhí)行所述逆向sql指令所指示的第二數(shù)據(jù)庫操作,得到測試數(shù)據(jù);所述測試數(shù)據(jù)用于在仿真測試環(huán)境中的第二程序執(zhí)行所述目標(biāo)業(yè)務(wù)類型的測試業(yè)務(wù)請求時使用;所述第二程序為第二版本的所述目標(biāo)程序。
17、本說明書一個實施例至少能夠達(dá)到以下有益效果:通過獲取第一程序響應(yīng)于目標(biāo)業(yè)務(wù)類型的線上業(yè)務(wù)請求執(zhí)行第一數(shù)據(jù)庫操作后得到的執(zhí)行結(jié)果數(shù)據(jù),并采用與所述目標(biāo)業(yè)務(wù)類型對應(yīng)的逆向sql指令對所述執(zhí)行結(jié)果數(shù)據(jù)執(zhí)行第二數(shù)據(jù)庫操作,從而得到用于在仿真測試環(huán)境中對與所述第一程序不同版本的第二程序進行相同業(yè)務(wù)場景下的測試時的測試數(shù)據(jù),由此,實現(xiàn)了在不大量依賴人工業(yè)務(wù)經(jīng)驗的情況下對測試數(shù)據(jù)的自動化準(zhǔn)備,人工成本低、過程簡便高效且獲得的數(shù)據(jù)的穩(wěn)定性高。
1.一種測試數(shù)據(jù)生成方法,包括:
2.如權(quán)利要求1所述的方法,還包括:
3.如權(quán)利要求2所述的方法,還包括:
4.如權(quán)利要求2所述的方法,所述基于所述業(yè)務(wù)sql指令,確定與所述業(yè)務(wù)sql指令對應(yīng)的逆向sql指令,具體包括:
5.如權(quán)利要求4所述的方法,所述解析所述業(yè)務(wù)sql指令中的操作對象信息,具體包括:
6.如權(quán)利要求4所述的方法,所述基于所述操作對象信息,生成與所述業(yè)務(wù)sql指令對應(yīng)的逆向sql指令,具體包括:
7.如權(quán)利要求6所述的方法,所述解析所述業(yè)務(wù)sql指令中的操作對象信息,具體包括:解析正向數(shù)據(jù)更新指令,確定更新數(shù)據(jù)的數(shù)據(jù)表的表名、被更新數(shù)據(jù)所屬列的列名以及所述被更新數(shù)據(jù)所屬行應(yīng)滿足的更新條件信息;
8.如權(quán)利要求6所述的方法,所述解析所述業(yè)務(wù)sql指令中的操作對象信息,具體包括:解析正向數(shù)據(jù)查詢指令,確定被查詢數(shù)據(jù)的數(shù)據(jù)表的表名以及所述被查詢數(shù)據(jù)所屬行應(yīng)滿足的查詢條件信息;
9.如權(quán)利要求6所述的方法,所述解析所述業(yè)務(wù)sql指令中的操作對象信息,具體包括:解析正向數(shù)據(jù)刪除指令,確定被刪除數(shù)據(jù)的數(shù)據(jù)表的表名以及所述被刪除數(shù)據(jù)所屬行應(yīng)滿足的刪除條件信息;
10.如權(quán)利要求2所述的方法,還包括:
11.如權(quán)利要求1所述的方法,所述得到測試數(shù)據(jù)之后,還包括:
12.一種測試數(shù)據(jù)生成裝置,包括:
13.一種測試數(shù)據(jù)生成設(shè)備,包括: