如何使用ThreadingTest提高軟件安全性檢測效率(下)
創(chuàng)新互聯(lián)主要從事成都網(wǎng)站制作、做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)余江,10多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
可以給用戶展示一系列關(guān)于軟件系統(tǒng)的整體信息。如:類或者函數(shù)以及類的成員函數(shù)的總數(shù)目,調(diào)用關(guān)系或者類的繼承關(guān)系的深度、層次結(jié)構(gòu)、語句總行數(shù)和總體復(fù)雜度,整體的測試覆蓋率(分累積的結(jié)果和最后一次運行的結(jié)果,可選擇語句、分支和MC/DC測試覆蓋率標(biāo)準(zhǔn))、整體的性能分析結(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)信息,使得團(tuán)隊的各個組群或者個人可以方便的得到相關(guān)的局部信息。
9. 實現(xiàn)各模塊與邏輯框圖的鏈接:完成宏觀(函數(shù)調(diào)用圖)與微觀視圖(控制流程圖)的結(jié)合,發(fā)揮更好的可視化效果
函數(shù)調(diào)用聚集圖:
以類對函數(shù)進(jìn)行分組,通過圖表把同一類的函數(shù)聚集在一起進(jìn)行展示。
類繼承圖:
顯示的是當(dāng)前項目所有類的集成和派生關(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. 在控制流圖的代碼段,當(dāng)條件語句成為選中熱點后,可以看到條件語句的各個子條件的各種組合執(zhí)行的真假情況。
4. 支持縮略圖的顯示,可平滑的進(jìn)行縮放以及全屏顯示。
5. 可以與函數(shù)調(diào)用圖相互自動鏈接、追溯、轉(zhuǎn)換。
函數(shù)列表:
針對整個程序的所有函數(shù),按照各種覆蓋率、復(fù)雜度進(jìn)行排序,幫助用戶能快速的定位查看所有的函數(shù)信息,并通過和函數(shù)調(diào)用圖、控制流程圖、覆蓋率可視化圖以及累計覆蓋率圖的快速切換,使得用戶在查看和解決實際問題上提供了方便。
在安全性檢測過程中,通常需要對代碼的設(shè)計錯誤進(jìn)行檢測,而TT提供的CallGraph能夠?qū)Τ绦蜻壿嬤M(jìn)行逆向工程,通過逆向的分析結(jié)果,測試人員就可以獲得可視化的程序調(diào)用結(jié)構(gòu)圖,也就是程序設(shè)計的圖形化表達(dá),通過CallGraph所表達(dá)的函數(shù)的調(diào)用邏輯關(guān)系以及ControlFlow所表達(dá)的程序控制流,可以協(xié)助開發(fā)人員和測試人員快速的檢測出程序的設(shè)計錯誤。
TT內(nèi)部支持根據(jù)程序的控制流特性對程序進(jìn)行標(biāo)準(zhǔn)的格式化,因此格式化過程的日志是對代碼書寫規(guī)范性進(jìn)行檢查。
通過TT的靜態(tài)分析功能,對不建議采用的語法進(jìn)行檢測,例如函數(shù)遞歸調(diào)用以及goto語句可以進(jìn)行檢測。
復(fù)雜軟件不穩(wěn)定,也經(jīng)不起不可預(yù)測的行為。所以,我們努力使軟件的復(fù)雜度變小。如果有條件采用某種自動化工具,可以通過工具對軟件設(shè)計或/和代碼進(jìn)行控制,用圖形化的方法反映出軟件結(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ù)來標(biāo)示出需要進(jìn)一步改進(jìn)的區(qū)域,以便提升軟件的安全性。
TT支持功能測試過程中的可持續(xù)測試技術(shù),即覆蓋率合并,對于多個版本實現(xiàn)智能覆蓋率合并,以前述的函數(shù)級多版本對比為基礎(chǔ),通過覆蓋率合并算法,準(zhǔn)確統(tǒng)計出當(dāng)前最新版本的累積覆蓋率,從而極大減少測試工程師的重復(fù)測試工作。
通過TT的系統(tǒng)級白盒測試功能,我們可以通過在功能測試過程中,部署上TT,然后對所有的測試用例的白盒覆蓋率進(jìn)行匯總,經(jīng)過多輪多個用例的測試以后,TT可以清晰的展示未覆蓋的代碼,這些代碼從安全性角度來講可以分為兩類:
1.有些代碼為垃圾代碼或者不達(dá)到代碼,從安全角度來講,這些代碼都程序都存在潛在的安全性威脅,需要進(jìn)行處理。
2.軟件測試過程中不充分,這些沒有執(zhí)行的代碼,很可能存在潛在的安全漏洞,需要補充用例進(jìn)行測試,保證測試的全面性和充分性。
目前ThreadingTest個人版是免費使用的,可以在技術(shù)網(wǎng)站了解詳情,網(wǎng)址:www.teststars.cc,也可以在星云測試網(wǎng)站下載:如果您在安裝與試用過程中有任何疑問,您可以加入QQ技術(shù)群-"符號執(zhí)行-穿線測試“,QQ號為:“339834199"
本文題目:如何使用ThreadingTest提高軟件安全性檢測效率(下)
轉(zhuǎn)載源于:http://chinadenli.net/article22/ihidjc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、網(wǎng)站改版、云服務(wù)器、移動網(wǎng)站建設(shè)、網(wǎng)站策劃、用戶體驗
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)