溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用ThreadingTest提高軟件安全性檢測效率(下)

發(fā)布時間:2020-07-22 17:42:08 來源:網(wǎng)絡(luò) 閱讀:283 作者:threadingtest 欄目:軟件技術(shù)

如何使用ThreadingTest提高軟件安全性檢測效率(下)

方法三:可視化代碼結(jié)構(gòu)分析

函數(shù)調(diào)用圖:

可以給用戶展示一系列關(guān)于軟件系統(tǒng)的整體信息。如:類或者函數(shù)以及類的成員函數(shù)的總數(shù)目,調(diào)用關(guān)系或者類的繼承關(guān)系的深度、層次結(jié)構(gòu)、語句總行數(shù)和總體復(fù)雜度,整體的測試覆蓋率(分累積的結(jié)果和最后一次運行的結(jié)果,可選擇語句、分支和MC/DC測試覆蓋率標準)、整體的性能分析結(jié)果以及各模塊所占的用時比例、以及全局變量和靜態(tài)變量的分析結(jié)果等;同時,又給出了各個模塊具體的信息,包括:各模塊的源碼行數(shù)和復(fù)雜度、測試覆蓋率分析結(jié)果、扇入扇出信息,高亮顯示一個模塊及其所有相關(guān)的模塊,或者以任何一個模塊為根生成局部子樹等。

函數(shù)調(diào)用圖的特性:

1.    支持百萬圖元級別的超高速圖形繪制技術(shù)。

2.    支持全屏以及超平滑的放大與縮小技術(shù)、平滑的移動技術(shù)。

3.    支持按照類分組聚集布圖以及按照函數(shù)調(diào)用關(guān)系布圖,層次數(shù)量可自由定義。

4.    支持逐級的子樹展開和下鉆功能。

5.    支持在函數(shù)圖元上覆蓋率顯示,以及覆蓋率與函數(shù)相關(guān)信息的顯示。

6.    可追溯:函數(shù)調(diào)用圖是“活”的,不是靜止不動的,可以選擇圖中任何一個模塊而追溯所有調(diào)用它的路徑和相關(guān)模塊以及被他調(diào)用的模塊,用于修改模塊不一致性缺陷的預(yù)防等。

7.    可交互操作,例如高亮顯示一個模塊及其相關(guān)模塊,或者單獨繪制一個模塊的調(diào)用關(guān)系。

8.    可選取函數(shù)調(diào)用圖中任何一個模塊為根生成局部子圖,并且生成子圖的相關(guān)信息,使得團隊的各個組群或者個人可以方便的得到相關(guān)的局部信息。

9.    實現(xiàn)各模塊與邏輯框圖的鏈接:完成宏觀(函數(shù)調(diào)用圖)與微觀視圖(控制流程圖)的結(jié)合,發(fā)揮更好的可視化效果

 

函數(shù)調(diào)用聚集圖:

以類對函數(shù)進行分組,通過圖表把同一類的函數(shù)聚集在一起進行展示。

類繼承圖:

顯示的是當前項目所有類的集成和派生關(guān)系。

控制流程圖

通過函數(shù)的if-else,while,for,do-while,switch-case等控制語句結(jié)構(gòu)繪制組成的流程關(guān)系的展示圖;配合下方的源代碼展示界面,顯示能清晰查看函數(shù)內(nèi)部運行邏輯和結(jié)構(gòu)、條件的真假運行狀況、MC/DC的滿足率等。

特性:

1.    可視化的控制流程圖,對主要的控制邏輯語句對應(yīng)有清晰的圖元顯示,支持嵌套顯示以及串聯(lián)顯示。

2.    點擊控制流圖的每個圖元可以看到對應(yīng)的代碼段以及代碼段的執(zhí)行次數(shù)、覆蓋率情況。

3.    在控制流圖的代碼段,當條件語句成為選中熱點后,可以看到條件語句的各個子條件的各種組合執(zhí)行的真假情況。

4.    支持縮略圖的顯示,可平滑的進行縮放以及全屏顯示。

5.    可以與函數(shù)調(diào)用圖相互自動鏈接、追溯、轉(zhuǎn)換。

 

函數(shù)列表:

針對整個程序的所有函數(shù),按照各種覆蓋率、復(fù)雜度進行排序,幫助用戶能快速的定位查看所有的函數(shù)信息,并通過和函數(shù)調(diào)用圖、控制流程圖、覆蓋率可視化圖以及累計覆蓋率圖的快速切換,使得用戶在查看和解決實際問題上提供了方便。

 

使用ThreadingTest代碼可視化,進行安全性檢測

在安全性檢測過程中,通常需要對代碼的設(shè)計錯誤進行檢測,而TT提供的CallGraph能夠?qū)Τ绦蜻壿嬤M行逆向工程,通過逆向的分析結(jié)果,測試人員就可以獲得可視化的程序調(diào)用結(jié)構(gòu)圖,也就是程序設(shè)計的圖形化表達,通過CallGraph所表達的函數(shù)的調(diào)用邏輯關(guān)系以及ControlFlow所表達的程序控制流,可以協(xié)助開發(fā)人員和測試人員快速的檢測出程序的設(shè)計錯誤。

通過ThreadingTest進行代碼簡潔性、注釋明確性檢查

TT內(nèi)部支持根據(jù)程序的控制流特性對程序進行標準的格式化,因此格式化過程的日志是對代碼書寫規(guī)范性進行檢查。

通過TT的靜態(tài)分析功能,對不建議采用的語法進行檢測,例如函數(shù)遞歸調(diào)用以及goto語句可以進行檢測。

使用ThreadingTest進行代碼復(fù)雜度分析和安全檢查

復(fù)雜軟件不穩(wěn)定,也經(jīng)不起不可預(yù)測的行為。所以,我們努力使軟件的復(fù)雜度變小。如果有條件采用某種自動化工具,可以通過工具對軟件設(shè)計或/和代碼進行控制,用圖形化的方法反映出軟件結(jié)構(gòu)中的控制流和數(shù)據(jù)流,通過連結(jié)數(shù)/調(diào)用數(shù)、節(jié)點數(shù)、嵌套深度等這樣一些結(jié)構(gòu)關(guān)系的檢查,獲得復(fù)雜度的度量,將會獲得很好的效果。

TT在對代碼的分析過程中,TT可以直接給出代碼復(fù)雜度的計算結(jié)果,通常復(fù)雜度越高的軟件模塊更容易引入缺陷,也更加容易引入安全性問題,高度復(fù)雜的數(shù)據(jù)結(jié)構(gòu)難以徹底測試,可以采用TT等復(fù)雜性評估技術(shù)來標示出需要進一步改進的區(qū)域,以便提升軟件的安全性。

方法四:系統(tǒng)級白盒測試技術(shù)進行充分測試及冗余代碼分析

TT支持功能測試過程中的可持續(xù)測試技術(shù),即覆蓋率合并,對于多個版本實現(xiàn)智能覆蓋率合并,以前述的函數(shù)級多版本對比為基礎(chǔ),通過覆蓋率合并算法,準確統(tǒng)計出當前最新版本的累積覆蓋率,從而極大減少測試工程師的重復(fù)測試工作。

通過TT的系統(tǒng)級白盒測試功能,我們可以通過在功能測試過程中,部署上TT,然后對所有的測試用例的白盒覆蓋率進行匯總,經(jīng)過多輪多個用例的測試以后,TT可以清晰的展示未覆蓋的代碼,這些代碼從安全性角度來講可以分為兩類:

1.有些代碼為垃圾代碼或者不達到代碼,從安全角度來講,這些代碼都程序都存在潛在的安全性威脅,需要進行處理。

2.軟件測試過程中不充分,這些沒有執(zhí)行的代碼,很可能存在潛在的安全漏洞,需要補充用例進行測試,保證測試的全面性和充分性。

 

目前ThreadingTest個人版是免費使用的,可以在技術(shù)網(wǎng)站了解詳情,網(wǎng)址:www.teststars.cc,也可以在星云測試網(wǎng)站下載:如果您在安裝與試用過程中有任何疑問,您可以加入QQ技術(shù)群-"符號執(zhí)行-穿線測試“,QQ號為:“339834199"

 


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI