靜態(tài)測(cè)試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量等。它可以由人工進(jìn)行,充分發(fā)揮人的邏輯思維優(yōu)勢(shì),也可以借助軟件工具自動(dòng)進(jìn)行。代碼檢查代碼檢查包括代碼走查、桌面檢查、代碼審查等,主要檢查代碼和設(shè)計(jì)的一致性, 代碼對(duì)標(biāo)準(zhǔn)的遵循、可讀性,代碼的邏輯表達(dá)的正確性,代碼結(jié)構(gòu)的合理性等方面;可以發(fā)現(xiàn)違背程序編寫(xiě)標(biāo)準(zhǔn)的問(wèn)題,程序中不安全、不明確和模糊的部分,找出程序中不可移植部分、違背程序編程風(fēng)格的問(wèn)題,包括變量檢查、命名和類型審查、程序邏輯審查、程序語(yǔ)法檢查和程序結(jié)構(gòu)檢查等內(nèi)容?!???戳艘幌盗械撵o態(tài)代碼掃描或者叫靜態(tài)代碼分析工具后,總結(jié)對(duì)工具的看法:靜態(tài)代碼掃描工具,和編譯器的某些功能其實(shí)是很相似的,他們也需要詞法分析,語(yǔ)法分析,語(yǔ)意分析...但和編譯器不一樣的是他們可以自定義各種各樣的復(fù)雜的規(guī)則去對(duì)代碼進(jìn)行分析。
創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的黃浦網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
Fortify SCA 有兩個(gè)文件:auditworkbench.cmd和sourceanalyzer.exe,auditworkbench.cmd是查看靜態(tài)分析報(bào)告的工具,sourceanalyzer.exe是靜態(tài)代碼分析器。這里我們還看到了一個(gè)FindBugs的目錄,這是因?yàn)檫@個(gè)版本的Fortify集成了此功能,你可以通過(guò)傳參給sourceanalyzer.exe調(diào)用FindBugs(但我一般不這么做,可以直接使用FindBugs的話,為什么還要通過(guò)sourceanalyzer.exe調(diào)呢?)。
開(kāi)始掃描靜態(tài)分析,首先CMD進(jìn)入Java源代碼目錄,然后“H:\Fortify\sourceanalyzer.exe -classpath "**/*.jar" -f test.fpr .”,在當(dāng)前目錄得到結(jié)果報(bào)告test.fpr。
更多Fortify SCA 問(wèn)題可以咨詢我
1。先搞清楚要在哪種類型的程序中調(diào)用掃描儀
如果開(kāi)發(fā)的程序是java application或者基于 swing的程序,可以算作是單機(jī)或者 c/s架構(gòu)的程序,applet和java fx技術(shù)也可以這么算,因?yàn)槎际侵苯油ㄟ^(guò)java程序去操控掃描儀設(shè)備。
如果是基于瀏覽器的應(yīng)用,即b/s架構(gòu)的程序,掃描圖像的工作是在客戶端完成的,這種情況下Java程序其實(shí)是接收和保存掃描儀讀取的圖像結(jié)果,并不需要直接的控制掃描儀工作,這一點(diǎn)上和c/s架構(gòu)的程序有本質(zhì)的區(qū)別。
2。架構(gòu)與技術(shù)應(yīng)用
2.1 c/s架構(gòu)程序的掃描儀調(diào)用
c/s架構(gòu)需要通過(guò)java代碼直接操控掃描儀設(shè)備,java語(yǔ)言本身被設(shè)計(jì)為跨o/s平臺(tái),對(duì)特定平臺(tái)的硬件操控能力有限,因此需要借助外部技術(shù)實(shí)現(xiàn)掃描儀控制調(diào)用,可以通過(guò)jni(java原生應(yīng)用程序接口) 技術(shù)去實(shí)現(xiàn)掃描儀調(diào)用,具體的細(xì)節(jié)實(shí)現(xiàn)就是jni中定義掃描儀操作方法,如scan()等方法,然后使用javah生成c語(yǔ)言的.h頭文件,然后使用vc等編程語(yǔ)言去實(shí)現(xiàn)jni接口方法。
在windows平臺(tái)和mac平臺(tái)上面,操作掃描儀都可以通過(guò)twain協(xié)議
總之c/s架構(gòu)的java程序調(diào)用掃描儀通過(guò)jni+twain編程既可完成。
2.2 b/s架構(gòu)程序的掃描儀調(diào)用
b/s架構(gòu)的掃描儀調(diào)用在前面已經(jīng)提到過(guò),java程序?qū)崿F(xiàn)上做的事情是接收掃描結(jié)果圖像數(shù)據(jù) ,例如在struts2的 action中或者jsp/servlet等等程序中接收掃描儀圖像掃描結(jié)果,真實(shí)的客戶端掃描儀調(diào)用應(yīng)該借助客戶端技術(shù)去實(shí)現(xiàn)。
在Linux中的Mozilla瀏覽器中如何調(diào)用掃描儀掃描圖像呢?這個(gè)著實(shí)是個(gè)難題,需要做Mozilla的插件才可以,但是在windows平臺(tái)有ActiveX技術(shù)供程序員使用,因此瀏覽器是在windows平臺(tái)中的話借助Activex技術(shù)即可擴(kuò)展瀏覽器能力。
如何導(dǎo)入Sonar代碼掃描規(guī)則和設(shè)置默認(rèn)代碼掃描規(guī)則。
工具/原料
SonarQube
方法/步驟
1
進(jìn)入配置頁(yè)面
點(diǎn)擊“質(zhì)量管理”菜單 ,在質(zhì)量管理頁(yè)面點(diǎn)擊右上角“恢復(fù)設(shè)置”。
2
導(dǎo)入代碼掃描規(guī)則
在“恢復(fù)設(shè)置”對(duì)話框中點(diǎn)擊“選擇文件”按鈕,選擇代碼掃描規(guī)則XML文件,再點(diǎn)擊“恢復(fù)按鈕”。
3
設(shè)置默認(rèn)代碼掃描規(guī)則
點(diǎn)擊剛導(dǎo)入的代碼掃描規(guī)則右邊的“設(shè)為默認(rèn)”鏈接,可將此規(guī)則設(shè)置為默認(rèn)的Java代碼掃描規(guī)則。