• / 8
  • 下載費用:30 金幣  

一種嵌入式二進制軟件測試用例優先排序方法.pdf

關 鍵 詞:
一種 嵌入式 二進制 軟件 測試 優先 排序 方法
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
摘要
申請專利號:

CN201310580933.8

申請日:

2013.11.18

公開號:

CN103678121A

公開日:

2014.03.26

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):G06F 11/36申請日:20131118|||公開
IPC分類號: G06F11/36 主分類號: G06F11/36
申請人: 杭州電子科技大學
發明人: 王興起; 程攀; 鄒雪; 方景龍
地址: 310018 浙江省杭州市下沙高教園區2號大街
優先權:
專利代理機構: 杭州求是專利事務所有限公司 33200 代理人: 杜軍
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201310580933.8

授權公告號:

||||||

法律狀態公告日:

2016.03.02|||2014.04.23|||2014.03.26

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

本發明涉及一種嵌入式二進制軟件測試用例優先排序方法,傳統的測試用例排序技術按照一定的排序策略對測試用例進行執行優先權的排序,檢測效率較低。本發明所提出的基于函數依賴的測試用例排序技術將測試用例之間的依賴性作為重要因素進行考慮,首先根據二進制程序分析出函數之間的調用關系,然后根據該關系生成相應的鄰接矩陣,依據動態規劃思想進一步生成可達矩陣。最后由可達矩陣對測試用例進行排序。本發明解決了傳統測試用例排序技術對于測試用例依賴方面缺乏考慮的局限性,生成更符合程序實際運行情況的測試用例排序。

權利要求書

權利要求書
1.   一種嵌入式二進制軟件測試用例優先排序方法,針對嵌入式二進制軟件實效性要求,通過對測試用例優先排序提高缺陷發現效率,縮短軟件發布時間,其特征在于包括如下步驟:
步驟1)分析嵌入式二進制軟件函數調用關系,定位函數表,獲得函數描述信息,并對特殊函數調用情況進行處理,最終得到全部函數調用關系;
步驟2)分析函數調用關系,構建函數調用關系鄰接矩陣,并通過矩陣運算生成可達矩陣,得到函數間的依賴關系;
步驟3)根據函數間依賴關系,利用可達矩陣,對函數測試的先后順序進行排序,并依該順序對測試用例進行排序。

2.  根據權利要求1所述的一種嵌入式二進制軟件測試用例優先排序方法,其特征是:步驟1)具體包括如下步驟:
 1)對二進制文件進行結構分析,定位符號表,并從中提取函數的信息,建立函數信息表;
2)定位到主函數入口地址,從主函數入口地址開始遍歷程序中的每條指令,并按照順序從每個函數入口地址處的指令開始進行深度優先搜索,搜集函數的調用信息;
 3)對特殊函數調用情況進行處理,特殊函數包括系統函數和跳轉指令;對于編譯后以“_”開頭的系統函數,則直接過濾掉;對于跳轉指令,如果跳轉目地地址是函數的地址,按照普通函數調用指令處理,否則視為語句跳轉指令。

3.  根據權利要求1所述的一種嵌入式二進制軟件測試用例優先排序方法其特征是:步驟2)具體包括如下步驟:
1)利用二進制程序分析后的結果,分析函數之間的是否存在調用關系,并依此調用關系構建出N×N的鄰接矩陣;
2)利用該鄰接矩陣,依次遍歷矩陣中的每一個元素,根據其下標i和j判斷對應的函數是否存在調用關系;
3)若存在調用關系則遍歷下一個元素;若不存在調用關系則考慮通過未被包含進路徑的其他結點來判斷是否存在通路;
4)循環遍歷所有的元素,最終得到對應的可達矩陣。

