[發明專利]一種基于狀態機的測試用例生成方法和系統在審
| 申請號: | 202211476761.5 | 申請日: | 2022-11-23 |
| 公開(公告)號: | CN115757153A | 公開(公告)日: | 2023-03-07 |
| 發明(設計)人: | 陳俊英;劉偉;王嬴超;趙菲;安鵬偉;曲天潤;宋志強;曾麗婷;陳朋;張榕 | 申請(專利權)人: | 北京京航計算通訊研究所 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F9/448 |
| 代理公司: | 北京天達知識產權代理事務所有限公司 11386 | 代理人: | 龐許倩 |
| 地址: | 100074 北*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 狀態機 測試 生成 方法 系統 | ||
1.一種基于狀態機的測試用例生成方法,其特征在于,包括如下步驟:
基于被測系統的接口協議信息構建狀態機得到狀態變遷矩陣;
基于所述狀態變遷矩陣,使用完全變遷路徑覆蓋算法生成初始測試用例;
使用改進的AETG算法對所述初始測試用例進行覆蓋率優化得到完整測試用例集。
2.根據權利要求1所述的測試用例生成方法,其特征在于,所述基于被測系統的接口協議信息構建狀態機得到狀態變遷矩陣包括:
使用數據協議描述語言DPD對接口協議進行描述;
基于DPD所描述的接口協議信息和被測系統的軟件設計說明書構建狀態機并用狀態圖表示;
基于所述狀態圖得到狀態變遷矩陣。
3.根據權利要求2所述的測試用例生成方法,其特征在于,所述基于所述狀態變遷矩陣,使用完全變遷路徑覆蓋算法生成初始測試用例包括:
從所述狀態變遷矩陣第0行第一個不為0的變遷開始搜索,逐行查找為0的變遷,當變遷的目標狀態為終止狀態時或者變遷已在查找到的路徑中出現過,則形成一條基于變遷的完全路徑;
返回第0行重新開始查找下一條基于變遷的完全路徑,對于已出現過的變遷不再使用,直到所有的變遷均已在路徑中出現后,生成了所有的初始測試用例;
其中,所述不為0的變遷是指由一個狀態無法變遷到矩陣的相鄰狀態。
4.根據權利要求1-3任一項所述的測試用例生成方法,其特征在于,所述使用改進的AETG算法對所述初始測試用例進行覆蓋率優化得到完整測試用例集包括:使用改進的AETG算法對每個所述初始測試用例進行覆蓋率優化,得到該測試用例對應的測試用例集;所有初始測試用例對應的測試用例集,構成完整測試用例集。
5.根據權利要求2或3所述的測試用例生成方法,其特征在于,所述得到狀態變遷矩陣包括:
矩陣STn×n=(stij),0≤i,j≤n-1,stij=tk,tk∈T;
其中,ST表示狀態變遷矩陣,n×n表示矩陣的維度,()表示矩陣所有元素的集合,s表示狀態,t表示變遷,stij表示從狀態si變遷到sj,stij=tk,當tk=0時表示由狀態si無法變遷到sj。
6.根據權利要求5所述的測試用例生成方法,其特征在于,所述基于所述狀態變遷矩陣,使用完全變遷路徑覆蓋算法生成初始測試用例包括以下步驟:
Step1:初始化,令i=0,j=0,變遷集T初始化為STn×n中所有不為0的stij;其中,TPS表示基于變遷的完全路徑集合,tp表示完全路徑,表示空集;
Step2:判斷stij是否為0,若stij==0,則j=j+1,返回Step2繼續判斷,否則,轉向Step3;
Step3:將si·tk·sj加入到完全路徑tp中,即tp←tp+si·tk·sj,將tk從變遷集T中刪除,即T←T-tk,并且令stij=tk=0;
Step4:判斷sj==se||tk∈TPS,若是,則完全路徑tp已形成,將其加入到完全路徑集合TPS中,即TPS←TPS+tp,繼續Step5;否則,i=j,j=0,返回Step2;
Step5:判斷若是,則結束并輸出TPS;否則,令i=0,j=0,返回Step2,搜索下一條基于變遷的完全路徑。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京京航計算通訊研究所,未經北京京航計算通訊研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202211476761.5/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種可防側翻的平衡式堆垛機
- 下一篇:基于業務模型的數據處理方法及裝置





