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