4.  根據權利要求1所述的一種嵌入式二進制軟件測試用例優先排序方法,其特征是:步驟3)包括如下步驟:
1)根據最終生成的鄰接矩陣,計算每一行中包含1的個數,并按遞減的順序進行排序,此時可以得到函數調用的復雜關系;
2)查看需要進行程序檢測的測試用例,分析每一個測試用例經過的函數;
3)根據第1步的排序結果對測試用例進行排序,給包含最多調用關系的測試用例賦予最高的優先執行權,以此類推最終得到測試用例排序結果。

說明書

說明書一種嵌入式二進制軟件測試用例優先排序方法
技術領域
本發明屬于軟件測試技術領域,涉及一種嵌入式二進制軟件測試用例優先排序方法。
背景技術
 軟件測試對于軟件開發而言有著極其重要的作用,但與此同時軟件測試也是軟件開發中一個高成本的過程。測試人員利用測試用例對軟件進行性能測試,但窮舉測試對于有限的開發周期而言是不切實際的方法。測試人員通過軟件測試工具可以為一個軟件生成大量的測試用例,對于軟件測試而言最大的障礙在于如何從龐大的測試用例集中篩選出符合該軟件的測試用例子集使得該子集能夠降低軟件測試的開銷,并能提供良好的測試覆蓋率。
國內外的研究學者針對測試用例的選擇和使用問題做了大量的研究工作,測試用例約簡技術( Test case reduction)和測試用例排序技術( Test case prioritization)就是其中相對成熟的技術,這兩種技術通過較小的代價解決了測試用例的篩選問題。
但這兩種技術均存在一定的局限性,主要體現在:TCR技術對于約簡后的測試用例集,可能將一些原本能夠檢測軟件漏洞的測試用例當做冗余測試用例進行刪除。由此得到的越簡集在錯誤檢測能力上要有所下降,失去了檢測出潛在漏洞的可能。傳統TCP技術注重于按照某一種排序策略對測試用例進行排序,而忽略了測試用例之間存在的約束關系,使得最終的排序結果不符合實際的函數調用,雖然在一定程度提高檢錯的效率但仍然有提升的空間。
發明內容
本發明針對現有技術的不足,提供了一種嵌入式二進制軟件測試用例優先排序方法。
本發明方法具體包括以下步驟:
步驟1)分析嵌入式二進制軟件函數調用關系,定位函數表,獲得函數描述信息,并對特殊函數調用情況進行處理,最終得到全部函數調用關系。
步驟2)分析函數調用關系,構建函數調用關系鄰接矩陣,并通過矩陣運算生成可達矩陣,得到函數間的依賴關系。
步驟3)根據函數間依賴關系,利用可達矩陣,對函數測試的先后順序進行排序,并依該順序對測試用例進行排序。
本發明的有益效果:
1.該技術考慮到軟件系統中各個模塊之間的關系,測試用例所涉及到的模塊越多就越容易發現軟件系統中所存在的錯誤,因此基于函數依賴的測試用例排序能夠更高效地發現軟件系統中存在的錯誤。
2.該技術通過優先排序,優先執行權限高的測試用例,因此在測試時間有限的情況下,仍然能對重要的測試用例優先執行,從而削減軟件測試成本。
附圖說明
圖1為分析二進制文件函數調用的具體流程。
圖2為生成可達矩陣的具體流程。
具體實施方式
本發明是對測試用例集的一種優化處理方法,旨在通過該技術使得處理后的測試用例在對軟件進行檢測時,能夠起到高效檢錯,削減測試成本的作用。
本發明包括如下步驟:
步驟1)分析嵌入式二進制軟件函數調用關系,定位函數表,獲得函數描述信息,并對特殊函數調用情況進行處理,最終得到全部函數調用關系。
步驟2)分析函數調用關系,構建函數調用關系鄰接矩陣,并通過矩陣運算生成可達矩陣,得到函數間的依賴關系。
步驟3)根據函數間依賴關系,利用可達矩陣,對函數測試的先后順序進行排序,并依該順序對測試用例進行排序。
其中步驟1)具體包括如下步驟:
 1)對二進制文件進行結構分析,定位符號表,并從中提取函數的信息,建立函數信息表。
