System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及數據庫測試,尤其涉及一種基于數據庫查詢語句的測試數據生成方法。
技術介紹
1、在數據庫軟件系統領域,針對數據庫查詢操作語句是整個軟件系統最基本最關鍵的功能點,并隨著大數據庫時代的來臨,數據量的龐大及復雜的關聯關系,導致對數據庫軟件系統的復雜查詢語句的應用越來越普遍,所以基于數據庫的復雜查詢語句的正確與否,直接影響軟件系統的質量。
2、在進行復雜查詢語句測試時,對測試數據的構造是非常復雜的,需要根據不同查詢算子考慮數據的特點,若測試數據構造的不正確或不全面,會使大量問題無法在測試過程中被發現,將對產品質量與用戶體驗產生嚴重的影響。
3、目前,針對復雜查詢語句進行的測試,一般采取手工生成數據,或根據建表語句自動生成數據,兩種方式均需要多次操作更改后才會產生復雜查詢語句需要的有效測試數據,過程復雜且浪費人力。
技術實現思路
1、本專利技術旨在至少解決相關技術中存在的技術問題之一。為此,本專利技術提供一種基于數據庫查詢語句的測試數據生成方法。
2、本專利技術提供一種基于數據庫查詢語句的測試數據生成方法,包括:
3、s1:收集測試用例;
4、s2:根據所述測試用例遍歷表信息,獲得列類型;
5、s3:由所述列類型生成數據規則及數據范圍;
6、s4:解析所述測試用例,獲得過濾條件信息;
7、s5:根據所述數據規則及所述過濾條件信息,在所述數據范圍內生成測試數據。
8、根據本專
9、待測試查詢語句及所述待測試查詢語句涉及的待測試表信息。
10、根據本專利技術提供的一種基于數據庫查詢語句的測試數據生成方法,步驟s2中的所述列類型包括:
11、數值類型、日期類型及字符類型。
12、根據本專利技術提供的一種基于數據庫查詢語句的測試數據生成方法,步驟s3具體包括:
13、當所述列類型為數值類型時,所述數據規則為數值類型數據生成規則,所述數據范圍為數值類型的類型范圍邊界值;
14、當所述列類型為日期類型時,所述數據規則為日期類型數據生成規則,所述數據范圍為日期類型的類型范圍邊界值;
15、當所述列類型為字符類型時,所述數據規則為字符類型數據生成規則,所述數據范圍為根據字典文件生成的字符類型長度范圍。
16、根據本專利技術提供的一種基于數據庫查詢語句的測試數據生成方法,步驟s3中,當所述列類型存在關鍵字標識時,所述數據規則為自定義規則。
17、根據本專利技術提供的一種基于數據庫查詢語句的測試數據生成方法,步驟s4中,通過檢索查詢關鍵字進行所述測試用例的解析,所述查詢關鍵字包括where、group?by、and、or、like及in。
18、根據本專利技術提供的一種基于數據庫查詢語句的測試數據生成方法,步驟s5具體包括:
19、s51:生成符合所述數據范圍,且符合所述過濾條件信息的測試數據;
20、s52:生成符合所述數據范圍,且不符合所述過濾條件信息的測試數據。
21、根據本專利技術提供的一種基于數據庫查詢語句的測試數據生成方法,s51進一步包括:
22、s511:遍歷所述過濾條件信息中的每列的列數據范圍;
23、s512:將所述列數據范圍替換所述數據范圍,作為限縮后的第一數據范圍;
24、s513:根據所述數據規則及所述第一數據范圍,生成符合所述數據范圍,且符合所述過濾條件信息的測試數據。
25、根據本專利技術提供的一種基于數據庫查詢語句的測試數據生成方法,s52進一步包括:
26、s521:將所述數據范圍與所述第一數據范圍作差,獲得所述數據范圍與所述第一數據范圍無交集的差異數據范圍;
27、s522:將所述差異數據范圍替換所述數據范圍,作為第二數據范圍;
28、s523:根據所述數據規則及所述第二數據范圍,生成符合所述數據范圍,且不符合所述過濾條件信息的測試數據。
29、本專利技術提供的一種基于數據庫查詢語句的測試數據生成方法,通過獲取測試用例的列類型,并解析獲得數據生成規則及過濾條件信息,然后生成測試數據的方法,可以保證復雜查詢語句測試數據的有效性及全面性,且節省人力資源提高測試效率,并且還通過聚合列重復率的設置及數據命中率的設置,可以生成不同的測試數據集合,另外通過查詢關鍵字確定數據范圍的方法,滿足了測試復雜語句時需要對語句中使用到的不同查詢算子的測試覆蓋,從而進一步保證了測試數據的全面性。
30、本專利技術的附加方面和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本專利技術的實踐了解到。
本文檔來自技高網...【技術保護點】
1.一種基于數據庫查詢語句的測試數據生成方法,其特征在于,包括:
2.根據權利要求1所述的一種基于數據庫查詢語句的測試數據生成方法,其特征在于,步驟S1中的所述測試用例包括:
3.根據權利要求1所述的一種基于數據庫查詢語句的測試數據生成方法,其特征在于,步驟S2中的所述列類型包括:
4.根據權利要求3所述的一種基于數據庫查詢語句的測試數據生成方法,其特征在于,步驟S3具體包括:
5.根據權利要求4所述的一種基于數據庫查詢語句的測試數據生成方法,其特征在于,步驟S3中,當所述列類型存在關鍵字標識時,所述數據規則為自定義規則。
6.根據權利要求1所述的一種基于數據庫查詢語句的測試數據生成方法,其特征在于,步驟S4中,通過檢索查詢關鍵字進行所述測試用例的解析,所述查詢關鍵字包括where、group?by、and、or、like及in。
7.根據權利要求1所述的一種基于數據庫查詢語句的測試數據生成方法,其特征在于,步驟S5具體包括:
8.根據權利要求7所述的一種基于數據庫查詢語句的測試數據生成方法,其特
9.根據權利要求8所述的一種基于數據庫查詢語句的測試數據生成方法,其特征在于,S52進一步包括:
...【技術特征摘要】
1.一種基于數據庫查詢語句的測試數據生成方法,其特征在于,包括:
2.根據權利要求1所述的一種基于數據庫查詢語句的測試數據生成方法,其特征在于,步驟s1中的所述測試用例包括:
3.根據權利要求1所述的一種基于數據庫查詢語句的測試數據生成方法,其特征在于,步驟s2中的所述列類型包括:
4.根據權利要求3所述的一種基于數據庫查詢語句的測試數據生成方法,其特征在于,步驟s3具體包括:
5.根據權利要求4所述的一種基于數據庫查詢語句的測試數據生成方法,其特征在于,步驟s3中,當所述列類型存在關鍵字標識時,所述數據規則為自...
【專利技術屬性】
技術研發人員:李維維,
申請(專利權)人:江蘇華庫數據技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。