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