国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

靜態分析和動態分析的區別

麥克泰技術 ? 來源:麥克泰技術 ? 2023-05-16 16:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

摘要

靜態分析和動態分析是一種雙管齊下的方法,可以在可靠性、錯誤檢測、效率和安全性方面改進開發過程。為什么它們都很重要?它們又有什么區別呢?

前言

在開發早期,發現并修復bug在許多方面都有好處。它可以減少開發時間,降低成本,并且防止數據泄露或其他安全漏洞。特別是對于DevOps,盡早持續地將測試納入SDLC軟件開發生命周期是非常有幫助的。

這就是動態和靜態分析測試的用武之地。它們在SDLC中各自服務于不同的目的,同時也為任何開發團隊提供獨特且幾乎即時的投資回報率。

靜態與動態分析:了解兩者的區別

靜態代碼分析是一個廣義的術語,用于描述幾種不同類型的分析。然而,所有這些分析都有一個共同的特征:它們不需要代碼執行即可運行。

相比之下,動態分析需要代碼執行。盡管還有其他區別,但這一特征是區分這兩種測試方法的根本因素。

這也意味著每種方法在開發過程的不同階段都提供了不同的好處。為了理解這些差異,我們可以回顧以下內容。

每種策略需要什么。

需要使用測試類型。

協助該過程的工具。

什么是靜態分析?

靜態代碼分析測試可以包括各種類型,其中兩種主要的類型是基于模式的測試和基于流的測試。

基于模式的靜態分析可以查找出違反定義編碼規則的代碼。除了確保代碼滿足合規性或內部計劃的統一期望外,它還可以幫助團隊預防缺陷,如資源泄漏、性能和安全問題、邏輯錯誤和API濫用等。

基于流的靜態分析可以查找和分析代碼的各種路徑。這可以通過控制流(執行行(hang)的順序)和數據流(變量或類似實體可以被創建、改變、使用和銷毀的順序)來實現。這些過程可以暴露出導致關鍵缺陷的問題,例如:

內存損壞(緩沖區覆蓋)

內存訪問違規

空指針解引用

競態條件(Race conditions)

死鎖(Deadlocks)

它還可以通過繞過安全關鍵代碼(如身份驗證或加密代碼)的路徑來檢測安全問題。

此外,度量分析包括對代碼的各個方面進行衡量和可視化。它可以幫助檢測現有的缺陷,但更常見的是,為后續代碼維護時,提前消除可能帶來未知缺陷的可能性。這是通過發現代碼中的復雜性和冗長性來完成的,例如:

過大的組件

過多的循環嵌套

一系列過于冗長的判定

復雜的組件間依賴關系

什么是動態分析?

動態分析有時被稱為運行時錯誤檢測,動態分析是測試類型之間的區別開始變得模糊的地方。動態應用程序安全測試(DAST)是一種分析測試,目的是檢查測試項目而不是執行它。這種白盒測試檢查的是內部行為,并非外部行為。然而測試中的代碼必須被執行。這是通過運行與動態測試相同的黑盒測試來完成的。

這意味著動態分析可以在內部故障發生的瞬間檢測并報告這些故障。這使得測試人員更容易精確地將這些故障與測試行動關聯起來,以便進行事故報告。類似于好的靜態分析,DAST提供了完整的技術細節,使開發人員能夠隔離和修復潛在的缺陷。

DAST還擴展了所有級別的測試能力,從單元測試到驗收,使檢測內部故障成為可能,這些故障指向在測試停止后發生或將要發生的無法觀察到的外部故障。

靜態分析的利弊

凡事皆有利弊,靜態分析測試也有優點和缺點。

靜態分析的利弊

優點:

1. 在不執行源代碼的情況下評估源代碼;

2. 分析整個代碼的漏洞和錯誤;

3. 遵循定制的、定義好的規則;

4. 增強開發人員的責任感;

5. 具有自動化能力;

6. 盡早突出錯誤并減少修復漏洞所需的時間。

缺點

1. 可能返回誤報和漏報,會分散開發人員的注意力;

2. 手動操作需要很長時間;

3. 無法找到運行時環境中出現的錯誤或漏洞;

4. 決定應用哪些行業編碼標準可能會令人困擾;

