您好,登錄后才能下訂單哦!
如何使用ThreadingTest提高軟件安全性檢測效率(下)
可以給用戶展示一系列關于軟件系統的整體信息。如:類或者函數以及類的成員函數的總數目,調用關系或者類的繼承關系的深度、層次結構、語句總行數和總體復雜度,整體的測試覆蓋率(分累積的結果和最后一次運行的結果,可選擇語句、分支和MC/DC測試覆蓋率標準)、整體的性能分析結果以及各模塊所占的用時比例、以及全局變量和靜態變量的分析結果等;同時,又給出了各個模塊具體的信息,包括:各模塊的源碼行數和復雜度、測試覆蓋率分析結果、扇入扇出信息,高亮顯示一個模塊及其所有相關的模塊,或者以任何一個模塊為根生成局部子樹等。
函數調用圖的特性:
1. 支持百萬圖元級別的超高速圖形繪制技術。
2. 支持全屏以及超平滑的放大與縮小技術、平滑的移動技術。
3. 支持按照類分組聚集布圖以及按照函數調用關系布圖,層次數量可自由定義。
4. 支持逐級的子樹展開和下鉆功能。
5. 支持在函數圖元上覆蓋率顯示,以及覆蓋率與函數相關信息的顯示。
6. 可追溯:函數調用圖是“活”的,不是靜止不動的,可以選擇圖中任何一個模塊而追溯所有調用它的路徑和相關模塊以及被他調用的模塊,用于修改模塊不一致性缺陷的預防等。
7. 可交互操作,例如高亮顯示一個模塊及其相關模塊,或者單獨繪制一個模塊的調用關系。
8. 可選取函數調用圖中任何一個模塊為根生成局部子圖,并且生成子圖的相關信息,使得團隊的各個組群或者個人可以方便的得到相關的局部信息。
9. 實現各模塊與邏輯框圖的鏈接:完成宏觀(函數調用圖)與微觀視圖(控制流程圖)的結合,發揮更好的可視化效果
函數調用聚集圖:
以類對函數進行分組,通過圖表把同一類的函數聚集在一起進行展示。
類繼承圖:
顯示的是當前項目所有類的集成和派生關系。
通過函數的if-else,while,for,do-while,switch-case等控制語句結構繪制組成的流程關系的展示圖;配合下方的源代碼展示界面,顯示能清晰查看函數內部運行邏輯和結構、條件的真假運行狀況、MC/DC的滿足率等。
特性:
1. 可視化的控制流程圖,對主要的控制邏輯語句對應有清晰的圖元顯示,支持嵌套顯示以及串聯顯示。
2. 點擊控制流圖的每個圖元可以看到對應的代碼段以及代碼段的執行次數、覆蓋率情況。
3. 在控制流圖的代碼段,當條件語句成為選中熱點后,可以看到條件語句的各個子條件的各種組合執行的真假情況。
4. 支持縮略圖的顯示,可平滑的進行縮放以及全屏顯示。
5. 可以與函數調用圖相互自動鏈接、追溯、轉換。
函數列表:
針對整個程序的所有函數,按照各種覆蓋率、復雜度進行排序,幫助用戶能快速的定位查看所有的函數信息,并通過和函數調用圖、控制流程圖、覆蓋率可視化圖以及累計覆蓋率圖的快速切換,使得用戶在查看和解決實際問題上提供了方便。
在安全性檢測過程中,通常需要對代碼的設計錯誤進行檢測,而TT提供的CallGraph能夠對程序邏輯進行逆向工程,通過逆向的分析結果,測試人員就可以獲得可視化的程序調用結構圖,也就是程序設計的圖形化表達,通過CallGraph所表達的函數的調用邏輯關系以及ControlFlow所表達的程序控制流,可以協助開發人員和測試人員快速的檢測出程序的設計錯誤。
TT內部支持根據程序的控制流特性對程序進行標準的格式化,因此格式化過程的日志是對代碼書寫規范性進行檢查。
通過TT的靜態分析功能,對不建議采用的語法進行檢測,例如函數遞歸調用以及goto語句可以進行檢測。
復雜軟件不穩定,也經不起不可預測的行為。所以,我們努力使軟件的復雜度變小。如果有條件采用某種自動化工具,可以通過工具對軟件設計或/和代碼進行控制,用圖形化的方法反映出軟件結構中的控制流和數據流,通過連結數/調用數、節點數、嵌套深度等這樣一些結構關系的檢查,獲得復雜度的度量,將會獲得很好的效果。
TT在對代碼的分析過程中,TT可以直接給出代碼復雜度的計算結果,通常復雜度越高的軟件模塊更容易引入缺陷,也更加容易引入安全性問題,高度復雜的數據結構難以徹底測試,可以采用TT等復雜性評估技術來標示出需要進一步改進的區域,以便提升軟件的安全性。
TT支持功能測試過程中的可持續測試技術,即覆蓋率合并,對于多個版本實現智能覆蓋率合并,以前述的函數級多版本對比為基礎,通過覆蓋率合并算法,準確統計出當前最新版本的累積覆蓋率,從而極大減少測試工程師的重復測試工作。
通過TT的系統級白盒測試功能,我們可以通過在功能測試過程中,部署上TT,然后對所有的測試用例的白盒覆蓋率進行匯總,經過多輪多個用例的測試以后,TT可以清晰的展示未覆蓋的代碼,這些代碼從安全性角度來講可以分為兩類:
1.有些代碼為垃圾代碼或者不達到代碼,從安全角度來講,這些代碼都程序都存在潛在的安全性威脅,需要進行處理。
2.軟件測試過程中不充分,這些沒有執行的代碼,很可能存在潛在的安全漏洞,需要補充用例進行測試,保證測試的全面性和充分性。
目前ThreadingTest個人版是免費使用的,可以在技術網站了解詳情,網址:www.teststars.cc,也可以在星云測試網站下載:如果您在安裝與試用過程中有任何疑問,您可以加入QQ技術群-"符號執行-穿線測試“,QQ號為:“339834199"
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。