2)定位到主函數入口地址,從主函數入口地址開始遍歷程序中的每條指令,并按照順序從每個函數入口地址處的指令開始進行深度優先搜索,搜集函數的調用信息。
 3)對特殊函數調用情況進行處理,特殊函數包括系統函數和跳轉指令;對于編譯后以“_”開頭的系統函數,則直接過濾掉;對于跳轉指令,如果跳轉目地地址是函數的地址,按照普通函數調用指令處理,否則視為語句跳轉指令。
其中步驟2)具體包括如下步驟:
1)利用二進制程序分析后的結果,分析函數之間的是否存在調用關系,并依此調用關系構建出N×N的鄰接矩陣。
2)利用該鄰接矩陣,依次遍歷矩陣中的每一個元素,根據其下標i和j判斷對應的函數是否存在調用關系。
3)若存在調用關系則遍歷下一個元素;若不存在調用關系則考慮通過未被包含進路徑的其他結點來判斷是否存在通路。
4)循環遍歷所有的元素,最終得到對應的可達矩陣。
其中步驟3)包括如下步驟:
1)根據最終生成的鄰接矩陣,計算每一行中包含1的個數,并按遞減的順序進行排序,此時可以得到函數調用的復雜關系。
2)查看需要進行程序檢測的測試用例,分析每一個測試用例經過的函數。
3)根據第1步的排序結果對測試用例進行排序,給包含最多調用關系的測試用例賦予最高的優先執行權,以此類推最終得到測試用例排序結果。
以下結合附圖對本發明作進一步說明。
二進制文件的本身是按照一定的格式來存儲的,具體如在Linux平臺下以elf文件格式進行存儲,elf文件格式如表1所示,包括文件頭、程序頭表、段頭表、符號表、字符串表、重定位表、動態鏈接表等,從文件的不同段中我們可以獲取一些與函數調用有關的信息。
 表1                                               
分析二進制文件中的函數調用關系主要思想如下:遍歷程序中的每個函數,從每個函數起始地址處的指令開始進行深度優先掃描。處理函數的每一條指令,當指令為調用子程序的指令時,計算出具體的跳轉目標地址,將跳轉地址與函數信息表中的函數的起始地址進行匹配,獲取被調用函數的信息,并將其函數標識編號id入隊,深度優先遍歷完該函數后,將隊中元素出隊,對其進行遞歸遍歷。在將函數標識id入隊時,并不需檢查是否重復入隊。主要流程如圖1所示。
根據分析后所得的函數調用關系生成對應的鄰接矩陣,然后利用動態規劃的思想生成可達矩陣。具體步驟如下:依次遍歷鄰接矩陣中的每一個元素,根據對應元素是否為1進行不同的處理。若為1則表示該元素對應的函數之間存在調用關系,遍歷下一個元素即可;若為0則表示該元素對應的函數之間不存在調用關系,此時考慮通過其他的結點的情況下是否存在調用關系,若存在調用關系則也將該元素置為1否則就置為0,循環迭代直到所有元素均被遍歷。此時所得的矩陣就是最終的可達矩陣。主要流程如圖2所示。
根據可達矩陣每一行中元素1的個數對所有的函數進行遞減排序,函數中包含的1越多則表示該函數與其他函數之間的依賴性越高,因此可以根據測試用例是否包含該函數進行執行優先權的排序,最終就可以得到測試用例的優先排序結果。
本發明將全部測試用例當成一個整體,更全面的考慮到了函數之間的調用關系,因此排序后的測試用例在檢錯時更符合程序的實際運行情況,從而提高測試用例的檢錯效率。

關于本文
本文標題:一種嵌入式二進制軟件測試用例優先排序方法.pdf
鏈接地址:http://www.pqsozv.live/p-6180592.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
钻石光影