5. 確定偏離違反規則是否合適,可能具有挑戰性。

雖然這些缺點看起來令人生畏,但靜態分析的缺點可以用兩件事來補充:

自動化靜態分析

使用動態分析技術

為什么靜態代碼分析如此有價值?

所有這些類型的靜態分析都有一個共同點:它們會涉及掃描或檢查程序源代碼。

這是一種快速而簡單的暴露關鍵缺陷的方法。他實現了100%的覆蓋率和100%的客觀結果。

不斷地執行這樣的靜態代碼分析是有意義的,因為它提供了這些可操作的結果,減少了成本和開發時間,增加了代碼覆蓋率,等等。

超越靜態分析的范疇

靜態掃描提供信息來幫助預測代碼集成和執行時可能會發生的情況。它根據工具認為的缺陷標準來檢測缺陷。通常也可以根據您的偏好和優先級進行定制。

但是,工具不能告訴您測試中或生產中的系統何時交付了意外的、不適當的或不準確的結果。

這里的挑戰是難以觀察意想不到的行為。例如,對于用戶、測試人員或測試執行工具來說,事務可能看起來正確地進行,但實際上,組件拋出了一個未處理的異常,并且未能正確地處理它。一個控制系統可能會在測試三天內快速正確地響應,但可能會在生產的第四天出現內存泄漏并導致崩潰。

通過使用靜態代碼分析工具修復所有檢測到的缺陷,并不能保證不會有其他缺陷導致類似的失敗。這就是為什么將失敗的定義應用于內部和外部行為是很重要的,即使在集成之后也是如此。內部故障必須在外部故障出現之前檢測到。

結合靜態和動態分析的最佳實踐

將靜態和動態分析相結合,是獲得可操作結果、減少錯誤發生、增加錯誤檢測并創建更安全代碼的最佳選擇。兩者并無優劣之分。它們像精心制作的瑞士手表的所有齒輪一樣協同工作。

要同時使用靜態和動態分析,請遵循這些最佳實踐:

將它們與符合您需求的手動和自動化解決方案一起使用;

使代碼對其他開發人員具有可讀性和可重用性;

在SDLC的正確點使用正確的方法——在早期使用靜態方法,在運行時環境中使用動態方法;

利用這兩種方法對您的項目進行更全面的概述;

避免只依賴一種測試方法的陷阱,一個小的疏忽可能導致大的問題。

將靜態和動態分析相結合,使團隊能夠定位更大范圍和數量的代碼威脅。

獲取有價值的見解,來選擇最適合您團隊的軟件測試解決方案。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 測試
    +關注

    關注

    9

    文章

    6201

    瀏覽量

    131347
  • 代碼
    +關注

    關注

    30

    文章

    4967

    瀏覽量

    73960
  • 動態分析
    +關注

    關注

    1

    文章

    20

    瀏覽量

    7503
  • 靜態分析
    +關注

    關注

    1

    文章

    45

    瀏覽量

    4206

原文標題:靜態分析和動態分析

