成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

靜態代碼分析和動態代碼分析是互為補充的技術

譯文
開發 前端
每個程序員都希望一下子就能交付高性能、安全、無錯誤、合規的代碼,但這是不可能的。有效的代碼分析技術將對你有所幫助。

如果你問開發團隊,他們的主要目標是什么,三個最常見的答案可能包括:

  • 編寫無錯誤的代碼。
  • 符合設計規范。
  • 規避安全問題。

那么,團隊如何審查代碼以確保這三個主要目標都得到滿足?

答案很簡單,是代碼分析。但它應該是靜態代碼分析?還是動態代碼分析?或者兩者結合?

不妨看看靜態代碼分析和動態代碼分析如何在開發中發揮重要作用,以及它們的差異如何有助于規范代碼。

靜態代碼分析和動態代碼分析有何不同?

靜態代碼分析檢查代碼,以識別邏輯和技術中的問題。動態代碼分析則運行代碼和檢查結果,這還需要測試代碼可能存在的執行路徑。

即使采用最基本的方式,當開發團隊測試代碼時,他們是在執行動態分析。而當程序員審查代碼時,則是在執行靜態分析。無論使用哪種工具,開發人員和程序員都在執行分析,最終有助于創建更好的代碼。

靜態代碼和動態代碼本身都不是理想的選擇,這意味著團隊應優化兩者。開發團隊不能將靜態代碼分析和動態代碼分析視為非此即彼的關系,而是應將它們視為互補和共生的關系。

代碼審查類似靜態分析

如果由于某種原因,團隊決定略過靜態代碼分析,那其實意味著團隊計劃不審查代碼。代碼審查和靜態代碼分析好比是相關的術語。代碼審查有助于發現代碼問題,無需進行費時又費錢的動態測試。在代碼審查環境下進行的靜態代碼分析是開發和維護優秀軟件的第一步,也是最重要的一步。

大多數靜態代碼分析是使用旨在評估代碼,查找錯誤或不推薦的技術和實踐的工具完成的。將靜態代碼分析視為代碼審查要素的組織可能會先進行正式的代碼審查,然后運用靜態代碼分析工具,最后借助選擇的代碼審查流程審查結果。

如果機構決定先與程序員和導師一起審查代碼,它們可能會考慮先使用靜態代碼分析。這種方法可能會揪出至少 85% 的代碼錯誤,為專家省下識別錯誤的寶貴時間。

靜態代碼分析和審查特別適合快速開發和 GitOps 環境:在這種環境下,常常對單個組件進行更改。比如說,如果軟件設計適當地隔離了組件行為,靜態分析可以揪出大部分代碼錯誤。

為什么進行動態分析呢?

簡而言之,靜態分析無法揪出每個代碼缺陷。

解決復雜的多組件應用程序中的問題時,靜態分析尤其受到限制。當您想要衡量性能或測試用于擴展及(或)負載均衡的策略時,它幾乎失去價值。面對這些限制,動態代碼分析就有了用武之地。

協調動態分析和靜態分析

正如開發團隊已經經常使用靜態代碼分析——即使這種分析不是正式規定或管理的,他們也使用動態代碼分析。常規軟件測試和運行軟件以驗證修正版或驗證初始實現機制是動態代碼分析的幾種形式。

因此,這不是靜態代碼分析與動態代碼分析兩者擇其一的問題。團隊可能已經使用了兩者。問題變成了如何有效地使用兩者。

靜態代碼分析最好與代碼審查結合使用。動態代碼分析適用于某種形式的自動化測試和測試數據生成。

團隊應先將動態代碼分析的重點放在靜態分析可能無效的方面,比如組件性能、應用程序性能、應用程序邏輯、安全驗證和跨組件邊界。比如說, Redgate SQL Data Generator 和DTM Data Generator (僅舉幾例)等自動化測試數據生成工具可模擬應用程序在滿負荷下的操作、驗證所有邏輯路徑,并測試這些點是否存在安全漏洞。一些機構可能已經在使用這些工具,但重要的是,它們可以用來測試靜態分析極有可能遺漏的特定方面。

使用唾手可得的工具和實踐很容易實現性能和負載測試的自動化。面對任何形式的生成數據自動化測試,設置邏輯和安全驗證比較困難。團隊需要強調測試設計,并認真選擇具有特定字段值約束的數據生成工具,以運行識別潛在問題的測試。在安全驗證方面,團隊應將測試數據范圍值擴大到正常操作之外,以確保它們不會帶來潛在的問題。

靜態代碼分析與動態代碼分析之爭表明了許多注重單個步驟而不是整個過程的開發策略存在缺陷。靜態代碼分析和動態代碼分析都扮演重要的角色,它們都是整體的開發和部署流程的一部分。少了任何一方,另一方都不可能獨立完成。

原文標題:Static and dynamic code analysis: Complementary techniques,作者:Tom Nolle

責任編輯:華軒 來源: 51CTO
相關推薦

2013-04-08 10:47:42

Xcode靜態代碼分析

2021-06-08 13:56:34

工具靜態代碼

2022-06-29 09:19:09

靜態代碼C語言c代碼

2009-12-30 17:09:00

VPN技術分析

2021-05-06 09:00:00

JavaScript靜態代碼開發

2012-05-22 00:28:21

JavaJava開源開源工具

2012-04-25 11:04:13

Visual Stud

2011-05-05 09:54:05

靜態代碼

2017-05-10 14:27:29

靜態代碼漏洞安全

2018-01-26 07:53:46

數據脫敏數據安全信息安全

2023-09-14 22:57:52

2022-01-27 09:57:55

遠程代碼漏洞

2010-01-06 17:12:39

華為交換機vlan配置

2010-02-25 13:48:23

WCF動態創建代碼

2009-10-12 15:41:09

VB.NET動態代碼

2021-11-04 05:43:38

GoKartGo代碼靜態安全分析

2021-01-05 09:25:27

DockerSemgrep代碼靜態分析工具

2009-02-26 16:28:43

靜態編譯動態編譯Java

2024-01-08 13:47:00

代碼分析工具

2020-12-07 14:46:07

程序員代碼分析工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩中文一区二区三区 | 国产精品日韩欧美一区二区 | 91久色 | 欧美一区二区三区 | 欧美日本高清 | 91久久久www播放日本观看 | 日日网| 国产一区二区三区四区三区四 | 这里只有精品999 | 日韩高清在线 | 最新中文字幕在线 | 2021天天躁夜夜看 | 一区二区三 | yeyeav| av福利网站 | av影音资源 | 日本欧美国产 | 成人精品久久 | 亚洲欧美中文日韩在线 | 中文字幕视频在线 | 亚洲第1页| 日韩毛片中文字幕 | 国产欧美日韩视频 | 日韩欧美在线观看 | 国产综合视频 | 成人亚洲网站 | 四虎影院免费在线播放 | 国产69精品久久久久777 | 中文字幕a√| 五月婷亚洲 | 在线观看中文字幕视频 | 91久久精品一区二区二区 | 中文字幕av在线播放 | 人成精品 | 欧美精品久久久久久久久久 | 91在线免费观看网站 | 国产精品国产成人国产三级 | 亚洲一区二区三区视频 | 午夜二区 | 999久久 | 国产精品免费观看视频 |