parasoft Jtest 使用教程:代碼規(guī)范靜態(tài)分析Suppressions(禁止)概念解析
代碼規(guī)范靜態(tài)分析
Jtest 通過(guò)靜態(tài)地分析代碼,來(lái)執(zhí)行代碼規(guī)范靜態(tài)分析,以檢查與指定代碼規(guī)范規(guī)則的一致性。此分析旨在通過(guò)以下措施防止錯(cuò)誤,并改進(jìn)代碼質(zhì)量:
- 檢測(cè)源碼中明顯或潛在的缺陷。
- 防止使用可能有損安全性的代碼。
- 實(shí)施組織設(shè)計(jì)準(zhǔn)則、規(guī)范(專用于應(yīng)用程序的、專門用途的或?qū)S糜谄脚_(tái)的)、以及從已知的特定錯(cuò)誤中概括出來(lái)的錯(cuò)誤預(yù)防準(zhǔn)則。
- 通過(guò)改進(jìn)類設(shè)計(jì)和代碼組織,而改進(jìn)代碼可維護(hù)性。
- 通過(guò)應(yīng)用常見的格式化、命名以及其它風(fēng)格方面的約定,提高代碼可讀性。
Jtest 已預(yù)先配置了內(nèi)建的規(guī)則集,以執(zhí)行代碼規(guī)范靜態(tài)分析。缺省情況下,大多數(shù)代碼規(guī)范檢查的Test Configurations(測(cè)試配置)中啟用的規(guī)則,已顯示出能快速而顯著地提高代碼的質(zhì)量。遵循這一核心準(zhǔn)則集的代碼運(yùn)行更快、更安全、更易維護(hù),出現(xiàn)功能問(wèn)題的可能性較小。
除了提供預(yù)先配置的規(guī)則集以外,Jtest 還允許您定義自己的規(guī)則集,包括自定義規(guī)則,以便實(shí)施特定于您的組織的代碼規(guī)范策略。為幫助團(tuán)隊(duì)決定要遵循哪些規(guī)則,規(guī)則按主題分類(例如,安全性、優(yōu)化、初始化等等),并按嚴(yán)重性分級(jí)(嚴(yán)重性是指檢測(cè)到的問(wèn)題將導(dǎo)致錯(cuò)誤的可能性)。
如需了解 Jtest 代碼標(biāo)準(zhǔn)規(guī)則方面的更多信息,請(qǐng)選擇 “Jtest > Help(Jtest > 幫助)”,打開“Jtest Static Analysis Rules”(《Jtest 靜態(tài)分析規(guī)則》)一書,然后瀏覽可用的規(guī)則描述文件。
Jtest 還能檢查用戶以 RuleWizard 模塊所設(shè)計(jì)的任意數(shù)量自定義規(guī)則。有了 RuleWizard,就能以圖形化的方式創(chuàng)建規(guī)則(通過(guò)創(chuàng)建流程圖形方式的規(guī)則表示法),或者自動(dòng)創(chuàng)建規(guī)則(通過(guò)提供演示樣本規(guī)則違例的代碼)。通過(guò)創(chuàng)建和檢查自定義規(guī)則,團(tuán)隊(duì)可以驗(yàn)證獨(dú)特的項(xiàng)目和組織需求,并防止最常見錯(cuò)誤的重復(fù)出現(xiàn)。
Suppressions(禁止)
Suppressions(禁止)用來(lái)防止 Jtest 對(duì)額外出現(xiàn)的特定靜態(tài)分析任務(wù)進(jìn)行報(bào)告(可能會(huì)為單個(gè)規(guī)則報(bào)告多項(xiàng)任務(wù))。禁止消息會(huì)發(fā)送到專門的Suppressions(禁止)視圖,而非 Jtest 視圖;這就能讓你按需要監(jiān)控那些違例,而把主要結(jié)果區(qū)域集中于其它錯(cuò)誤。
當(dāng)您通常想要遵循某條規(guī)則、但決定在少數(shù)異常情況下忽略該規(guī)則時(shí),請(qǐng)使用suppressions(禁止)。通過(guò)使用suppressions,您可以繼續(xù)檢查代碼是否遵循該規(guī)則,而不會(huì)接收到與故意違反規(guī)則有關(guān)的重復(fù)消息。如果您不想接收到某一特定規(guī)則違例的任何錯(cuò)誤消息,那么我們您建議修改Test Configurations(測(cè)試配置),這樣的話配置就不會(huì)再檢查該條規(guī)則。
請(qǐng)注意,Suppressions(禁止)設(shè)置是獨(dú)立于Test Configuration的。為避免沖突,請(qǐng)記?。?/p>
- Test Configuration定義了在靜態(tài)分析期間檢查的規(guī)則集。
- Suppressions(禁止)定義了哪些靜態(tài)分析結(jié)果應(yīng)在 Jtest 視圖和報(bào)告中可見。
這就意味著,分析期間在Test Configuration中所選擇的規(guī)則會(huì)接受檢查,但匹配Suppressions(禁止)條件的結(jié)果將不會(huì)顯示出來(lái)。