[發明專利]測試用例優先級排序中的tie-breaking的解決方法及系統有效
| 申請號: | 201811501029.2 | 申請日: | 2018-12-10 |
| 公開(公告)號: | CN109710514B | 公開(公告)日: | 2022-02-15 |
| 發明(設計)人: | 黃如兵;張犬俊;陳錦富 | 申請(專利權)人: | 江蘇大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 212013 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 測試 優先級 排序 中的 tie breaking 解決方法 系統 | ||
1.測試用例優先級排序中的tie-breaking的解決方法,其特征在于,包括如下步驟:
步驟1,根據測試用例集在基礎版本的程序集上運行情況,收集測試用例集代碼覆蓋信息;
步驟2,將測試用例集在迭代錯誤版本上運行,獲得測試用例集在各個版本上的錯誤檢測情況;
步驟3,使用基于Additional的tie-breaking改進方法,根據獲得的代碼覆蓋信息進行測試用例排序,輸出已排序的測試用例序列;
步驟1的具體實現包括:
步驟1.1,根據已獲得的測試用例集,將其轉換為測試用例腳本,輸出該用例集代碼覆蓋信息;
步驟1.2,對基礎版本的程序集,執行上述的測試用例腳本,獲得該測試用例集的覆蓋信息文件;
步驟1.3,編寫腳本,對上述覆蓋信息文件進行解析,生成測試用例集在程序集上的覆蓋矩陣,其中每行代表測試用例,每列代表該程序集每種覆蓋粒度,0代表該測試用例沒有覆蓋該粒度,1代表該測試用例覆蓋該粒度;
步驟3的具體實現包括:
步驟3.1,根據貪心算法的Additional策略進行每輪排序,當多個測試用例擁有相同的評估值的時候,使用被覆蓋粒度的歷史覆蓋信息進行再次排序,即被覆蓋次數少的粒度擁有較高的優先級,挑選覆蓋這種粒度的用例,以解決tie-breaking問題;
步驟3.2,當某一輪沒有用例可以覆蓋新的粒度時,重置所有粒度為未覆蓋狀態,并再次執行Additional策略進行該輪排序;
步驟3.3,重復執行步驟3.1和3.2,當沒有候選測試用例時結束本次排序,并輸出已排序用例序列。
2.根據權利要求1所述的測試用例優先級排序中的tie-breaking的解決方法,其特征在于,步驟2的具體實現包括:
步驟2.1,根據已獲得的測試用例集,將其轉換為相應的測試用例腳本,輸出該用例集在程序集上的執行結果;
步驟2.2,將上述測試用例腳本在基本版本與相關迭代版本的程序集上分別運行,獲得測試用例集在各個版本程序上的輸出信息;
步驟2.3,編寫腳本,對測試用例集在基礎版本和錯誤迭代版本上的輸出信息進行對比,生成測試用例集的錯誤檢測矩陣,其中每行代表測試用例,每列代表植入的錯誤,0代表該測試用例未檢測到該錯誤,1代表該測試用例檢測到該錯誤。
3.根據權利要求1所述的測試用例優先級排序中的tie-breaking的解決方法,其特征在于,還包括步驟4,根據已排序的測試用例序列和測試用例集的錯誤檢測情況,計算該測試用例序列的評估值并進行統計分析。
4.根據權利要求3所述的測試用例優先級排序中的tie-breaking的解決方法,其特征在于,步驟4的具體實現包括:
步驟4.1,使用貪心算法,即Total和Additional策略,在statement、branch和function粒度上重復步驟3,生成各個方法的已排序測試用例序列;
步驟4.2,根據各個方法的已排序測試用例序列以及測試用例集的錯誤覆蓋矩陣FaultMatrix,生成各個方法的排序結果的評估值,所述評估值包括平均錯誤檢測速率APFD,其評估值公式為:其中n代表測試用例數量、m代表程序中錯誤數量,TFm代表檢測到第m個錯誤的第一個測試用例在排序中的執行次序;
步驟4.3,對獲得的APFD值進行圖形化顯示,畫出各方法在每種粒度下的盒圖,方便直觀顯示與比較;
步驟4.4,對獲得的APFD值進行統計分析,計算各方法的wilcox p-value以及計算effect size,以及根據上述結果對本方法進行評估。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于江蘇大學,未經江蘇大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811501029.2/1.html,轉載請聲明來源鉆瓜專利網。





