[發(fā)明專利]一種自動生成數(shù)據(jù)庫測試用例的方法及存儲介質(zhì)在審
| 申請?zhí)枺?/td> | 202110401830.5 | 申請日: | 2021-04-14 |
| 公開(公告)號: | CN112925726A | 公開(公告)日: | 2021-06-08 |
| 發(fā)明(設(shè)計(jì))人: | 李鵬;陳莉;馮明冉 | 申請(專利權(quán))人: | 瀚高基礎(chǔ)軟件股份有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F16/28;G06F40/253;G06F40/284 |
| 代理公司: | 工業(yè)和信息化部電子專利中心 11010 | 代理人: | 羅丹 |
| 地址: | 250101 山東省濟(jì)南市高新*** | 國省代碼: | 山東;37 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 自動 生成 數(shù)據(jù)庫 測試 方法 存儲 介質(zhì) | ||
本發(fā)明公開了一種自動生成數(shù)據(jù)庫測試用例的方法及存儲介質(zhì),本發(fā)明是以BNF形式來配置被測數(shù)據(jù)庫所支持的DDL、DML、DCL和查詢部分的語法規(guī)則,然后對配置為BNF形式的語法規(guī)則逐條進(jìn)行詞法分析和語法分析,自動排列組合出所有合法的SQL語句,最后按照DDL、DML、DCL和查詢語句的順序自動生成四類測試用例,也即本發(fā)明是以BNF形式來配置語法規(guī)則,并通過詞法分析和語法分析來自動生成測試用例,以提高測試用例生成效率,從而有效解決了現(xiàn)有人工編寫測試用例不能滿足數(shù)據(jù)庫的測試需求的問題。
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種自動生成數(shù)據(jù)庫測試用例的方法及存儲介質(zhì)。
背景技術(shù)
現(xiàn)有的關(guān)系型數(shù)據(jù)庫需遵循標(biāo)準(zhǔn)的SQL語法,而SQL語法具有不同的版本,且不同的關(guān)系型數(shù)據(jù)庫對于SQL標(biāo)準(zhǔn)的支持程度也不一樣,互相之間有顯著差異。所以對于不同的關(guān)系型數(shù)據(jù)庫,需要有不同的測試用例。甚至對于同一個關(guān)系型數(shù)據(jù)庫的不同版本,其支持的語法也會有差異,所需的測試用例也有區(qū)別,也就是說,現(xiàn)有需要生成大量的測試用例,而僅通過測試人員手動生成測試用例則需要花費(fèi)大量的人力和時間,其并不能很好的滿足數(shù)據(jù)庫的測試需求。
發(fā)明內(nèi)容
本發(fā)明提供了一種自動生成數(shù)據(jù)庫測試用例的方法及存儲介質(zhì),以解決現(xiàn)有技術(shù)中測試人員手動生成測試用例不能很好的地滿足數(shù)據(jù)庫對測試用例需求的問題。
第一方面,本發(fā)明提供了一種自動生成數(shù)據(jù)庫測試用例的方法,該方法包括:以巴科斯范式BNF形式分別配置被測數(shù)據(jù)庫所支持的數(shù)據(jù)定義語言DDL、數(shù)據(jù)操縱語言DML、數(shù)據(jù)控制語言DCL和查詢部分的語法規(guī)則;對配置為BNF形式的語法規(guī)則逐條進(jìn)行詞法分析,識別出每條語法規(guī)則中的關(guān)鍵詞;對每條語法規(guī)則的關(guān)鍵詞進(jìn)行語法分析,基于所述關(guān)鍵詞自動排列組合出所有合法的SQL語句;按照所述DDL、所述DML、所述DCL和查詢語句的順序自動生成對應(yīng)的測試用例。
可選地,所述對配置為BNF形式的語法規(guī)則逐條進(jìn)行詞法分析,還包括:
對每一條配置為BNF形式的語法規(guī)則,識別出每條語法規(guī)則中的預(yù)設(shè)用戶自定義標(biāo)識符,并基于所述預(yù)設(shè)用戶自定義標(biāo)識符來將對應(yīng)的語法規(guī)則進(jìn)行保存,以供后續(xù)調(diào)取使用;
其中,所述預(yù)設(shè)用戶自定義標(biāo)識符是預(yù)設(shè)的所述被測數(shù)據(jù)庫的標(biāo)識。
可選地,所述被測數(shù)據(jù)庫是關(guān)系型數(shù)據(jù)庫。
可選地,所述對每條語法規(guī)則的關(guān)鍵詞進(jìn)行語法分析,基于所述關(guān)鍵詞自動排列組合出所有合法的SQL語句,包括:對每條語法規(guī)則的關(guān)鍵詞進(jìn)行語法分析,基于每條語法規(guī)則的關(guān)鍵詞自動排列組合出每條語法規(guī)則所對應(yīng)的所有合法的SQL語句。
可選地,所述對每條語法規(guī)則的關(guān)鍵詞進(jìn)行語法分析,基于每條語法規(guī)則的關(guān)鍵詞自動排列組合出每條語法規(guī)則所對應(yīng)的所有合法的SQL語句,包括:
對每條語法規(guī)則均執(zhí)行以下語法分析:基于詞法分析所識別出的本條語法規(guī)則的關(guān)鍵詞,自動排列組合出本條語法規(guī)則中所有可能的且正確的SQL語句,其中,所排列組合出的所有SQL語句均使用了本條語法規(guī)則中的關(guān)鍵詞,且包含了本條語法規(guī)則的預(yù)設(shè)用戶自定義標(biāo)識符。
可選地,所述識別出每條語法規(guī)則中的預(yù)設(shè)用戶自定義標(biāo)識符,并基于所述預(yù)設(shè)用戶自定義標(biāo)識符來將對應(yīng)的語法規(guī)則進(jìn)行保存,包括:
識別出每條語法規(guī)則中的預(yù)設(shè)用戶自定義標(biāo)識符,根據(jù)所述預(yù)設(shè)用戶自定義標(biāo)識符的類型生成測試用的預(yù)設(shè)字符串,以所述預(yù)設(shè)字符串對所述SQL語句中的預(yù)設(shè)用戶自定義標(biāo)識符進(jìn)行替換,并將替換后的SQL語句進(jìn)行保存。
可選地,所述預(yù)設(shè)字符串為隨機(jī)生成的字符串。
可選地,所述將替換后的SQL語句進(jìn)行保存,包括:將替換后的SQL語句保存到結(jié)果輸出文件中。
可選地,所述預(yù)設(shè)用戶自定義標(biāo)識符包括以下中的一種或多種:表名、索引名,用戶名和列名。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于瀚高基礎(chǔ)軟件股份有限公司,未經(jīng)瀚高基礎(chǔ)軟件股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110401830.5/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
- 數(shù)據(jù)庫
- 數(shù)據(jù)庫管理系統(tǒng)及數(shù)據(jù)庫
- 數(shù)據(jù)庫構(gòu)筑裝置、數(shù)據(jù)庫檢索裝置、數(shù)據(jù)庫裝置、數(shù)據(jù)庫構(gòu)筑方法、以及數(shù)據(jù)庫檢索方法
- 數(shù)據(jù)庫和數(shù)據(jù)庫處理方法
- 數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫更新方法、數(shù)據(jù)庫以及數(shù)據(jù)庫更新程序
- 容器數(shù)據(jù)庫
- 數(shù)據(jù)庫同步方法及數(shù)據(jù)庫
- 一種MongoDB數(shù)據(jù)庫對象復(fù)制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲方法、裝置、電子設(shè)備及存儲介質(zhì)
- 數(shù)據(jù)庫語句執(zhí)行方法及裝置





