System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請屬于計算機,具體涉及一種測試用例的生成方法及電子設備。
技術介紹
1、在計算機
中,軟件測試是一種確保軟件質量和可靠性的重要方法,而接口測試是軟件測試中的一項重要內容。接口測試一般是向軟件接口輸入一個合適的參數,然后運行軟件接口的程序,檢測軟件接口程序的運行過程是否與預期一致,從而判斷軟件接口是否能夠正常使用。在一個軟件工程中,可能包含數量較多的軟件接口,每個軟件接口可能包含多個可選擇的接口輸入參數,在測試時,需要開發人員針對每個軟件接口的輸入參數進行選擇和組合,生成測試用例。當接口數量增加或者接口輸入參數的數量增加,這種接口測試方式的測試效率將大大降低,有待改善。
技術實現思路
1、本申請的目的在于提供一種測試用例的生成方法及電子設備,以提高測試用例的生成效率。
2、本申請的其他特性和優點將通過下面的詳細描述變得顯然,或部分地通過本申請的實踐而習得。
3、根據本申請實施例的一個方面,提供一種測試用例的生成方法,包括:
4、對被測試程序所包含的程序運行路徑進行分析,以確定所述程序運行路徑中的條件分支節點;所述條件分支節點為所述被測試程序中根據不同節點輸入參數而導向不同程序運行路徑的節點;
5、對所述條件分支節點進行分類處理,并根據所述條件分支節點的類型確定所述條件分支節點的候選參數集;所述候選參數集為所述條件分支節點中變量輸入參數對應的候選取值的集合;
6、基于所述候選參數集和針對所述被測試程序的目標測試路徑,
7、根據所述目標輸入參數生成用于對所述目標測試路徑進行測試的測試用例。
8、根據本申請實施例的一個方面,提供一種測試用例的生成裝置,包括:
9、節點識別模塊,用于對被測試程序所包含的程序運行路徑進行分析,以確定所述程序運行路徑中的條件分支節點;所述條件分支節點為所述被測試程序中根據不同節點輸入參數而導向不同程序運行路徑的節點;
10、節點分類模塊,用于對所述條件分支節點進行分類處理,并根據所述條件分支節點的類型確定所述條件分支節點的候選參數集;所述候選參數集為所述條件分支節點中變量輸入參數對應的候選取值的集合;
11、遺傳算法模塊,用于基于所述候選參數集和針對所述被測試程序的目標測試路徑,通過遺傳算法從所述候選參數集中提取使所述被測試程序根據所述目標測試路徑運行的目標輸入參數;
12、用例生成模塊,用于根據所述目標輸入參數生成用于對所述目標測試路徑進行測試的測試用例。
13、在本申請的一個實施例中,節點分類模塊包括:
14、格式化單元,用于對所述條件分支節點所包含的判斷條件表達式進行格式化處理,得到格式化表達式;
15、分類單元,用于根據所述格式化表達式所包含的變量輸入參數數量、輸入參數類型和判斷符號對所述格式化表達式進行分類處理,得到所述格式化表達式對應的條件分支節點的類型。
16、在本申請的一個實施例中,所述格式化單元具體用于:
17、將所述條件分支節點所包含的判斷條件表達式中的變量移動到所述判斷條件表達式中的判斷符號的第一側,將所述判斷條件表達式中的非變量移動所述判斷符號的第二側,得到格式化表達式。
18、在本申請的一個實施例中,所述分類單元用于:
19、當所述格式化表達式所包含一個變量輸入參數,所述變量輸入參數屬于所述被測試程序的接口入參,以及所述判斷符號為第一類符號時,確定所述格式化表達式對應的條件分支節點為第一類節點;所述被測試程序的接口入參是指所述被測試程序所涉及接口的輸入參數;
20、當所述格式化表達式所包含一個變量輸入參數,所述變量輸入參數屬于所述被測試程序的接口入參,以及所述判斷符號為第二類符號時,確定所述格式化表達式對應的條件分支節點為第二類節點;
21、當所述格式化表達式所包含多個變量輸入參數,所述變量輸入參數屬于所述被測試程序的接口入參,以及所述判斷符號為所述第一類符號時,確定所述格式化表達式對應的條件分支節點為第三類節點;
22、當所述格式化表達式所包含多個變量輸入參數,所述變量輸入參數屬于所述被測試程序的接口入參,以及所述判斷符號為所述第二類符號時,確定所述格式化表達式對應的條件分支節點為第四類節點;
23、當所述格式化表達式不屬于所述第一類節點、所述第二類節點、所述第三類節點和所述第四類節點中的任一項時,確定所述格式化表達式對應的條件分支節點為第五類節點。
24、在本申請的一個實施例中,節點分類模塊具體用于:
25、當所述條件分支節點為第一類節點,且所述第一類符號為等于符號時,將所述條件分支節點中判斷符號一側的非變量作為所述條件分支節點中變量輸入參數的候選取值;
26、當所述條件分支節點為第一類節點,且所述第一類符號為不等于符號時,將所述條件分支節點中變量輸入參數的接口入參取值中除所述判斷符號一側的非變量以外的值作為所述條件分支節點中變量輸入參數的候選取值。
27、在本申請的一個實施例中,節點分類模塊具體用于:
28、當所述條件分支節點為第二類節點或第四類節點時,根據所述條件分支節點中變量輸入參數的接口入參取值和所述格式化表達式計算所述條件分支節點中變量輸入參數的候選取值。
29、在本申請的一個實施例中,節點分類模塊具體用于:
30、當所述條件分支節點為第三類節點時,將所述條件分支節點中的部分變量輸入參數用其他變量輸入參數表示,并根據所述其他變量輸入參數的接口入參取值確定所述條件分支節點中變量輸入參數的候選取值。
31、在本申請的一個實施例中,遺傳算法模塊具體用于:
32、對所述候選參數集中的候選取值進行編碼處理,得到多個入參編碼值;
33、從所述多個入參編碼值中選擇指定數量的個體作為初始種群,其中,所述個體包括對所述被測試程序進行一次測試所需的變量輸入參數的候選取值;
34、對所述初始種群中個體的入參編碼值進行解碼處理,得到對應的變量輸入參數的候選取值,并根據所述變量輸入參數的候選取值驅動所述被測試程序運行,以獲得測試結果;
35、根據所述測試結果計算適應度,并根據所述適應度進行遺傳迭代,直至滿足迭代停止條件,得到用于對所述目標測試路徑進行測試目標輸入參數,其中,所述迭代停止條件為迭代次數達到設定次數或者適應度達到設定值。
36、在本申請的一個實施例中,遺傳算法模塊具體用于:
37、對當前種群中的個體進行復制、交叉和變異操作中的一種或多種,得到目標種群;
38、對所述目標種群中的個體進行解碼處理,得到對應的變量輸入參數的候選取值,并根據所述變量輸入參數的候選取值驅動所述被測試程序運行,以獲得測試結果;
39、根據所述測試本文檔來自技高網...
【技術保護點】
1.一種測試用例的生成方法,其特征在于,包括:
2.根據權利要求1所述的測試用例的生成方法,其特征在于,對所述條件分支節點進行分類處理,包括:
3.根據權利要求2所述的測試用例的生成方法,其特征在于,對所述條件分支節點所包含的判斷條件表達式進行格式化處理,得到格式化表達式,包括:
4.根據權利要求2所述的測試用例的生成方法,其特征在于,根據所述格式化表達式所包含的變量輸入參數數量、輸入參數類型和判斷符號對所述格式化表達式進行分類處理,得到所述格式化表達式對應的條件分支節點的類型,包括:
5.根據權利要求4所述的測試用例的生成方法,其特征在于,根據所述條件分支節點的類型確定所述條件分支節點的候選參數集,包括:
6.根據權利要求4所述的測試用例的生成方法,其特征在于,根據所述條件分支節點的類型確定所述條件分支節點的候選參數集,包括:
7.根據權利要求4所述的測試用例的生成方法,其特征在于,根據所述條件分支節點的類型確定所述條件分支節點的候選參數集,包括:
8.根據權利要求1所述的測試用例的生成方法,其
9.根據權利要求8所述的測試用例的生成方法,其特征在于,根據所述適應度進行遺傳迭代,包括:
10.一種電子設備,其特征在于,包括:
...【技術特征摘要】
1.一種測試用例的生成方法,其特征在于,包括:
2.根據權利要求1所述的測試用例的生成方法,其特征在于,對所述條件分支節點進行分類處理,包括:
3.根據權利要求2所述的測試用例的生成方法,其特征在于,對所述條件分支節點所包含的判斷條件表達式進行格式化處理,得到格式化表達式,包括:
4.根據權利要求2所述的測試用例的生成方法,其特征在于,根據所述格式化表達式所包含的變量輸入參數數量、輸入參數類型和判斷符號對所述格式化表達式進行分類處理,得到所述格式化表達式對應的條件分支節點的類型,包括:
5.根據權利要求4所述的測試用例的生成方法,其特征在于,根據所述條件分支節點的類型確定所述條件分支節點的候選參數集,...
【專利技術屬性】
技術研發人員:邵詩琪,
申請(專利權)人:深圳前海微眾銀行股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。