翻譯|行業(yè)資訊|編輯:李顯亮|2021-06-08 10:42:03.643|閱讀 406 次
概述:靜態(tài)分析是工作流的一個(gè)關(guān)鍵部分。正如疫苗需要多次試驗(yàn)一樣,任何項(xiàng)目都需要多方面的代碼質(zhì)量分析。為此,Parasoft提供靜態(tài)分析工具來(lái)幫助自動(dòng)化這個(gè)過(guò)程。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
相關(guān)鏈接:
正如任何程序員和質(zhì)量保證測(cè)試人員都會(huì)告訴你的那樣,靜態(tài)分析是工作流的一個(gè)關(guān)鍵部分。正如疫苗需要多次試驗(yàn)一樣,任何項(xiàng)目都需要多方面的代碼質(zhì)量分析。
為此,Parasoft提供靜態(tài)分析工具來(lái)幫助自動(dòng)化這個(gè)過(guò)程。這也增強(qiáng)了最佳實(shí)踐,使其更加敏捷地響應(yīng)必要的變更和更新。但是對(duì)靜態(tài)分析、它的工具和最佳實(shí)踐有一個(gè)基本的理解是關(guān)鍵的基礎(chǔ)知識(shí)。
簡(jiǎn)單來(lái)說(shuō),靜態(tài)代碼分析的過(guò)程就是識(shí)別源代碼中的缺陷和錯(cuò)誤。而分析可以自動(dòng)化,代碼審查通常是代表開(kāi)發(fā)人員和質(zhì)量保證/質(zhì)量控制測(cè)試人員的共同努力。
但是靜態(tài)分析允許更直接的補(bǔ)救,并且是開(kāi)發(fā)過(guò)程的組成部分。不管行業(yè)、功能或語(yǔ)言如何,靜態(tài)分析仍然是任何開(kāi)發(fā)工作流的基礎(chǔ)部分。
執(zhí)行靜態(tài)分析需要一組簡(jiǎn)單的步驟:
何時(shí)執(zhí)行靜態(tài)分析的一般最佳實(shí)踐是在代碼審查之前和代碼編寫(xiě)之后。在這個(gè)階段審核源代碼可以更快地解決錯(cuò)誤,從而減少浪費(fèi)的時(shí)間。
每條靜態(tài)分析規(guī)則或準(zhǔn)則處理的是不同的問(wèn)題。一些影響可靠性的問(wèn)題可能是C語(yǔ)言的資源泄漏或C++的空指針異常。MISRA C:2012指令4.12的存在是為了防止使用動(dòng)態(tài)內(nèi)存,這可能導(dǎo)致存儲(chǔ)外的運(yùn)行時(shí)間故障,這是不可取的。
該準(zhǔn)則規(guī)定:"不得使用'calloc'、'malloc'、'realloc'、'aligned_alloc'和'free'這些標(biāo)識(shí)符,不得展開(kāi)具有這些名稱(chēng)之一的宏。" 因此,下面的代碼將產(chǎn)生違規(guī)。
int* p1 = (int*)malloc(10); /* Violation */ free(p1); /* Violation */
推薦的解決方案是預(yù)先分配一個(gè)內(nèi)存塊,并在需要時(shí)通過(guò)你自己定義的 "malloc "和 "free "等價(jià)物來(lái)管理它。同樣,在C++中,常見(jiàn)的解決方案是重載 "new "和 "delete "操作符。
軟件的意圖、語(yǔ)言和平臺(tái)都會(huì)影響靜態(tài)代碼分析所能發(fā)現(xiàn)的錯(cuò)誤種類(lèi)。
在進(jìn)入靜態(tài)代碼分析最佳實(shí)踐之前,有幾個(gè)誤區(qū)需要消除。例如,靜態(tài)分析儀不是一次性產(chǎn)品,動(dòng)態(tài)分析也不比靜態(tài)分析好或差。但是總的來(lái)說(shuō),當(dāng)涉及到代碼質(zhì)量的靜態(tài)分析時(shí),開(kāi)發(fā)人員應(yīng)該采用具體的最佳實(shí)踐以及新興的最佳實(shí)踐。
在編寫(xiě)代碼時(shí)考慮到所有這些因素,可以確保總體上減少錯(cuò)誤。但是與靜態(tài)代碼分析相結(jié)合,它進(jìn)一步簡(jiǎn)化了錯(cuò)誤識(shí)別和QA/QC過(guò)程。
Parasoft的軟件測(cè)試自動(dòng)化工具套件適用于不同的工作流程和團(tuán)隊(duì)組成。當(dāng)涉及到靜態(tài)代碼分析時(shí),這也是真實(shí)的。這樣做可以加快開(kāi)發(fā)周期,減少缺陷率,并提供持續(xù)改進(jìn)。識(shí)別哪種工具最適合你的需要,只需從源代碼的基礎(chǔ)語(yǔ)言開(kāi)始。
Parasoft不僅提供C/C++解決方案,而且Parasoft還支持Jtest的Java和dotTEST的.NET語(yǔ)言。如果你能加快進(jìn)程并獲得更好的結(jié)果,為什么還要停留在做更多的工作?
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn