本發(fā)明涉及軟件測試、數(shù)據(jù)庫、計算機,具體地涉及一種軟件測試方法、裝置和電子設備。
背景技術:
1、在軟件生命周期中,在開發(fā)人員對軟件代碼進行修改以更新軟件或修復已存在的漏洞后,還需要由測試人員對更新后的軟件進行回歸測試,通過分析軟件的原有功能是否能夠正常運行,確定本次修改是否引入了新的錯誤。從而確保軟件在更新后能夠保持原有的功能和性能,保持軟件正常運行。
2、在實施本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術中至少存在以下問題,現(xiàn)有的回歸測試在進行結果判定時,通常是將實際測試結果與該功能的預期結果進行比對,通過比對結果是否一致判斷是否通過測試。但在實際測試過程中,被測對象的版本差異、執(zhí)行測試的測試環(huán)境與得到預期結果時的環(huán)境之間的差異等多方面原因,都可能導致執(zhí)行同一個用例得到的結果不同,僅通過實際測試結果與預期結果確定回歸測試結果,容易導致對軟件功能的誤判,需要通過人工分析的方式排除誤判,導致人工成本高、測試效率低、難以保證測試精度。
技術實現(xiàn)思路
1、鑒于上述問題,本發(fā)明提供了一種軟件測試方法、裝置和電子設備。
2、根據(jù)本發(fā)明的第一個方面,提供了一種軟件測試方法,包括:基于目標軟件的待測試功能,檢查測試環(huán)境執(zhí)行待測試功能所需的環(huán)境依賴,其中,環(huán)境依賴包括得到預期結果時的環(huán)境配置,預期結果為目標軟件更新前執(zhí)行待測試功能得到的結果,環(huán)境依賴包括軟件依賴;在確定測試環(huán)境不滿足軟件依賴的情況下,在測試環(huán)境中創(chuàng)建虛擬環(huán)境;基于環(huán)境依賴,在虛擬環(huán)境中配置用于執(zhí)行待測試功能的虛擬數(shù)據(jù)表和字符集類別,其中,虛擬數(shù)據(jù)表包括一個或多個數(shù)據(jù)列,一個或多個數(shù)據(jù)列中的數(shù)據(jù)是從源數(shù)據(jù)庫表中獲取的,源數(shù)據(jù)庫是根據(jù)待測試功能的執(zhí)行邏輯確定的,源數(shù)據(jù)庫與目標軟件安裝在不同服務器上,字符集類別是根據(jù)預期結果的編碼方式確定的;在虛擬環(huán)境中執(zhí)行目標軟件的待測試功能,得到執(zhí)行結果;以及基于執(zhí)行結果和預期結果,確定測試結果。
3、根據(jù)本發(fā)明的實施例,基于環(huán)境依賴,在虛擬環(huán)境中配置用于執(zhí)行待測試功能的虛擬數(shù)據(jù)表和字符集類別,包括:在測試環(huán)境不滿足軟件依賴的情況下,確定軟件依賴包括的源數(shù)據(jù)庫表和字符集類別;基于源數(shù)據(jù)庫表中的源數(shù)據(jù),在測試環(huán)境中創(chuàng)建虛擬數(shù)據(jù)表并將源數(shù)據(jù)填充至虛擬數(shù)據(jù)表;基于字符集類別,對虛擬環(huán)境的字符集進行設置;以及基于虛擬數(shù)據(jù)表和測試環(huán)境的字符集,確定虛擬環(huán)境。
4、根據(jù)本發(fā)明的實施例,基于源數(shù)據(jù)庫表中的源數(shù)據(jù),在測試環(huán)境中創(chuàng)建虛擬數(shù)據(jù)表并將源數(shù)據(jù)填充至虛擬數(shù)據(jù)表,包括:基于待測試功能,確定執(zhí)行待測試功能時需要調(diào)用的源數(shù)據(jù)庫表中的一個或多個數(shù)據(jù)表列;確定源數(shù)據(jù)庫表所在的數(shù)據(jù)庫服務器;確定用于連接數(shù)據(jù)庫服務器的可用服務器;控制可用服務器連接數(shù)據(jù)庫服務器,并從源數(shù)據(jù)表中獲取一個或多個數(shù)據(jù)表列的數(shù)據(jù);以及基于一個或多個數(shù)據(jù)表列的數(shù)據(jù),創(chuàng)建虛擬數(shù)據(jù)表并將源數(shù)據(jù)填充至虛擬數(shù)據(jù)表。
5、根據(jù)本發(fā)明的實施例,在虛擬環(huán)境中執(zhí)行目標軟件的待測試功能,得到執(zhí)行結果,包括:基于源數(shù)據(jù)庫表和虛擬數(shù)據(jù)表,對待測試功能進行更新,得到更新后的待測試功能;以及在虛擬環(huán)境中執(zhí)行更新后的待測試功能,得到執(zhí)行結果。
6、根據(jù)本發(fā)明的實施例,基于源數(shù)據(jù)庫表和虛擬數(shù)據(jù)表,對待測試功能進行更新,得到更新后的待測試功能,包括:基于源數(shù)據(jù)庫表對待測試功能進行解析,確定用于表征調(diào)用關系的第一關鍵字;基于虛擬數(shù)據(jù)表,生成第二關鍵字;以及利用第二關鍵字對待測試功能中的第一關鍵字進行替換,得到更新后的待測試功能。
7、根據(jù)本發(fā)明的實施例,環(huán)境依賴還包括硬件依賴,其中,硬件依賴包括執(zhí)行待測試功能時所需的多個硬件類別各自的硬件性能要求;基于目標軟件的待測試功能,檢查測試環(huán)境執(zhí)行待測試功能所需的環(huán)境依賴,包括:基于目標軟件更新前執(zhí)行待測試功能的運行日志,確定源數(shù)據(jù)庫表以及源數(shù)據(jù)庫表中的一個或多個數(shù)據(jù)表列;確定預期結果應用的字符集類別;基于運行日志,確定執(zhí)行待測試功能的硬件依賴;以及基于源數(shù)據(jù)庫表、源數(shù)據(jù)庫表中的一個或多個數(shù)據(jù)表列、字符集類別和硬件依賴,確定環(huán)境依賴。
8、根據(jù)本發(fā)明的實施例,軟件測試方法還包括:在確定測試環(huán)境不滿足硬件依賴的情況下,從硬件依賴包括的多個硬件類別中,確定不滿足硬件性能要求的待提升硬件;以及將待提升硬件以及與待提升硬件對應的硬件性能要求發(fā)送至運維人員。
9、根據(jù)本發(fā)明的實施例,基于執(zhí)行結果和預期結果,確定測試結果,包括:比對執(zhí)行結果和預期結果,確定比對結果;在比對結果表征執(zhí)行結果和預期結果一致的情況下,表征待測試功能通過測試;以及在比對結果表征執(zhí)行結果和預期結果不一致的情況下,表征待測試功能未通過測試。
10、本發(fā)明的第二方面提供了一種軟件測試裝置,包括:
11、環(huán)境檢查模塊,用于基于目標軟件的待測試功能,檢查測試環(huán)境執(zhí)行待測試功能所需的環(huán)境依賴,其中,環(huán)境依賴包括得到預期結果時的環(huán)境配置,預期結果為目標軟件更新前執(zhí)行待測試功能得到的結果,環(huán)境依賴包括軟件依賴;
12、環(huán)境創(chuàng)建模塊,用于在確定測試環(huán)境不滿足軟件依賴的情況下,在測試環(huán)境中創(chuàng)建虛擬環(huán)境;
13、環(huán)境配置模塊,用于基于環(huán)境依賴,在虛擬環(huán)境中配置用于執(zhí)行待測試功能的虛擬數(shù)據(jù)表和字符集類別,其中,虛擬數(shù)據(jù)表包括一個或多個數(shù)據(jù)列,一個或多個數(shù)據(jù)列中的數(shù)據(jù)是從源數(shù)據(jù)庫中獲取的,源數(shù)據(jù)庫是根據(jù)待測試功能的執(zhí)行邏輯確定的,源數(shù)據(jù)庫與目標軟件安裝在不同服務器上,字符集類別是根據(jù)預期結果的編碼方式確定的;
14、功能測試模塊,用于在虛擬環(huán)境中執(zhí)行目標軟件的待測試功能,得到執(zhí)行結果;
15、結果確定模塊,用于基于執(zhí)行結果和預期結果,確定測試結果。
16、本發(fā)明的第三方面提供了一種電子設備,包括:一個或多個處理器;存儲器,用于存儲一個或多個計算機程序,其中,上述一個或多個處理器執(zhí)行上述一個或多個計算機程序以實現(xiàn)上述方法的步驟。
17、本發(fā)明的第四方面還提供了一種計算機可讀存儲介質(zhì),其上存儲有計算機程序或指令,上述計算機程序或指令被處理器執(zhí)行時實現(xiàn)上述方法的步驟。
18、本發(fā)明的第五方面還提供了一種計算機程序產(chǎn)品,包括計算機程序或指令,上述計算機程序或指令被處理器執(zhí)行時實現(xiàn)上述方法的步驟。
19、根據(jù)本發(fā)明的實施例,基于待測試功能對測試環(huán)境進行檢測,在測試環(huán)境不滿足待測試功能的環(huán)境依賴的情況下,創(chuàng)建虛擬環(huán)境并將虛擬環(huán)境配置為滿足環(huán)境依賴,降低軟件測試過程中對測試環(huán)境的高要求,降低測試環(huán)境對軟件測試結果的影響,從而確保測試結果能夠正常反映目標軟件在更新后的功能情況,提高軟件測試的精準度,提高軟件測試的可行性和測試效率。此外,通過創(chuàng)建和配置虛擬環(huán)境,排除了測試環(huán)境不滿足軟件依賴的問題,還能夠減少在軟件測試失敗時,對測試環(huán)境進行分析的人工成本。
1.一種軟件測試方法,其特征在于,所述方法包括:
2.根據(jù)權利要求1所述的方法,其特征在于,所述基于所述環(huán)境依賴,在所述虛擬環(huán)境中配置用于執(zhí)行所述待測試功能的虛擬數(shù)據(jù)表和字符集類別,包括:
3.根據(jù)權利要求2所述的方法,其特征在于,所述基于所述源數(shù)據(jù)庫表中的源數(shù)據(jù),在所述測試環(huán)境中創(chuàng)建虛擬數(shù)據(jù)表并將所述源數(shù)據(jù)填充至所述虛擬數(shù)據(jù)表,包括:
4.根據(jù)權利要求2所述的方法,其特征在于,所述在所述虛擬環(huán)境中執(zhí)行所述目標軟件的待測試功能,得到執(zhí)行結果,包括:
5.根據(jù)權利要求4所述的方法,其特征在于,所述基于所述源數(shù)據(jù)庫表和所述虛擬數(shù)據(jù)表,對所述待測試功能進行更新,得到更新后的待測試功能,包括:
6.根據(jù)權利要求2所述的方法,其特征在于,所述環(huán)境依賴還包括硬件依賴,其中,所述硬件依賴包括執(zhí)行所述待測試功能時所需的多個硬件類別各自的硬件性能要求;
7.根據(jù)權利要求6所述的方法,其特征在于,所述方法還包括:
8.根據(jù)權利要求1所述的方法,其特征在于,所述基于所述執(zhí)行結果和所述預期結果,確定測試結果,包括:
9.一種軟件測試裝置,其特征在于,所述裝置包括:
10.一種電子設備,包括: