CN120196555A 數(shù)據(jù)庫(kù)的測(cè)試用例生成方法、裝置、服務(wù)器及存儲(chǔ)介質(zhì)_第1頁(yè)
CN120196555A 數(shù)據(jù)庫(kù)的測(cè)試用例生成方法、裝置、服務(wù)器及存儲(chǔ)介質(zhì)_第2頁(yè)
CN120196555A 數(shù)據(jù)庫(kù)的測(cè)試用例生成方法、裝置、服務(wù)器及存儲(chǔ)介質(zhì)_第3頁(yè)
CN120196555A 數(shù)據(jù)庫(kù)的測(cè)試用例生成方法、裝置、服務(wù)器及存儲(chǔ)介質(zhì)_第4頁(yè)
CN120196555A 數(shù)據(jù)庫(kù)的測(cè)試用例生成方法、裝置、服務(wù)器及存儲(chǔ)介質(zhì)_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

司地址300000天津市濱海新區(qū)高新區(qū)濱海科技園高新六路39號(hào)2號(hào)樓2單元201-33號(hào)公司12229專利代理師李成運(yùn)及存儲(chǔ)介質(zhì)本發(fā)明實(shí)施例公開(kāi)了一種數(shù)據(jù)庫(kù)的測(cè)試用執(zhí)行結(jié)果中的異常信息以及每種異常類型的高風(fēng)險(xiǎn)時(shí)段,根據(jù)高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼變更記錄、成測(cè)試用例,對(duì)執(zhí)行結(jié)果中的異常信息進(jìn)行分同時(shí)分析高風(fēng)險(xiǎn)時(shí)段與代碼變更時(shí)間之間的關(guān)利用預(yù)設(shè)的測(cè)試用例生成工具生成測(cè)試用例,并收集測(cè)試用例的執(zhí)利用預(yù)設(shè)的測(cè)試用例生成工具生成測(cè)試用例,并收集測(cè)試用例的執(zhí)行結(jié)果根據(jù)測(cè)試用例的執(zhí)行結(jié)果,確定執(zhí)行結(jié)果中的執(zhí)行異常信息,根據(jù)預(yù)設(shè)的異常分類規(guī)則對(duì)執(zhí)行異常信息進(jìn)行分類,得到異常分類信息根據(jù)異常分類信息,統(tǒng)計(jì)每種異常類型在預(yù)設(shè)時(shí)間段內(nèi)的異常頻率,將異常頻率最高的時(shí)間段確定為每種異常類型的高風(fēng)險(xiǎn)時(shí)段根據(jù)每種異常類型的高風(fēng)險(xiǎn)時(shí)段,收集高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼變更記錄,根據(jù)代碼變更記錄,確定代碼變更對(duì)應(yīng)模塊根據(jù)代碼變更對(duì)應(yīng)模塊和高風(fēng)險(xiǎn)時(shí)段對(duì)應(yīng)的異常類型,生成代碼變更測(cè)試用例,確定代碼變更引入的問(wèn)題2利用預(yù)設(shè)的測(cè)試用例生成工具生成測(cè)試用例,并收集測(cè)試用例的執(zhí)行結(jié)果;根據(jù)測(cè)試用例的執(zhí)行結(jié)果,確定執(zhí)行結(jié)果中的執(zhí)行異常信息,根據(jù)預(yù)設(shè)的異常分類規(guī)則對(duì)執(zhí)行異常信息進(jìn)行分類,得到異常分類信息;根據(jù)異常分類信息,統(tǒng)計(jì)每種異常類型在預(yù)設(shè)時(shí)間段內(nèi)的異常頻率,將異常頻率最高的時(shí)間段確定為每種異常類型的高風(fēng)險(xiǎn)時(shí)段;根據(jù)每種異常類型的高風(fēng)險(xiǎn)時(shí)段,收集高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼變更記錄,根據(jù)代碼變更根據(jù)代碼變更對(duì)應(yīng)模塊和高風(fēng)險(xiǎn)時(shí)段對(duì)應(yīng)的異常類型,生成代碼變更測(cè)試用例,確定代碼變更引入的問(wèn)題。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)每種異常類型的高風(fēng)險(xiǎn)時(shí)段,收根據(jù)高風(fēng)險(xiǎn)時(shí)段,篩選處于高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼提交時(shí)間,根據(jù)高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼提交時(shí)間對(duì)應(yīng)的代碼變更內(nèi)容,確定高風(fēng)險(xiǎn)代碼變更內(nèi)容;根據(jù)高風(fēng)險(xiǎn)代碼變更內(nèi)容,確定代碼變更對(duì)應(yīng)模塊。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)代碼變更對(duì)應(yīng)模塊和高風(fēng)險(xiǎn)時(shí)段根據(jù)代碼變更對(duì)應(yīng)模塊,生成代碼變更測(cè)試用例;根據(jù)高風(fēng)險(xiǎn)時(shí)段對(duì)應(yīng)的異常類型,對(duì)代碼變更測(cè)試用例進(jìn)行優(yōu)化;執(zhí)行優(yōu)化后的代碼變更測(cè)試用例,收集執(zhí)行結(jié)果,根據(jù)執(zhí)行結(jié)果確定代碼變更引入的4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)異常分類信息,統(tǒng)計(jì)每種異常類型在預(yù)設(shè)時(shí)間段內(nèi)的異常頻率,將異常頻率最高的時(shí)間段確定為每種異常類型的高風(fēng)險(xiǎn)時(shí)根據(jù)異常分類信息,統(tǒng)計(jì)每種異常類型的出現(xiàn)頻率,根據(jù)異常出現(xiàn)頻率由高到低進(jìn)行根據(jù)異常類型排序信息,確定異常測(cè)試優(yōu)先級(jí);對(duì)每種異常類型按預(yù)設(shè)時(shí)間段內(nèi)的異常頻率進(jìn)行排序,將每種異常類型出現(xiàn)頻率最高的時(shí)間段確定為每種異常類型的高風(fēng)險(xiǎn)時(shí)段。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)測(cè)試用例的執(zhí)行結(jié)果,確定執(zhí)行結(jié)果中的執(zhí)行異常信息,根據(jù)預(yù)設(shè)的異常分類規(guī)則對(duì)執(zhí)行異常信息進(jìn)行分類,得到異常分利用測(cè)試用例的執(zhí)行日志提取每個(gè)測(cè)試用例的執(zhí)行結(jié)果;提取執(zhí)行結(jié)果中的執(zhí)行狀態(tài)信息、異常信息;根據(jù)預(yù)設(shè)的異常分類規(guī)則,對(duì)執(zhí)行結(jié)果中提取的異常信息進(jìn)行分類,得到異常分類信6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述利用預(yù)設(shè)的測(cè)試用例生成工具生成測(cè)3利用靜態(tài)代碼分析工具對(duì)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序源代碼進(jìn)行語(yǔ)法分析,識(shí)別所有的代碼邏輯組件,并利用代碼解析工具生成抽象語(yǔ)法樹(shù);根據(jù)API知識(shí)庫(kù),定義測(cè)試用例的數(shù)據(jù)生成規(guī)則;根據(jù)測(cè)試用例的數(shù)據(jù)生成規(guī)則定義測(cè)試用例模板,測(cè)試用例模板中需要填充測(cè)試用數(shù)據(jù)的位置采用占位符進(jìn)行替代;根據(jù)測(cè)試用例的數(shù)據(jù)生成規(guī)則生成測(cè)試用數(shù)據(jù),并將測(cè)試用數(shù)據(jù)輸入測(cè)試用例模板中,生成測(cè)試用例,所述測(cè)試用數(shù)據(jù)包括正常測(cè)試數(shù)據(jù)、邊界值測(cè)試數(shù)據(jù)和異常測(cè)試數(shù)據(jù);在配置好的測(cè)試環(huán)境中執(zhí)行測(cè)試用例,記錄每個(gè)測(cè)試用例的執(zhí)行結(jié)果。7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包利用代碼覆蓋率工具分析測(cè)試用例的覆蓋率,生成覆蓋率報(bào)告;根據(jù)覆蓋率報(bào)告,識(shí)別未被測(cè)試用例覆蓋的代碼路徑;根據(jù)未被測(cè)試用例覆蓋的代碼路徑,對(duì)測(cè)試用例進(jìn)行優(yōu)化。測(cè)試用例執(zhí)行單元,用于生成測(cè)試用例并收集測(cè)試用例的執(zhí)行結(jié)果;異常分類單元,用于對(duì)測(cè)試用例執(zhí)行結(jié)果中的異常信息進(jìn)行分類;高風(fēng)險(xiǎn)時(shí)段預(yù)測(cè)單元,用于根據(jù)每種異常類型的異常頻率,確定每種異常類型的高風(fēng)險(xiǎn)時(shí)段;變更模塊查找單元,用于根據(jù)代碼變更記錄查找代碼變更對(duì)應(yīng)模塊;變更模塊測(cè)試單元,用于根據(jù)代碼變更對(duì)應(yīng)模塊和異常類型確定代碼變更引入的問(wèn)一個(gè)或多個(gè)處理器;存儲(chǔ)裝置,用于存儲(chǔ)一個(gè)或多個(gè)程序,當(dāng)所述一個(gè)或多個(gè)程序被所述一個(gè)或多個(gè)處理器執(zhí)行,使得所述一個(gè)或多個(gè)處理器實(shí)現(xiàn)如權(quán)利要求1-7中任一所述的數(shù)據(jù)庫(kù)的測(cè)試用例生成方法。10.一種包含計(jì)算機(jī)可執(zhí)行指令的存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令在由計(jì)算機(jī)處理器執(zhí)行時(shí)用于執(zhí)行如權(quán)利要求1-7任一所述的數(shù)據(jù)庫(kù)的測(cè)試用例生成方法。4技術(shù)領(lǐng)域[0001]本發(fā)明涉及數(shù)據(jù)庫(kù)測(cè)試技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)庫(kù)的測(cè)試用例生成方法、裝背景技術(shù)[0002]隨著信息技術(shù)的發(fā)展,數(shù)據(jù)庫(kù)作為信息系統(tǒng)的核心組成部分,其穩(wěn)定性和安全性越來(lái)越受到重視。GBase8s是一款高性能的數(shù)據(jù)庫(kù)管理系統(tǒng),廣泛應(yīng)用于電信、金融等行業(yè)。由于電信和金融行業(yè)的業(yè)務(wù)需求多變,數(shù)據(jù)交互對(duì)象的數(shù)量和種類較多,會(huì)有許多應(yīng)用程序需要與數(shù)據(jù)庫(kù)進(jìn)行交互,需要對(duì)數(shù)據(jù)庫(kù)靈活的部署,因此產(chǎn)生了適應(yīng)不同環(huán)境需求的多種數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,GBase8s數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序的測(cè)試工作也成為一個(gè)重要環(huán)節(jié)。[0003]單元測(cè)試是一種基本測(cè)試形式,主要用于驗(yàn)證單個(gè)模塊或函數(shù)的正確性。對(duì)數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序進(jìn)行單元測(cè)試排除異常能保證數(shù)據(jù)庫(kù)的正確部署和穩(wěn)定運(yùn)行。在測(cè)試過(guò)程中,針對(duì)每種驅(qū)動(dòng)程序需要準(zhǔn)備不同的單元測(cè)試用例,在編寫(xiě)時(shí)還需要使用不同的開(kāi)發(fā)語(yǔ)言,數(shù)據(jù)生成過(guò)程中需要大量的手動(dòng)操作,增加了出錯(cuò)的可能性,同時(shí)也限制了生成速度和靈活性。使用預(yù)先定義的模板和規(guī)則生成的測(cè)試用例,對(duì)與驅(qū)動(dòng)程序源碼的測(cè)試覆蓋率不足,難以全面覆蓋所有可能的使用場(chǎng)景。特別在面對(duì)新代碼提交時(shí),無(wú)法進(jìn)行較為全面的測(cè)試,不能確定新提交的代碼對(duì)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序的影響,不能確保數(shù)據(jù)庫(kù)的穩(wěn)定安全運(yùn)行。發(fā)明內(nèi)容[0004]本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫(kù)的測(cè)試用例生成方法、裝置、服務(wù)器及存儲(chǔ)介質(zhì),以解決如何確定新代碼提交時(shí)對(duì)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序的影響的技術(shù)問(wèn)題。利用預(yù)設(shè)的測(cè)試用例生成工具生成測(cè)試用例,并收集測(cè)試用例的執(zhí)行結(jié)果;根據(jù)測(cè)試用例的執(zhí)行結(jié)果,確定執(zhí)行結(jié)果中的執(zhí)行異常信息,根據(jù)預(yù)設(shè)的異常分類規(guī)則對(duì)執(zhí)行異常信息進(jìn)行分類,得到異常分類信息;根據(jù)異常分類信息,統(tǒng)計(jì)每種異常類型在預(yù)設(shè)時(shí)間段內(nèi)的異常頻率,將異常頻率最高的時(shí)間段確定為每種異常類型的高風(fēng)險(xiǎn)時(shí)段;根據(jù)每種異常類型的高風(fēng)險(xiǎn)時(shí)段,收集高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼變更記錄,根據(jù)代碼根據(jù)代碼變更對(duì)應(yīng)模塊和高風(fēng)險(xiǎn)時(shí)段對(duì)應(yīng)的異常類型,生成代碼變更測(cè)試用例,確定代碼變更引入的問(wèn)題。[0006]進(jìn)一步的,所述根據(jù)每種異常類型的高風(fēng)險(xiǎn)時(shí)段,收集高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼變更根據(jù)高風(fēng)險(xiǎn)時(shí)段,篩選處于高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼提交時(shí)間,根據(jù)高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼提交時(shí)間對(duì)應(yīng)的代碼變更內(nèi)容,確定高風(fēng)險(xiǎn)代碼變更內(nèi)容;5根據(jù)高風(fēng)險(xiǎn)代碼變更內(nèi)容,確定代碼變更對(duì)應(yīng)模塊。[0007]進(jìn)一步的,所述根據(jù)代碼變更對(duì)應(yīng)模塊和高風(fēng)險(xiǎn)時(shí)段對(duì)應(yīng)的異常類型,生成代碼根據(jù)代碼變更對(duì)應(yīng)模塊,生成代碼變更測(cè)試用例;根據(jù)高風(fēng)險(xiǎn)時(shí)段對(duì)應(yīng)的異常類型,對(duì)代碼變更測(cè)試用例進(jìn)行優(yōu)化;執(zhí)行優(yōu)化后的代碼變更測(cè)試用例,收集執(zhí)行結(jié)果,根據(jù)執(zhí)行結(jié)果確定代碼變更引入的問(wèn)題。[0008]進(jìn)一步的,所述根據(jù)異常分類信息,統(tǒng)計(jì)每種異常類型在預(yù)設(shè)時(shí)間段內(nèi)的異常頻率,將異常頻率最高的時(shí)間段確定為每種異常類型的高風(fēng)險(xiǎn)時(shí)段,包括:根據(jù)異常分類信息,統(tǒng)計(jì)每種異常類型的出現(xiàn)頻率,根據(jù)異常出現(xiàn)頻率由高到低根據(jù)異常類型排序信息,確定異常測(cè)試優(yōu)先級(jí);對(duì)每種異常類型按預(yù)設(shè)時(shí)間段內(nèi)的異常頻率進(jìn)行排序,將每種異常類型出現(xiàn)頻率最高的時(shí)間段確定為每種異常類型的高風(fēng)險(xiǎn)時(shí)段。[0009]進(jìn)一步的,所述根據(jù)測(cè)試用例的執(zhí)行結(jié)果,確定執(zhí)行結(jié)果中的執(zhí)行異常信息,根據(jù)預(yù)設(shè)的異常分類規(guī)則對(duì)執(zhí)行異常信息進(jìn)行分類,得到異常分類信息,包括:利用測(cè)試用例的執(zhí)行日志提取每個(gè)測(cè)試用例的執(zhí)行結(jié)果;提取執(zhí)行結(jié)果中的執(zhí)行狀態(tài)信息、異常信息;根據(jù)預(yù)設(shè)的異常分類規(guī)則,對(duì)執(zhí)行結(jié)果中提取的異常信息進(jìn)行分類,得到異常分類信息。[0010]進(jìn)一步的,所述利用預(yù)設(shè)的測(cè)試用例生成工具生成測(cè)試用例,并收集測(cè)試用例的利用靜態(tài)代碼分析工具對(duì)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序源代碼進(jìn)行語(yǔ)法分析,識(shí)別所有的代碼邏輯組件,并利用代碼解析工具生成抽象語(yǔ)法樹(shù);根據(jù)API知識(shí)庫(kù),定義測(cè)試用例的數(shù)據(jù)生成規(guī)則;根據(jù)測(cè)試用例的數(shù)據(jù)生成規(guī)則定義測(cè)試用例模板,測(cè)試用例模板中需要填充測(cè)試用數(shù)據(jù)的位置采用占位符進(jìn)行替代;根據(jù)測(cè)試用例的數(shù)據(jù)生成規(guī)則生成測(cè)試用數(shù)據(jù),并將測(cè)試用數(shù)據(jù)輸入測(cè)試用例模板中,生成測(cè)試用例,所述測(cè)試用數(shù)據(jù)包括正常測(cè)試數(shù)據(jù)、邊界值測(cè)試數(shù)據(jù)和異常測(cè)試數(shù)在配置好的測(cè)試環(huán)境中執(zhí)行測(cè)試用例,記錄每個(gè)測(cè)試用例的執(zhí)行結(jié)果。利用代碼覆蓋率工具分析測(cè)試用例的覆蓋率,生成覆蓋率報(bào)告;根據(jù)覆蓋率報(bào)告,識(shí)別未被測(cè)試用例覆蓋的代碼路徑;根據(jù)未被測(cè)試用例覆蓋的代碼路徑,對(duì)測(cè)試用例進(jìn)行優(yōu)化。測(cè)試用例執(zhí)行單元,用于生成測(cè)試用例并收集測(cè)試用例的執(zhí)行結(jié)果;異常分類單元,用于對(duì)測(cè)試用例執(zhí)行結(jié)果中的異常信息進(jìn)行分類;6高風(fēng)險(xiǎn)時(shí)段預(yù)測(cè)單元,用于根據(jù)每種異常類型的異常頻率,確定每種異常類型的高風(fēng)險(xiǎn)時(shí)段;變更模塊查找單元,用于根據(jù)代碼變更記錄查找代碼變更對(duì)應(yīng)模塊;變更模塊測(cè)試單元,用于根據(jù)代碼變更對(duì)應(yīng)模塊和異常類型確定代碼變更引入的一個(gè)或多個(gè)處理器;當(dāng)所述一個(gè)或多個(gè)程序被所述一個(gè)或多個(gè)處理器執(zhí)行,使得所述一個(gè)或多個(gè)處理器實(shí)現(xiàn)上述數(shù)據(jù)庫(kù)的測(cè)試用例生成方法。[0014]第四方面,本發(fā)明實(shí)施例提供了包含計(jì)算機(jī)可執(zhí)行指令的存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令在由計(jì)算機(jī)處理器執(zhí)行時(shí)用于執(zhí)行上述數(shù)據(jù)庫(kù)的測(cè)試用例生成方法。[0015]本發(fā)明實(shí)施例提供的一種數(shù)據(jù)庫(kù)的測(cè)試用例生成方法、裝置、服務(wù)器及存儲(chǔ)介質(zhì),所述方法通過(guò)測(cè)試用例生成工具自動(dòng)生成測(cè)試用例,收集測(cè)試用例的執(zhí)行結(jié)果,對(duì)執(zhí)行結(jié)果中的異常信息進(jìn)行分析,優(yōu)先對(duì)出現(xiàn)頻率較高的異常類型進(jìn)行測(cè)試,排除數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序較大的潛在風(fēng)險(xiǎn)。同時(shí)根據(jù)異常頻率較高的高風(fēng)險(xiǎn)時(shí)段,分析高風(fēng)險(xiǎn)時(shí)段與代碼變更時(shí)間之間的關(guān)聯(lián),再結(jié)合異常類型,生成針對(duì)代碼變更的測(cè)試用例,分析代碼變更對(duì)相應(yīng)模塊和功能產(chǎn)生的影響,排除或修復(fù)代碼變更引入的新問(wèn)題。通過(guò)自動(dòng)生成測(cè)試用例減少了大量的人工成本,能適應(yīng)不同的驅(qū)動(dòng)程序編程語(yǔ)言,同時(shí)為后期針對(duì)異常類型、高風(fēng)險(xiǎn)時(shí)段、代碼變更模塊進(jìn)行測(cè)試以定位代碼變更引入的問(wèn)題打下基礎(chǔ),能便捷高效的對(duì)代碼的變更進(jìn)行測(cè)試,能更全面的對(duì)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序進(jìn)行測(cè)試,快速定位代碼變更引入的問(wèn)題,有利于高效排除數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序的異常,保障數(shù)據(jù)庫(kù)的安全穩(wěn)定運(yùn)行。附圖說(shuō)明[0016]構(gòu)成本發(fā)明的一部分的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:圖1為本發(fā)明實(shí)施例一所述的一種數(shù)據(jù)庫(kù)的測(cè)試用例生成方法的流程圖;圖2為本發(fā)明實(shí)施例二所述的一種數(shù)據(jù)庫(kù)的測(cè)試用例生成方法的流程圖;圖3為本發(fā)明實(shí)施例三所述的一種數(shù)據(jù)庫(kù)的測(cè)試用例生成方法的流程圖;圖4為本發(fā)明實(shí)施例四所述的一種數(shù)據(jù)庫(kù)的測(cè)試用例生成方法的流程圖;圖5為本發(fā)明實(shí)施例五所述的一種數(shù)據(jù)庫(kù)的測(cè)試用例生成裝置的結(jié)構(gòu)示意圖;圖6為本發(fā)明實(shí)施例六所述的服務(wù)器的結(jié)構(gòu)圖。具體實(shí)施方式[0017]下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。可以理解的是,此處所描述的具體實(shí)施例僅僅用于解釋本發(fā)明,而非對(duì)本發(fā)明的限定。另外還需要說(shuō)明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。[0018]為了保障數(shù)據(jù)庫(kù)的運(yùn)行穩(wěn)定,需要對(duì)數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序進(jìn)行測(cè)試,發(fā)現(xiàn)并排除數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序的問(wèn)題。在對(duì)數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序進(jìn)行測(cè)試時(shí),傳統(tǒng)單元測(cè)試方法需要消耗大7量工作編寫(xiě)測(cè)試用例,當(dāng)數(shù)據(jù)庫(kù)部署環(huán)境發(fā)生改變時(shí),數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序也會(huì)發(fā)生較大改變,導(dǎo)致需要大量修改甚至重新編寫(xiě)測(cè)試用例。通過(guò)測(cè)試用例生成工具可以生成測(cè)試用例,減少人工成本,但生成的測(cè)試用例受生成規(guī)則和模板的定義影響,代碼覆蓋率有限,尤其在對(duì)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序的代碼提交更新時(shí),無(wú)法覆蓋到新代碼并對(duì)新代碼進(jìn)行測(cè)試,導(dǎo)致新代碼對(duì)驅(qū)動(dòng)程序的變更導(dǎo)致的問(wèn)題無(wú)法及時(shí)排查,影響數(shù)據(jù)庫(kù)的運(yùn)行穩(wěn)定。[0020]圖1為本發(fā)明實(shí)施例一所述的一種數(shù)據(jù)庫(kù)的測(cè)試用例生成方法的流程圖,本實(shí)施例通過(guò)對(duì)高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼變更內(nèi)容以及異常類型,生成代碼變更測(cè)試用例,快速定位并解決代碼變更引入的問(wèn)題,具體包括如下步驟:[0021]S101,利用預(yù)設(shè)的測(cè)試用例生成工具生成測(cè)試用例,并收集測(cè)試用例的執(zhí)行結(jié)果。[0022]根據(jù)數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序,利用靜態(tài)代碼分析工具和代碼解析工具對(duì)驅(qū)動(dòng)程序的源碼進(jìn)行分析,利用分析得到的驅(qū)動(dòng)程序API信息建立API知識(shí)庫(kù),API知識(shí)庫(kù)可以是結(jié)構(gòu)化的數(shù)據(jù)庫(kù)表。根據(jù)API知識(shí)庫(kù)中的API信息,定義測(cè)試用例的測(cè)試用數(shù)據(jù)生成規(guī)則,生成符合API的測(cè)試數(shù)據(jù),再根據(jù)測(cè)試用數(shù)據(jù)生成規(guī)則、驅(qū)動(dòng)程序的編程開(kāi)發(fā)語(yǔ)言生成測(cè)試用例模板。在測(cè)試用例模板中需要添加測(cè)試用數(shù)據(jù)的位置利用占位符代替,用于預(yù)留測(cè)試用數(shù)據(jù)填充的位置。根據(jù)測(cè)試用例的測(cè)試用數(shù)據(jù)生成規(guī)則生成測(cè)試用數(shù)據(jù),并填入測(cè)試用例模板中對(duì)應(yīng)的位置中,生成測(cè)試用例,生成的測(cè)試用例以代碼形式呈現(xiàn)。執(zhí)行生成的測(cè)試用例,收集測(cè)試用例的執(zhí)行結(jié)果,用于分析測(cè)試出的問(wèn)題。[0023]S102,根據(jù)測(cè)試用例的執(zhí)行結(jié)果,確定執(zhí)行結(jié)果中的執(zhí)行異常信息,根據(jù)預(yù)設(shè)的異常分類規(guī)則對(duì)執(zhí)行異常信息進(jìn)行分類,得到異常分類信息。[0024]測(cè)試用例執(zhí)行后會(huì)生成執(zhí)行結(jié)果,執(zhí)行結(jié)果可以為執(zhí)行日志。從執(zhí)行結(jié)果中分析常類型進(jìn)行分類,得到每種類型異常的產(chǎn)生情況,可以根據(jù)每種類型異常的產(chǎn)生頻率、產(chǎn)生時(shí)間、產(chǎn)生次數(shù)等情況,分析每種類型異常對(duì)應(yīng)的問(wèn)題并及時(shí)解決,維持?jǐn)?shù)據(jù)庫(kù)的運(yùn)行穩(wěn)定。異常分類可以根據(jù)每種編程語(yǔ)言預(yù)先定義,例如根據(jù)異常消息中的關(guān)鍵字等將異常信[0025]S103,根據(jù)異常分類信息,統(tǒng)計(jì)每種異常類型在預(yù)設(shè)時(shí)間段內(nèi)的異常頻率,將異常頻率最高的時(shí)間段確定為每種異常類型的高風(fēng)險(xiǎn)時(shí)段。[0026]根據(jù)每種異常類型的產(chǎn)生時(shí)間,預(yù)定義一個(gè)單位時(shí)間段,利用單位時(shí)間段對(duì)異常類型的產(chǎn)生時(shí)間進(jìn)行劃分,分析每個(gè)單位時(shí)間段內(nèi)產(chǎn)生的異常數(shù)量將其視為異常頻率,篩選出異常頻率最高的單位時(shí)間段,表示該時(shí)間段內(nèi)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序有較高的概率發(fā)生了錯(cuò)誤,可以通過(guò)對(duì)異常類型進(jìn)行分析及時(shí)發(fā)現(xiàn)問(wèn)題。[0027]S104,根據(jù)每種異常類型的高風(fēng)險(xiǎn)時(shí)段,收集高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼變更記錄,根據(jù)代碼變更記錄,確定代碼變更對(duì)應(yīng)模塊。[0028]根據(jù)代碼變更記錄,利用代碼變更時(shí)間與高風(fēng)險(xiǎn)時(shí)段的時(shí)間進(jìn)行匹配,定位高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼變更記錄。由于高風(fēng)險(xiǎn)時(shí)段內(nèi)的異常頻率是較高的,而高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼變更可能是異常產(chǎn)生的主要原因,即代碼變更后的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序產(chǎn)生了問(wèn)題,在執(zhí)行測(cè)試用例的過(guò)程中針對(duì)該問(wèn)題產(chǎn)生了大量的異常信息,使異常頻率升高。分析高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼變更記錄中代碼變更的內(nèi)容,確定代碼變更對(duì)應(yīng)的模塊,針對(duì)該模塊進(jìn)行異常分8析。[0029]S105,根據(jù)代碼變更對(duì)應(yīng)模塊和高風(fēng)險(xiǎn)時(shí)段對(duì)應(yīng)的異常類型,生成代碼變更測(cè)試[0030]分析代碼變更對(duì)應(yīng)模塊提供的功能,與異常類型反應(yīng)的功能異常之間的關(guān)聯(lián),針對(duì)代碼變更對(duì)應(yīng)模塊的功能異常,根據(jù)定義的測(cè)試用數(shù)據(jù)生成規(guī)則和測(cè)試用例模板,生成針對(duì)該模塊功能異常的測(cè)試用例,對(duì)代碼變更模塊由于代碼變更產(chǎn)生的功能異常進(jìn)行測(cè)試,分析導(dǎo)致異常的原因并及時(shí)修復(fù),進(jìn)而保證數(shù)據(jù)庫(kù)的安全穩(wěn)定運(yùn)行。[0031]本實(shí)施例通過(guò)測(cè)試用例生成工具自動(dòng)生成測(cè)試用例,收集測(cè)試用例的執(zhí)行結(jié)果,對(duì)執(zhí)行結(jié)果中的異常信息進(jìn)行分析,判斷異常頻率較高的高風(fēng)險(xiǎn)時(shí)段,根據(jù)高風(fēng)險(xiǎn)時(shí)段與代碼變更時(shí)間之間的關(guān)聯(lián),同時(shí)結(jié)合異常類型,生成針對(duì)代碼變更的測(cè)試用例,分析代碼變更對(duì)相應(yīng)模塊和功能產(chǎn)生的影響,排除或修復(fù)代碼變更引入的新問(wèn)題。通過(guò)自動(dòng)生成測(cè)試用例減少了大量的人工成本,能適應(yīng)不同的驅(qū)動(dòng)程序編程語(yǔ)言,同時(shí)為后期針對(duì)異常類型、高風(fēng)險(xiǎn)時(shí)段、代碼變更模塊進(jìn)行測(cè)試以定位代碼變更引入的問(wèn)題打下基礎(chǔ),能便捷高效的對(duì)代碼的變更進(jìn)行測(cè)試,能更全面的對(duì)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序進(jìn)行測(cè)試,快速定位代碼變更引入的問(wèn)題,有利于高效排除數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序的異常,保障數(shù)據(jù)庫(kù)的安全穩(wěn)定運(yùn)行。[0032]實(shí)施例二[0033]圖2為本發(fā)明實(shí)施例二所述的一種數(shù)據(jù)庫(kù)的測(cè)試用例生成方法的流程圖,本實(shí)施例以上述實(shí)施例為基礎(chǔ)進(jìn)行優(yōu)化,在本實(shí)施例中,將根據(jù)每種異常類型的高風(fēng)險(xiǎn)時(shí)段,收集高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼變更記錄,根據(jù)代碼變更記錄,確定代碼變更對(duì)應(yīng)模塊,具體優(yōu)化為:根據(jù)高風(fēng)險(xiǎn)時(shí)段,篩選處于高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼提交時(shí)間,根據(jù)高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼提交時(shí)間對(duì)應(yīng)的代碼變更內(nèi)容,確定高風(fēng)險(xiǎn)代碼變更內(nèi)容;根據(jù)高風(fēng)險(xiǎn)代碼變更內(nèi)容,確定代碼變更對(duì)應(yīng)模塊。[0034]相應(yīng)的,本實(shí)施例所提供的數(shù)據(jù)庫(kù)的測(cè)試用例生成方法,具體包括:[0035]S201,利用預(yù)設(shè)的測(cè)試用例生成工具生成測(cè)試用例,并收集測(cè)試用例的執(zhí)行結(jié)果。[0036]S202,根據(jù)測(cè)試用例的執(zhí)行結(jié)果,確定執(zhí)行結(jié)果中的執(zhí)行異常信息,根據(jù)預(yù)設(shè)的異常分類規(guī)則對(duì)執(zhí)行異常信息進(jìn)行分類,得到異常分類信息。[0037]S203,根據(jù)異常分類信息,統(tǒng)計(jì)每種異常類型在預(yù)設(shè)時(shí)間段內(nèi)的異常頻率,將異常頻率最高的時(shí)間段確定為每種異常類型的高風(fēng)險(xiǎn)時(shí)段。[0039]收集所有的代碼變更記錄,根據(jù)代碼提交時(shí)間按照時(shí)間順序?qū)Υa變更進(jìn)行排序,便于后續(xù)根據(jù)異常頻率出現(xiàn)較高的時(shí)間段查詢?cè)摃r(shí)段內(nèi)的代碼變更記錄,從代碼變更記錄中根據(jù)代碼提交時(shí)間與代碼提交用戶、代碼變更內(nèi)容進(jìn)行關(guān)聯(lián),便于后續(xù)問(wèn)題分析定位時(shí),可以通過(guò)代碼提交用戶快速了解到代碼變更有關(guān)的信息,便于對(duì)代碼變更引入的問(wèn)題進(jìn)行快速定位和解決。代碼變更內(nèi)容可以是代碼提交用戶編寫(xiě)的代碼變更說(shuō)明文檔或?qū)?yīng)的需求文檔,能對(duì)代碼變更內(nèi)容進(jìn)行簡(jiǎn)要記錄和解釋。示例性的,代碼變更內(nèi)容包括提交信息、變更文件列表、詳細(xì)代碼差異,提交信息用于對(duì)本次代碼變更的內(nèi)容進(jìn)行描述,說(shuō)明變更原因和變更內(nèi)容,變更文件列表用于記錄本次代碼變更中被修改、新增或刪除的文件,詳細(xì)代碼差異用于記錄每個(gè)被變更的文件中具體的代碼行級(jí)的改動(dòng),被刪除的代碼行通常9[0040]S205,根據(jù)高風(fēng)險(xiǎn)時(shí)段,篩選處于高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼提交時(shí)間,根據(jù)高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼提交時(shí)間對(duì)應(yīng)的代碼變更內(nèi)容,確定高風(fēng)險(xiǎn)代碼變更內(nèi)容。[0041]代碼提交時(shí)間處在高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼變更,往往意味著引入新問(wèn)題的風(fēng)險(xiǎn),也就是說(shuō)高風(fēng)險(xiǎn)時(shí)段內(nèi)代碼變更的模塊和功能,導(dǎo)致異常產(chǎn)生的風(fēng)險(xiǎn)較高,將高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼變更內(nèi)容視為高風(fēng)險(xiǎn)變更內(nèi)容,提高該部分代碼變更內(nèi)容的關(guān)注度,并對(duì)高風(fēng)險(xiǎn)代碼變更的模塊和功能進(jìn)行測(cè)試,分析高風(fēng)險(xiǎn)代碼變更是否引入新問(wèn)題,若引入新問(wèn)題可以通過(guò)測(cè)試快速定位問(wèn)題,有利于問(wèn)題的高效解決。[0042]S206,根據(jù)高風(fēng)險(xiǎn)代碼變更內(nèi)容,確定代碼變更對(duì)應(yīng)模塊。[0043]對(duì)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序提交的代碼更改,往往對(duì)應(yīng)著驅(qū)動(dòng)程序中具體的模塊和具體的功能改動(dòng),被視為高風(fēng)險(xiǎn)變更的代碼變更內(nèi)容,可以通過(guò)對(duì)代碼進(jìn)行分析,確定代碼變更了驅(qū)動(dòng)程序中的哪些模塊和哪些功能,便于針對(duì)性的增加測(cè)試用例對(duì)變更的模塊和功能進(jìn)行測(cè)試,排除代碼變更對(duì)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序的影響,保證代碼變更后數(shù)據(jù)庫(kù)的安全穩(wěn)定運(yùn)行。示例性的,在提交的代碼更改中,所變更的文件為“ConnectionPool.c”,是C語(yǔ)言編寫(xiě)的連接池文件,在該文件中增加了新的方法“validateConnection()”,用于在從連接池獲取連接使進(jìn)行有效性驗(yàn)證,修改了“returnConnectionToPool()”,增加邏輯確保無(wú)效連接不會(huì)被重新放入連接池;所變更的文件為"ConnectionValidator.c",是C語(yǔ)言編寫(xiě)的連接驗(yàn)證文件,在該文件中實(shí)現(xiàn)了具體的連接驗(yàn)證邏輯,包括檢查數(shù)據(jù)庫(kù)連接是否超時(shí)或已關(guān)閉。上述被變更的文件以及變更內(nèi)容引入了新的連接驗(yàn)證機(jī)制,因此可以確定代碼變更對(duì)應(yīng)的模塊為連接管理模塊。[0044]S207,根據(jù)代碼變更對(duì)應(yīng)模塊和高風(fēng)險(xiǎn)時(shí)段對(duì)應(yīng)的異常類型,生成代碼變更測(cè)試[0045]本實(shí)施例通過(guò)收集代碼變更記錄,通過(guò)代碼變更的時(shí)間與高風(fēng)險(xiǎn)時(shí)段的關(guān)聯(lián),高風(fēng)險(xiǎn)時(shí)段內(nèi)被變更代碼的高風(fēng)險(xiǎn)變更模塊進(jìn)行重點(diǎn)關(guān)注,同時(shí)根據(jù)對(duì)應(yīng)的代碼變更內(nèi)容,分析新提交的代碼對(duì)代碼變更對(duì)應(yīng)模塊的功能影響,結(jié)合異常類型,通過(guò)對(duì)高風(fēng)險(xiǎn)變更模塊進(jìn)行更高頻率的測(cè)試分析代碼變更是否引入新的問(wèn)題,將代碼變更對(duì)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序的影響降低,保證數(shù)據(jù)庫(kù)的安全穩(wěn)定運(yùn)行。[0046]可選的,所述根據(jù)代碼變更對(duì)應(yīng)模塊和高風(fēng)險(xiǎn)時(shí)段對(duì)應(yīng)的異常類型,生成代碼變根據(jù)代碼變更對(duì)應(yīng)模塊,生成代碼變更測(cè)試用例。代碼變更往往對(duì)應(yīng)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序中的某一模塊,根據(jù)該模塊在驅(qū)動(dòng)程序中的作用和提供的功能,利用測(cè)試用數(shù)據(jù)生成規(guī)則和測(cè)試用例模板生成針對(duì)代碼變更對(duì)應(yīng)模塊的測(cè)試用例。[0047]根據(jù)高風(fēng)險(xiǎn)時(shí)段對(duì)應(yīng)的異常類型,對(duì)代碼變更測(cè)試用例進(jìn)行優(yōu)化。異常類型往往表示代碼變更對(duì)應(yīng)模塊的哪些功能產(chǎn)生了異常,可以針對(duì)異常情況,對(duì)測(cè)試用例進(jìn)行優(yōu)化,例如對(duì)邊界值測(cè)試、異常測(cè)試等進(jìn)行補(bǔ)充,針對(duì)異常類型進(jìn)行測(cè)試,優(yōu)先對(duì)可能出現(xiàn)的問(wèn)題進(jìn)行測(cè)試,可以提升問(wèn)題定位的效率。[0048]執(zhí)行優(yōu)化后的代碼變更測(cè)試用例,收集執(zhí)行結(jié)果,根據(jù)執(zhí)行結(jié)果確定代碼變更引入的問(wèn)題。對(duì)測(cè)試用例的執(zhí)行日志進(jìn)行分析,提取執(zhí)行結(jié)果,根據(jù)執(zhí)行結(jié)果中的執(zhí)行狀態(tài)、執(zhí)行異常情況等,分析代碼變更對(duì)應(yīng)模塊的功能是否產(chǎn)生了異常,所產(chǎn)生的異常與代碼變更的內(nèi)容是否有關(guān)聯(lián),進(jìn)而確定代碼變更是否引入了新的問(wèn)題,快速定位代碼變更引入的新問(wèn)題。[0049]實(shí)施例三[0050]圖3為本發(fā)明實(shí)施例三所述的一種數(shù)據(jù)庫(kù)的測(cè)試用例生成方法的流程圖。本實(shí)施例以上述實(shí)施例為基礎(chǔ)進(jìn)行優(yōu)化,在本實(shí)施例中,將根據(jù)異常分類信息,統(tǒng)計(jì)每種異常類型在預(yù)設(shè)時(shí)間段內(nèi)的異常頻率,將異常頻率最高的時(shí)間段確定為每種異常類型的高風(fēng)險(xiǎn)時(shí)根據(jù)異常分類信息,統(tǒng)計(jì)每種異常類型的出現(xiàn)頻率,根據(jù)異常出現(xiàn)頻率由高到低根據(jù)異常類型排序信息,確定異常測(cè)試優(yōu)先級(jí);對(duì)每種異常類型按預(yù)設(shè)時(shí)間段內(nèi)的異常頻率進(jìn)行排序,將每種異常類型出現(xiàn)頻率最高的時(shí)間段確定為每種異常類型的高風(fēng)險(xiǎn)時(shí)段。[0052]S301,利用預(yù)設(shè)的測(cè)試用例生成工具生成測(cè)試用例,并收集測(cè)試用例的執(zhí)行結(jié)果。[0053]S302,根據(jù)測(cè)試用例的執(zhí)行結(jié)果,確定執(zhí)行結(jié)果中的執(zhí)行異常信息,根據(jù)預(yù)設(shè)的異常分類規(guī)則對(duì)執(zhí)行異常信息進(jìn)行分類,得到異常分類信息。[0054]S303,根據(jù)異常分類信息,統(tǒng)計(jì)每種異常類型的出現(xiàn)頻率,根據(jù)異常出現(xiàn)頻率由高到低進(jìn)行排序,得到異常類型排序信息。[0055]數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序中不同的模塊提供了不同的功能,例如連接模塊提供網(wǎng)絡(luò)連接和通信功能,通過(guò)異常類型能判斷提供對(duì)應(yīng)功能的模塊中出現(xiàn)異常較高的模塊。示例性的,可以通過(guò)Pandas工具統(tǒng)計(jì)每種異常的出現(xiàn)頻率,根據(jù)異常出現(xiàn)頻率對(duì)異常類型排序后,能判斷驅(qū)動(dòng)程序中提供哪些功能的相應(yīng)模塊在測(cè)試過(guò)程中產(chǎn)生的異常較多。[0056]S304,根據(jù)異常類型排序信息,確定異常測(cè)試優(yōu)先級(jí)。[0057]為了保證數(shù)據(jù)庫(kù)運(yùn)行的穩(wěn)定,需要對(duì)異常頻率較高的模塊增加測(cè)試頻率,以排除該模塊的問(wèn)題或確保該模塊能正常運(yùn)作,異常頻率較高的模塊意味著其運(yùn)行的不穩(wěn)定程度較高,喪失功能的概率較大,應(yīng)先對(duì)異常頻率較高的模塊進(jìn)行測(cè)試以排除問(wèn)題,從而確保數(shù)據(jù)庫(kù)穩(wěn)定運(yùn)行。[0058]S305,對(duì)每種異常類型按預(yù)設(shè)時(shí)間段內(nèi)的異常頻率進(jìn)行排序,將每種異常類型出現(xiàn)頻率最高的時(shí)間段確定為每種異常類型的高風(fēng)險(xiǎn)時(shí)段。[0059]通過(guò)預(yù)設(shè)一個(gè)單位時(shí)間段,按照時(shí)間順序統(tǒng)計(jì)連續(xù)時(shí)間段內(nèi)每個(gè)單位時(shí)間段內(nèi)異常的產(chǎn)生次數(shù)作為每個(gè)單位時(shí)間段內(nèi)的異常頻率。示例性的,定義1小時(shí)為單位時(shí)間段,按照時(shí)間順序,利用時(shí)間序列分析模型(如ARIMA),統(tǒng)計(jì)連續(xù)24小時(shí)內(nèi)每小時(shí)的異常頻率,預(yù)測(cè)未來(lái)可能出現(xiàn)的異常高峰。按異常頻率進(jìn)行排序,異常頻率最高的1小時(shí)為當(dāng)前異常類型的高風(fēng)險(xiǎn)時(shí)段。可以根據(jù)實(shí)際需求預(yù)先設(shè)定單位時(shí)間段的時(shí)間長(zhǎng)短,較長(zhǎng)的單位時(shí)間段能排除范圍較大的異常情況,較短的單位時(shí)間段能更加精細(xì)的對(duì)異常情況進(jìn)行定位。可以根據(jù)高風(fēng)險(xiǎn)時(shí)段判斷驅(qū)動(dòng)程序不穩(wěn)定的時(shí)間段,進(jìn)而對(duì)該時(shí)間段內(nèi)的各種因素進(jìn)行分析,包括代碼變更情況,進(jìn)而快速定位導(dǎo)致不穩(wěn)定的問(wèn)題。[0060]S306,根據(jù)每種異常類型的高風(fēng)險(xiǎn)時(shí)段,收集高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼變更記錄,根據(jù)代碼變更記錄,確定代碼變更對(duì)應(yīng)模塊。11[0061]S307,根據(jù)代碼變更對(duì)應(yīng)模塊和高風(fēng)險(xiǎn)時(shí)段對(duì)應(yīng)的異常類型,生成代碼變更測(cè)試[0062]本實(shí)施例通過(guò)統(tǒng)計(jì)分析每種異常類型出現(xiàn)的異常頻率,對(duì)異常頻率較高的異常類型進(jìn)行優(yōu)先測(cè)試,重點(diǎn)排除較容易出現(xiàn)的異常。再通過(guò)統(tǒng)計(jì)分析每種異常類型的高風(fēng)險(xiǎn)時(shí)段,提高對(duì)于異常類型與時(shí)間關(guān)聯(lián)的關(guān)注度,能更為精準(zhǔn)快速的定位導(dǎo)致異常的原因。[0063]本實(shí)施例一種可選的實(shí)施方式為,所述根據(jù)測(cè)試用例的執(zhí)行結(jié)果,確定執(zhí)行結(jié)果中的執(zhí)行異常信息,根據(jù)預(yù)設(shè)的異常分類規(guī)則對(duì)執(zhí)行異常信息進(jìn)行分類,得到異常分類信息,包括:[0064]利用測(cè)試用例的執(zhí)行日志提取每個(gè)測(cè)試用例的執(zhí)行結(jié)果。從測(cè)試環(huán)境中收集所有測(cè)試用例的執(zhí)行日志,執(zhí)行日志中會(huì)包含測(cè)試用例開(kāi)始執(zhí)行起始時(shí)刻至執(zhí)行結(jié)束或因?yàn)楫惓?dǎo)致中斷的時(shí)刻之間發(fā)生的所有情況。[0065]提取執(zhí)行結(jié)果中的執(zhí)行狀態(tài)信息、異常信息。對(duì)執(zhí)行日志進(jìn)行分析并從執(zhí)行日志中提取每個(gè)測(cè)試用例的執(zhí)行結(jié)果,包括測(cè)試通過(guò)、測(cè)試失敗的執(zhí)行狀態(tài),測(cè)試過(guò)程中出現(xiàn)異[0066]根據(jù)預(yù)設(shè)的異常分類規(guī)則,對(duì)執(zhí)行結(jié)果中提取的異常信息進(jìn)行分類,得到異常分類信息。根據(jù)異常類型、異常信息中的關(guān)鍵字、堆棧跟蹤信息中的方法調(diào)用,利用正則匹配的方法與異常分類規(guī)則進(jìn)行匹配對(duì)異常進(jìn)行分類,異常分類規(guī)則可以根據(jù)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序的,在Python語(yǔ)言中如果對(duì)一個(gè)對(duì)象執(zhí)行了不支持的操作,則拋出TypeError;在Java語(yǔ)言中如果對(duì)一個(gè)值為null的對(duì)象執(zhí)行操作時(shí),則拋出NullPointerException。若根據(jù)異常類型進(jìn)行異常分類,可將SQLException視為數(shù)據(jù)庫(kù)連接異常;將IOException或ConnectionError視為網(wǎng)絡(luò)請(qǐng)求失敗異常。若根據(jù)異常信息中的關(guān)鍵字進(jìn)行異常分類,可將敗異常。若基于堆棧跟蹤信息中的方法調(diào)用進(jìn)行異常分類,可將最頂層方法名為connect()視為連接失敗異常。利用代碼覆蓋率工具分析測(cè)試用例的覆蓋率,生成覆蓋率報(bào)告。為了提升測(cè)試用例對(duì)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序的代碼覆蓋率,進(jìn)行更完善的測(cè)試,可以根據(jù)不同的編程語(yǔ)言選擇相[0068]根據(jù)覆蓋率報(bào)告,識(shí)別未被測(cè)試用例覆蓋的代碼路徑。覆蓋率報(bào)告中會(huì)體現(xiàn)測(cè)試用例對(duì)于驅(qū)動(dòng)程序源代碼的覆蓋情況,例如:語(yǔ)句覆蓋率是用來(lái)衡量代碼中哪些語(yǔ)句被執(zhí)行過(guò);分支覆蓋率是用來(lái)衡量代碼中哪些分支(如if、else、switch等)被測(cè)試覆蓋;條件覆蓋率是用來(lái)衡量布爾表達(dá)式中每個(gè)條件的取值是否被測(cè)試覆蓋;函數(shù)/方法覆蓋率是用來(lái)衡量代碼中哪些函數(shù)或方法被調(diào)用過(guò);類/模塊覆蓋率是用來(lái)衡量哪些類或模塊被測(cè)試覆蓋。[0069]根據(jù)未被測(cè)試用例覆蓋的代碼路徑,對(duì)測(cè)試用例進(jìn)行優(yōu)化。對(duì)于未被測(cè)試用例覆蓋的部分,需要補(bǔ)充或修改測(cè)試用例提升測(cè)試的深度和廣度,例如未被覆蓋的語(yǔ)句和分支、未被覆蓋的邊界條件可以通過(guò)補(bǔ)充測(cè)試用例進(jìn)行覆蓋。示例性的,可以根據(jù)代碼覆蓋率是否達(dá)到要求確定測(cè)試用例的優(yōu)化標(biāo)準(zhǔn),例如代碼覆蓋率達(dá)到80%。[0070]實(shí)施例四[0071]圖4為本發(fā)明實(shí)施例四所述的一種數(shù)據(jù)庫(kù)的測(cè)試用例生成方法的流程圖,本實(shí)施例以上述實(shí)施例為基礎(chǔ)進(jìn)行優(yōu)化,在本實(shí)施例中,將利用預(yù)設(shè)的測(cè)試用例生成工具生成測(cè)利用靜態(tài)代碼分析工具對(duì)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序源代碼進(jìn)行語(yǔ)法分析,識(shí)別所有的代碼邏輯組件,并利用代碼解析工具生成抽象語(yǔ)法樹(shù);遍歷抽象語(yǔ)法樹(shù),得到所有API信息,利用所有API信息構(gòu)建API知識(shí)庫(kù);根據(jù)API知識(shí)庫(kù),定義測(cè)試用例的數(shù)據(jù)生成規(guī)則;根據(jù)測(cè)試用例的數(shù)據(jù)生成規(guī)則定義測(cè)試用例模板,測(cè)試用例模板中需要填充測(cè)試用數(shù)據(jù)的位置采用占位符進(jìn)行替代;根據(jù)測(cè)試用例的數(shù)據(jù)生成規(guī)則生成測(cè)試用數(shù)據(jù),并將測(cè)試用數(shù)據(jù)輸入測(cè)試用例模板中,生成測(cè)試用例,所述測(cè)試用數(shù)據(jù)包括正常測(cè)試數(shù)據(jù)、邊界值測(cè)試數(shù)據(jù)和異常測(cè)試數(shù)在配置好的測(cè)試環(huán)境中執(zhí)行測(cè)試用例,記錄每個(gè)測(cè)試用例的執(zhí)行結(jié)果。[0072]相應(yīng)的,本實(shí)施例所提供的數(shù)據(jù)庫(kù)的測(cè)試用例生成方法,具體包括:[0073]S401,利用靜態(tài)代碼分析工具對(duì)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序源代碼進(jìn)行語(yǔ)法分析,識(shí)別所有的代碼邏輯組件,并利用代碼解析工具生成抽象語(yǔ)法樹(shù)。[0074]數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序可以從GBase8s的官方渠道獲取官方的最新驅(qū)動(dòng)版本,或從第三方的開(kāi)發(fā)者社區(qū)獲取自定義的驅(qū)動(dòng)程序。不同的驅(qū)動(dòng)程序的編程語(yǔ)言(例如Java、C++、Golang等)需要通過(guò)不同的測(cè)試用例進(jìn)行測(cè)試。根據(jù)編程語(yǔ)言選擇相應(yīng)的靜態(tài)代碼分析工具,例如SonarQube、Checkstyle等,對(duì)驅(qū)動(dòng)程序源代碼進(jìn)行語(yǔ)法分析,通過(guò)讀取源代碼文利用相應(yīng)的代碼解析工具,例如Java/C++語(yǔ)言選擇ANTLR、C#語(yǔ)言選擇Roslyn等,生成抽象語(yǔ)法樹(shù)(AbstractSyntaxTree,A[0076]通過(guò)遍歷抽象語(yǔ)法樹(shù)AST,得到每個(gè)API(應(yīng)用程序編程接口)的方法名、輸入?yún)?shù)MethodDeclarationContext、C#的MethodDeclarationSynt法聲明節(jié)點(diǎn)中查找參數(shù)列表,提取每個(gè)參數(shù)的類型獲?。惠斎?yún)?shù)名稱通過(guò)在方法聲明節(jié)點(diǎn)中查找參數(shù)列表,提取每個(gè)參數(shù)的名稱獲取;輸出參數(shù)類型通過(guò)在方法聲明節(jié)點(diǎn)中查找返回類型節(jié)點(diǎn)獲取;異常處理機(jī)制通過(guò)在方法聲明節(jié)點(diǎn)中查找異常列表節(jié)點(diǎn),例如Java的throws_節(jié)點(diǎn)獲??;注釋信息通過(guò)在方法聲明節(jié)點(diǎn)前查找注釋節(jié)點(diǎn)獲取;類和接口的名稱、繼承關(guān)系、實(shí)現(xiàn)接口通過(guò)查找類聲明和接口聲明節(jié)點(diǎn)獲取。將得到的API的注釋信息和方法名按照功能類型進(jìn)行分類,例如連接型(conn)、事務(wù)型(transcation)、查詢型(query)、執(zhí)行型(execute)等??梢岳玫玫降念惡徒涌诶^承關(guān)系、實(shí)現(xiàn)接口信息,建立接口調(diào)用圖記錄每個(gè)接口被其他方法調(diào)用的情況,便于直觀的了解接口的調(diào)用關(guān)系。最后將得到的所有后續(xù)測(cè)試用例生成時(shí)進(jìn)行調(diào)用。示例性的,法列表、本方法依賴的類或接口列表。[0077]S403,根據(jù)API知識(shí)庫(kù),定義測(cè)試用例的數(shù)據(jù)生成規(guī)則。[0078]測(cè)試用例的數(shù)據(jù)生成規(guī)則需要根據(jù)API的信息進(jìn)行定義,例如數(shù)據(jù)的最大長(zhǎng)度、允許的字符集等。需要根據(jù)生成規(guī)則生成正常測(cè)試數(shù)據(jù),例如生成對(duì)應(yīng)的隨機(jī)字符串、整數(shù)或日期;根據(jù)生成規(guī)則生成邊界值數(shù)據(jù)用于邊界值測(cè)試的邊界條件規(guī)則,例如生成數(shù)據(jù)的最大值、最小值等;根據(jù)編程語(yǔ)言對(duì)異常情況的定義測(cè)試異常情況的斷言失敗等異常處理規(guī)則,生成非法或空值,例如生成對(duì)應(yīng)編程語(yǔ)言的非法字符串或空字符串,作為異常測(cè)試數(shù)據(jù)。示例性的,在正常測(cè)試數(shù)據(jù)庫(kù)建立連接的過(guò)程中,需要生成連接字符串和連接參數(shù),其中,主機(jī)地址需要生成隨機(jī)的非空字符串,端口號(hào)需要生成2-4位的正整數(shù),數(shù)據(jù)庫(kù)名稱需要生成隨機(jī)的非空字符串等。[0079]S404,根據(jù)測(cè)試用例的數(shù)據(jù)生成規(guī)則定義測(cè)試用例模板,測(cè)試用例模板中需要填充測(cè)試用數(shù)據(jù)的位置采用占位符進(jìn)行替代。[0080]由于不同的編程語(yǔ)言中測(cè)試用例的方法實(shí)現(xiàn)是不同的,需要根據(jù)驅(qū)動(dòng)程序采用的編程語(yǔ)言定義相應(yīng)的測(cè)試用例模板。測(cè)試用例模板包含測(cè)試方法的聲明、測(cè)試數(shù)據(jù)的初始化方法、API調(diào)用方法、結(jié)果驗(yàn)證方法等,且包含占位符用于填充根據(jù)生成規(guī)則生成的測(cè)試測(cè)試模版中包括初始化連接信息、建立連接、初始化SQL語(yǔ)句、執(zhí)行SQL語(yǔ)句、驗(yàn)證結(jié)果等字[0081]S405,根據(jù)測(cè)試用例的數(shù)據(jù)生成規(guī)則生成測(cè)試用數(shù)據(jù),并將測(cè)試用數(shù)據(jù)輸入測(cè)試用例模板中,生成測(cè)試用例,所述測(cè)試用數(shù)據(jù)包括正常測(cè)試數(shù)據(jù)、邊界值測(cè)試數(shù)據(jù)和異常測(cè)試數(shù)據(jù)。[0082]根據(jù)API知識(shí)庫(kù)中每個(gè)API的信息以及數(shù)據(jù)生成規(guī)則,生成測(cè)試用數(shù)據(jù),測(cè)試用數(shù)據(jù)包括根據(jù)API參數(shù)類型和約束條件生成符合參數(shù)要求的正常測(cè)試數(shù)據(jù),例如生成隨機(jī)的等,以及生成異常測(cè)試數(shù)據(jù),例如生成空字符串、非法字符等。根據(jù)編程語(yǔ)言選用對(duì)應(yīng)的測(cè)試用例模板將測(cè)試數(shù)據(jù)填入相應(yīng)的位置,生成最終的測(cè)試用例,示例性的,在Java語(yǔ)言中會(huì)生成測(cè)試類文件,將生成的測(cè)試用例保存到指定目錄下,然后為每個(gè)測(cè)試用例文件和方法[0083]S406,在配置好的測(cè)試環(huán)境中執(zhí)行測(cè)試用例,記錄每個(gè)測(cè)試用例的執(zhí)行結(jié)果。[0084]將生成的測(cè)試用例集成到現(xiàn)有的測(cè)試框架中,例如JUnit、pytest,配置正確的測(cè)試環(huán)境確保測(cè)試用例可以正常運(yùn)行,執(zhí)行測(cè)試用例,并在執(zhí)行測(cè)試的過(guò)程中捕獲所有異常信息,詳細(xì)記錄每個(gè)測(cè)試用例的執(zhí)行結(jié)果。[0085]S407,根據(jù)測(cè)試用例的執(zhí)行結(jié)果,確定執(zhí)行結(jié)果中的執(zhí)行異常信息,根據(jù)預(yù)設(shè)的異常分類規(guī)則對(duì)執(zhí)行異常信息進(jìn)行分類,得到異常分類信息。[0086]S408,根據(jù)異常分類信息,統(tǒng)計(jì)每種異常類型在預(yù)設(shè)時(shí)間段內(nèi)的異常頻率,將異常頻率最高的時(shí)間段確定為每種異常類型的高風(fēng)險(xiǎn)時(shí)段。[0087]S409,根據(jù)每種異常類型的高風(fēng)險(xiǎn)時(shí)段,收集高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼變更記錄,根據(jù)代碼變更記錄,確定代碼變更對(duì)應(yīng)模塊。[0088]S410,根據(jù)代碼變更對(duì)應(yīng)模塊和高風(fēng)險(xiǎn)時(shí)段對(duì)應(yīng)的異常類型,生成代碼變更測(cè)試[0089]本實(shí)施例通過(guò)分析驅(qū)動(dòng)程序源代碼構(gòu)建API知識(shí)庫(kù),利用API知識(shí)庫(kù)定義測(cè)試數(shù)據(jù)生成規(guī)則和測(cè)試用例模板自動(dòng)生成測(cè)試用例,將生成的測(cè)試用例執(zhí)行過(guò)程中的信息和執(zhí)行結(jié)果進(jìn)行采集,用于分析驅(qū)動(dòng)程序中的問(wèn)題。通過(guò)自動(dòng)生成測(cè)試用例,減少了針對(duì)不同編程語(yǔ)言手動(dòng)編寫(xiě)大量的測(cè)試用例占用的時(shí)間,有利于高效的對(duì)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序進(jìn)行測(cè)試,便于對(duì)產(chǎn)生的異常情況進(jìn)行測(cè)試用例補(bǔ)充和調(diào)整,提高了測(cè)試策略的可操作空間。[0091]圖5為本發(fā)明實(shí)施例五所述的一種數(shù)據(jù)庫(kù)的測(cè)試用例生成裝置的結(jié)構(gòu)示意圖,在測(cè)試用例執(zhí)行單元810,用于生成測(cè)試用例并收集測(cè)試用例的執(zhí)行結(jié)果。[0092]異常分類單元820,用于對(duì)測(cè)試用例執(zhí)行結(jié)果中的異常信息進(jìn)行分類。[0093]高風(fēng)險(xiǎn)時(shí)段預(yù)測(cè)單元830,用于根據(jù)每種異常類型的異常頻率,確定每種異常類型的高風(fēng)險(xiǎn)時(shí)段。[0094]變更模塊查找單元840,用于根據(jù)代碼變更記錄查找代碼變更對(duì)應(yīng)模塊。[0095]變更模塊測(cè)試單元850,用于根據(jù)代碼變更對(duì)應(yīng)模塊和異常類型確定代碼變更引入的問(wèn)題。[0096]本實(shí)施例通過(guò)預(yù)先定義的生成規(guī)則和模板生成測(cè)試用例并收集測(cè)試用例的執(zhí)行結(jié)果,對(duì)測(cè)試用例執(zhí)行結(jié)果中的異常信息進(jìn)行分類,并根據(jù)每種異常類型的異常頻率確定每種異常類型的高風(fēng)險(xiǎn)時(shí)段,根據(jù)高風(fēng)險(xiǎn)時(shí)段內(nèi)的代碼變更確定代碼變更對(duì)應(yīng)模塊和異常類型生成測(cè)試用例,對(duì)代碼變更的部分進(jìn)行測(cè)試,快速確定代碼變更引入的問(wèn)題。通過(guò)自動(dòng)生成測(cè)試用例減少了大量的人工成本,能適應(yīng)不同的驅(qū)動(dòng)程序編程語(yǔ)言,同時(shí)為后期針對(duì)異常類型、高風(fēng)險(xiǎn)時(shí)段、代碼變更模塊進(jìn)行測(cè)試以定位代碼變更引入的問(wèn)題打下基礎(chǔ),能便捷高效的對(duì)代碼的變更進(jìn)行測(cè)試,能更全面的對(duì)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序進(jìn)行測(cè)試,保障數(shù)據(jù)庫(kù)的安全穩(wěn)定運(yùn)行。[0098]圖6為本發(fā)明實(shí)施例六所述的一種服務(wù)器的結(jié)構(gòu)圖,圖6示出了適于用來(lái)實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性服務(wù)器12的框圖。圖6顯示的服務(wù)器12僅僅是一個(gè)示例,不應(yīng)對(duì)本發(fā)明實(shí)施例的功能和使用范圍帶來(lái)任何限制。[0099]如圖6所示,服務(wù)器12以通用計(jì)算設(shè)備的形式表現(xiàn)。服務(wù)器12的組件可以包括但不限于:一個(gè)或者多個(gè)處理器或者處理單元16,系統(tǒng)存儲(chǔ)器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲(chǔ)器28和處理單元16)的總線18。[0100]總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲(chǔ)器總線或者存儲(chǔ)器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來(lái)說(shuō),這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC)總線,增強(qiáng)型ISA總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局域總線以及外圍組件互連(PCI)總線。[0101]服務(wù)器12典型地包括多種計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是任何能夠被服務(wù)器12訪問(wèn)的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動(dòng)的和不可移動(dòng)的介質(zhì)。[0102]系統(tǒng)存儲(chǔ)器28可以包括易失性存儲(chǔ)器形式的計(jì)算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存取存儲(chǔ)器(RAM)30和/或高速緩存存儲(chǔ)器32.服務(wù)器12可以進(jìn)一步包括其它可移動(dòng)/不可移動(dòng)的、易失性/非易失性計(jì)算機(jī)系統(tǒng)存儲(chǔ)介質(zhì)。僅作為舉例,存儲(chǔ)系統(tǒng)34可以用于讀寫(xiě)不可移用于對(duì)可移動(dòng)非易失性磁盤(pán)(例如“軟盤(pán)”)讀寫(xiě)的磁盤(pán)驅(qū)動(dòng)器,以及對(duì)可移動(dòng)非易失性光盤(pán)以通過(guò)一個(gè)或者多個(gè)數(shù)據(jù)介質(zhì)接口與總線18相連。系統(tǒng)存儲(chǔ)器28可以包括至少一個(gè)程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個(gè))程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實(shí)施例的功能。[0103]具有一組(至少一個(gè))程序模塊42的程序/實(shí)用工具40,可以存儲(chǔ)在例如系統(tǒng)存儲(chǔ)器28中,這樣的程序模塊42包括但不限于操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個(gè)或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實(shí)施例中的功能和/或方法。[0104]服務(wù)器12也可以與一個(gè)或多個(gè)外部設(shè)備14(例如鍵盤(pán)、指向設(shè)備、顯示器24等)通信,還可與一個(gè)或者多個(gè)使得用戶能與該設(shè)備/服務(wù)器/服務(wù)器12交互的設(shè)備通信,和/或與使得該服務(wù)器12能與一個(gè)或多個(gè)其它計(jì)算設(shè)備進(jìn)行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過(guò)輸入/輸出(I/0)接口22進(jìn)行。并且,服務(wù)器12還可以通過(guò)網(wǎng)絡(luò)適配器20與一個(gè)或者多個(gè)網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20通過(guò)總線18與服務(wù)器12的其它模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,可以結(jié)合服務(wù)器12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動(dòng)器、冗余處理單元、外部磁盤(pán)驅(qū)動(dòng)陣列、RAID系統(tǒng)、磁帶驅(qū)動(dòng)器以及數(shù)據(jù)[0105]處理單元16通過(guò)運(yùn)行存儲(chǔ)在系統(tǒng)存儲(chǔ)器28中的程序,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,例如實(shí)現(xiàn)本發(fā)明實(shí)施例所提供的數(shù)據(jù)庫(kù)的測(cè)試用例生成方法。[0106]實(shí)施例七[0107]本發(fā)明實(shí)施例七還提供了一種包含計(jì)算機(jī)可執(zhí)行指令的存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令在由計(jì)算機(jī)處理器執(zhí)行時(shí)用于執(zhí)行如上述實(shí)施例提供的數(shù)據(jù)庫(kù)的測(cè)試用例生成方法。[0108]本發(fā)明實(shí)施例的計(jì)算機(jī)存儲(chǔ)介質(zhì),可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀的介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)磁盤(pán)、硬盤(pán)、隨(ROM)、可擦式可編程只讀存儲(chǔ)器(EPROM或閃存)、光纖、便攜式緊湊磁盤(pán)只讀存儲(chǔ)器(CD-介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。[0109]計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括但不限于電磁信號(hào)、光信號(hào)或上述的任意合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)還可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。[0110]計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括——但不限[0111]可以以一種或多種程序設(shè)計(jì)語(yǔ)言或其組合來(lái)編寫(xiě)用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言一諸如Java、Smalltalk、C++,還包括常規(guī)的過(guò)程式程序設(shè)計(jì)語(yǔ)言一

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論