文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基本共射放大電路的組成、靜態分析動態分析

       分析基本共射放大電路的需要從靜態動態分析靜態指的是“直流通路在直流電源作用下直流電流流經的通路”,用于研究
    發表于 01-12 11:38 ?1.7w次閱讀
    基本共射放大電路的組成、<b class='flag-5'>靜態</b><b class='flag-5'>分析</b>及<b class='flag-5'>動態</b><b class='flag-5'>分析</b>

    動態BGP與靜態BGP的區別

    的本質協議是一致的,但其配置方式、路由來源和使用場景存在明顯區別。一、靜態 BGP 與 動態 BGP 的區別概覽[td]項目靜態 BGP
    發表于 06-24 06:57

    放大電路的動靜態分析求教

    先大概對問題進行一下描述,共發射極基本交流放大電路如下圖。然后可以得到上面這幅圖的直流和交流通路如下面兩幅圖。下面是問題:靜態分析就是先根據左圖確定靜態工作點,然后用右圖在確定靜態工作
    發表于 01-13 15:27

    動態BGP與靜態BGP的區別

    動態BGP與靜態BGP的區別 動態BGP與靜態BGP的區別 1.
    發表于 12-01 16:55

    動態ip、靜態ip、pppoe撥號的區別

    在設置無線路由器上網時,上方方式有pppoe撥號(寬帶撥號、ADSL撥號)、動態IP(DHCP、自動獲取IP)、靜態IP(固定IP)這個選項;那么動態ip、靜態ip、pppoe撥號這3
    發表于 12-27 11:31 ?6.5w次閱讀
    <b class='flag-5'>動態</b>ip、<b class='flag-5'>靜態</b>ip、pppoe撥號的<b class='flag-5'>區別</b>

    時序分析靜態分析基礎教程

    本文檔的主要內容詳細介紹的是時序分析靜態分析基礎教程。
    發表于 01-14 16:04 ?14次下載
    時序<b class='flag-5'>分析</b>的<b class='flag-5'>靜態</b><b class='flag-5'>分析</b>基礎教程

    雙極性晶體管的動態分析

    既然有靜態分析,當然也會伴隨著動態分析靜態分析是去掉了放大電路中的交流成分,那么,
    的頭像 發表于 08-14 16:34 ?2576次閱讀
    雙極性晶體管的<b class='flag-5'>動態</b><b class='flag-5'>分析</b>

    什么是靜態分析?如何管理早期靜態分析報告

    簡單來說,靜態分析是在不執行代碼的情況下檢查源代碼和二進制代碼的過程,通常用于查找bug的前期準備或評估代碼質量。與需要運行程序的動態分析(例如Parasoft Insure ++)不
    的頭像 發表于 11-01 11:35 ?7281次閱讀

    靜態ip和動態ip的區別

    服務還可以為我們提供更精確的結果,因為它們知道我們的確切位置。下面,小編將深入探討靜態ip和動態ip的區別。 一、靜態ip 1、什么是靜態i
    的頭像 發表于 04-19 17:16 ?5001次閱讀

    什么是完備靜態分析

    在開發安全、可靠和合規的軟件時,完備靜態分析是一種有益的實踐。本篇文章中,我們將討論完備分析靜態分析的不同之處,為什么它很重要,以及完備
    的頭像 發表于 11-11 10:16 ?1463次閱讀
    什么是完備<b class='flag-5'>靜態</b><b class='flag-5'>分析</b>?

    什么是靜態代碼分析靜態代碼分析概述

    靜態分析可幫助面臨壓力的開發團隊。高質量的版本需要按時交付。需要滿足編碼和合規性標準。錯誤不是一種選擇。 這就是開發團隊使用靜態分析工具/源代碼分析
    的頭像 發表于 07-19 12:09 ?2369次閱讀
    什么是<b class='flag-5'>靜態</b>代碼<b class='flag-5'>分析</b>?<b class='flag-5'>靜態</b>代碼<b class='flag-5'>分析</b>概述

    醫療器械軟件風險分析介紹 醫療設備軟件靜態動態分析技巧

    靜態動態分析是滿足軟件測試合規性的關鍵,但這些過程并不容易實施。這篇文章提供了有關如何自動化該過程的專家指南。
    的頭像 發表于 08-11 11:07 ?3473次閱讀
    醫療器械軟件風險<b class='flag-5'>分析</b>介紹 醫療設備軟件<b class='flag-5'>靜態</b>和<b class='flag-5'>動態</b><b class='flag-5'>分析</b>技巧

    動態電路和靜態電路的區別

    動態電路和靜態電路的區別 動態電路和靜態電路是電路的兩種基本類型,它們在電子設備中的作用與應用不同。本文將詳細介紹
    的頭像 發表于 09-17 10:47 ?6984次閱讀

    網絡靜態ip和動態區別

    網絡靜態IP和動態IP是指在網絡中分配給設備的唯一標識符,下面將詳細探討網絡靜態IP和動態IP的區別。 一、定義
    的頭像 發表于 11-27 14:46 ?3406次閱讀

    靜態電流什么意思 靜態電流和動態電流的區別

    靜態電流什么意思 靜態電流和動態電流的區別? 靜態電流是指電荷在不發生移動的情況下所產生的電流。在靜電場中,電荷通過金屬導線或其他連續的導電
    的頭像 發表于 12-19 14:02 ?4422次閱讀