為什么要進(jìn)行代碼檢查?靜態(tài)代碼分析工具的優(yōu)勢(shì)有哪些

發(fā)布時(shí)間:2020-07-14

通常,代碼檢查很重要,原因有三:

避免低級(jí)bug:一些常見(jiàn)代碼問(wèn)題,如果在編譯或運(yùn)行前不能及時(shí)發(fā)現(xiàn),代碼中的語(yǔ)法問(wèn)題會(huì)直接導(dǎo)致編譯或運(yùn)行時(shí)錯(cuò)誤,影響開(kāi)發(fā)效率和代碼質(zhì)量;

統(tǒng)一代碼習(xí)慣:每一個(gè)團(tuán)隊(duì)或個(gè)人都會(huì)有一些代碼規(guī)范或者代碼習(xí)慣,為了便于后期維護(hù)和閱讀,我們編寫的代碼也需要符合一定的格式規(guī)范;

保證線上代碼質(zhì)量:在版本管理中,我們需要在提交或發(fā)布之前自動(dòng)執(zhí)行一些代碼檢查工作,確保我們的代碼符合最終版本要求。

代碼審查

靜態(tài)掃描就是不運(yùn)行程序,通過(guò)掃描源代碼的方式檢查漏洞,常見(jiàn)的方法也有多種:

如把源代碼生成 AST(抽象語(yǔ)法樹(shù))后對(duì) AST 進(jìn)行分析,找出用戶可控變量的使用過(guò)程是否流入到了危險(xiǎn)函數(shù),從而定位出漏洞;

或者通過(guò)正則規(guī)則來(lái)匹配源代碼,根據(jù)平常容易產(chǎn)生漏洞的代碼定制出規(guī)則,把這些規(guī)則代入到代碼中進(jìn)行驗(yàn)證來(lái)定位漏洞。

當(dāng)然靜態(tài)掃描由于不運(yùn)行程序也有好多事情處理不了,如程序通過(guò)運(yùn)算得到的一個(gè)結(jié)果后,就沒(méi)辦法分析這個(gè)結(jié)果了,所以需要?jiǎng)討B(tài)運(yùn)行程序來(lái)解決這個(gè)問(wèn)題,也就是動(dòng)態(tài)掃描,動(dòng)態(tài)掃描可以通過(guò)單元測(cè)試或人工掃描等方式。

靜態(tài)代碼分析是指無(wú)需運(yùn)行被測(cè)代碼,通過(guò)詞法分析、語(yǔ)法分析、控制流、數(shù)據(jù)流分析等技術(shù)對(duì)程序代碼進(jìn)行掃描,找出代碼隱藏的錯(cuò)誤和缺陷,如參數(shù)不匹配,有歧義的嵌套語(yǔ)句,錯(cuò)誤的遞歸,非法計(jì)算,可能出現(xiàn)的空指針引用等等。統(tǒng)計(jì)證明,在整個(gè)軟件開(kāi)發(fā)生命周期中,30% 至 70% 的代碼邏輯設(shè)計(jì)和編碼缺陷是可以通過(guò)靜態(tài)代碼分析來(lái)發(fā)現(xiàn)和修復(fù)的。

軟件項(xiàng)目開(kāi)發(fā)過(guò)程中,因?yàn)槠錇榫幾g執(zhí)行語(yǔ)言,語(yǔ)言規(guī)則要求較高,開(kāi)發(fā)團(tuán)隊(duì)往往要花費(fèi)大量的時(shí)間和精力發(fā)現(xiàn)并修改代碼缺陷。所以 靜態(tài)代碼分析工具能夠幫助開(kāi)發(fā)人員快速、有效的定位代碼缺陷并及時(shí)糾正這些問(wèn)題,從而極大地提高軟件可靠性并節(jié)省開(kāi)發(fā)成本。

靜態(tài)代碼分析工具的優(yōu)勢(shì) :

自動(dòng)執(zhí)行靜態(tài)代碼分析,快速定位代碼隱藏錯(cuò)誤和缺陷。

幫助代碼設(shè)計(jì)人員更專注于分析和解決代碼設(shè)計(jì)缺陷。

減少在代碼人工檢查上花費(fèi)的時(shí)間,提高軟件可靠性并節(jié)省開(kāi)發(fā)成本。

下面主要介紹一下:澤眾推出的代碼分析工具CA,CA支持對(duì)源代碼進(jìn)行解析,得到代碼的控制流程圖,通過(guò)對(duì)流程圖進(jìn)行代碼走查,實(shí)現(xiàn)代碼級(jí)的測(cè)試覆蓋,輕松實(shí)現(xiàn)XUnit單元測(cè)試模塊的構(gòu)建。CA還可以通過(guò)時(shí)間設(shè)定,只檢驗(yàn)更新的代碼,提高效率。

推薦閱讀:

什么情況下需要進(jìn)行靜態(tài)程序分析?常用Java靜態(tài)代碼分析工具的優(yōu)勢(shì)

代碼審查和代碼走查的區(qū)別及代碼審查在軟件開(kāi)發(fā)生命周期中的作用

常用Java靜態(tài)代碼分析工具的分析與比較

如何進(jìn)行代碼審查?代碼審查工具都有哪些?

白盒測(cè)試方法有哪些?白盒測(cè)試工具有哪些?

我們?yōu)槭裁匆褂渺o態(tài)代碼掃描工具?常用靜態(tài)代碼掃描工具對(duì)比

軟件測(cè)試人員該如何選擇白盒測(cè)試工具?常用的白盒測(cè)試工具匯總

本文內(nèi)容不用于商業(yè)目的,如涉及知識(shí)產(chǎn)權(quán)問(wèn)題,請(qǐng)權(quán)利人聯(lián)系SPASVO小編(021-60725088-8054),我們將立即處理,馬上刪除。
滬ICP備07036474號(hào) 2003-2024 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.
微信
咨詢

添加客服微信 歡迎咨詢測(cè)試工具和測(cè)試服務(wù)

微信客服
問(wèn)題
反饋
產(chǎn)品
畫冊(cè)

掃描二維碼下載澤眾軟件企業(yè)宣傳冊(cè)

產(chǎn)品畫冊(cè)
返回
頂部

方案咨詢

×
提交信息

電話咨詢,400-035-7887,安排專業(yè)技術(shù)售前給您解答(產(chǎn)品試用、技術(shù)交流、服務(wù)咨詢和商務(wù)報(bào)價(jià))。

您的信息已成功提交!

我們的客服人員稍后會(huì)與您聯(lián)系