一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

靜態(tài)分析和動(dòng)態(tài)分析的區(qū)別

麥克泰技術(shù) ? 來(lái)源:麥克泰技術(shù) ? 2023-05-16 16:03 ? 次閱讀

摘要

靜態(tài)分析和動(dòng)態(tài)分析是一種雙管齊下的方法,可以在可靠性、錯(cuò)誤檢測(cè)、效率和安全性方面改進(jìn)開(kāi)發(fā)過(guò)程。為什么它們都很重要?它們又有什么區(qū)別呢?

前言

在開(kāi)發(fā)早期,發(fā)現(xiàn)并修復(fù)bug在許多方面都有好處。它可以減少開(kāi)發(fā)時(shí)間,降低成本,并且防止數(shù)據(jù)泄露或其他安全漏洞。特別是對(duì)于DevOps,盡早持續(xù)地將測(cè)試納入SDLC軟件開(kāi)發(fā)生命周期是非常有幫助的。

這就是動(dòng)態(tài)和靜態(tài)分析測(cè)試的用武之地。它們?cè)赟DLC中各自服務(wù)于不同的目的,同時(shí)也為任何開(kāi)發(fā)團(tuán)隊(duì)提供獨(dú)特且?guī)缀跫磿r(shí)的投資回報(bào)率。

靜態(tài)與動(dòng)態(tài)分析:了解兩者的區(qū)別

靜態(tài)代碼分析是一個(gè)廣義的術(shù)語(yǔ),用于描述幾種不同類(lèi)型的分析。然而,所有這些分析都有一個(gè)共同的特征:它們不需要代碼執(zhí)行即可運(yùn)行。

相比之下,動(dòng)態(tài)分析需要代碼執(zhí)行。盡管還有其他區(qū)別,但這一特征是區(qū)分這兩種測(cè)試方法的根本因素。

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

每種策略需要什么。

需要使用測(cè)試類(lèi)型。

協(xié)助該過(guò)程的工具。

什么是靜態(tài)分析?

靜態(tài)代碼分析測(cè)試可以包括各種類(lèi)型,其中兩種主要的類(lèi)型是基于模式的測(cè)試和基于流的測(cè)試。

基于模式的靜態(tài)分析可以查找出違反定義編碼規(guī)則的代碼。除了確保代碼滿(mǎn)足合規(guī)性或內(nèi)部計(jì)劃的統(tǒng)一期望外,它還可以幫助團(tuán)隊(duì)預(yù)防缺陷,如資源泄漏、性能和安全問(wèn)題、邏輯錯(cuò)誤和API濫用等。

基于流的靜態(tài)分析可以查找和分析代碼的各種路徑。這可以通過(guò)控制流(執(zhí)行行(hang)的順序)和數(shù)據(jù)流(變量或類(lèi)似實(shí)體可以被創(chuàng)建、改變、使用和銷(xiāo)毀的順序)來(lái)實(shí)現(xiàn)。這些過(guò)程可以暴露出導(dǎo)致關(guān)鍵缺陷的問(wèn)題,例如:

內(nèi)存損壞(緩沖區(qū)覆蓋)

內(nèi)存訪問(wèn)違規(guī)

空指針解引用

競(jìng)態(tài)條件(Race conditions)

死鎖(Deadlocks)

它還可以通過(guò)繞過(guò)安全關(guān)鍵代碼(如身份驗(yàn)證或加密代碼)的路徑來(lái)檢測(cè)安全問(wèn)題。

此外,度量分析包括對(duì)代碼的各個(gè)方面進(jìn)行衡量和可視化。它可以幫助檢測(cè)現(xiàn)有的缺陷,但更常見(jiàn)的是,為后續(xù)代碼維護(hù)時(shí),提前消除可能帶來(lái)未知缺陷的可能性。這是通過(guò)發(fā)現(xiàn)代碼中的復(fù)雜性和冗長(zhǎng)性來(lái)完成的,例如:

過(guò)大的組件

過(guò)多的循環(huán)嵌套

一系列過(guò)于冗長(zhǎng)的判定

復(fù)雜的組件間依賴(lài)關(guān)系

什么是動(dòng)態(tài)分析?

動(dòng)態(tài)分析有時(shí)被稱(chēng)為運(yùn)行時(shí)錯(cuò)誤檢測(cè),動(dòng)態(tài)分析是測(cè)試類(lèi)型之間的區(qū)別開(kāi)始變得模糊的地方。動(dòng)態(tài)應(yīng)用程序安全測(cè)試(DAST)是一種分析測(cè)試,目的是檢查測(cè)試項(xiàng)目而不是執(zhí)行它。這種白盒測(cè)試檢查的是內(nèi)部行為,并非外部行為。然而測(cè)試中的代碼必須被執(zhí)行。這是通過(guò)運(yùn)行與動(dòng)態(tài)測(cè)試相同的黑盒測(cè)試來(lái)完成的。

這意味著動(dòng)態(tài)分析可以在內(nèi)部故障發(fā)生的瞬間檢測(cè)并報(bào)告這些故障。這使得測(cè)試人員更容易精確地將這些故障與測(cè)試行動(dòng)關(guān)聯(lián)起來(lái),以便進(jìn)行事故報(bào)告。類(lèi)似于好的靜態(tài)分析,DAST提供了完整的技術(shù)細(xì)節(jié),使開(kāi)發(fā)人員能夠隔離和修復(fù)潛在的缺陷。

DAST還擴(kuò)展了所有級(jí)別的測(cè)試能力,從單元測(cè)試到驗(yàn)收,使檢測(cè)內(nèi)部故障成為可能,這些故障指向在測(cè)試停止后發(fā)生或?qū)⒁l(fā)生的無(wú)法觀察到的外部故障。

靜態(tài)分析的利弊

凡事皆有利弊,靜態(tài)分析測(cè)試也有優(yōu)點(diǎn)和缺點(diǎn)。

靜態(tài)分析的利弊

優(yōu)點(diǎn):

1. 在不執(zhí)行源代碼的情況下評(píng)估源代碼;

2. 分析整個(gè)代碼的漏洞和錯(cuò)誤;

3. 遵循定制的、定義好的規(guī)則;

4. 增強(qiáng)開(kāi)發(fā)人員的責(zé)任感;

5. 具有自動(dòng)化能力;

6. 盡早突出錯(cuò)誤并減少修復(fù)漏洞所需的時(shí)間。

缺點(diǎn)

1. 可能返回誤報(bào)和漏報(bào),會(huì)分散開(kāi)發(fā)人員的注意力;

2. 手動(dòng)操作需要很長(zhǎng)時(shí)間;

3. 無(wú)法找到運(yùn)行時(shí)環(huán)境中出現(xiàn)的錯(cuò)誤或漏洞;

4. 決定應(yīng)用哪些行業(yè)編碼標(biāo)準(zhǔn)可能會(huì)令人困擾;

5. 確定偏離違反規(guī)則是否合適,可能具有挑戰(zhàn)性。

雖然這些缺點(diǎn)看起來(lái)令人生畏,但靜態(tài)分析的缺點(diǎn)可以用兩件事來(lái)補(bǔ)充:

自動(dòng)化靜態(tài)分析

使用動(dòng)態(tài)分析技術(shù)

為什么靜態(tài)代碼分析如此有價(jià)值?

所有這些類(lèi)型的靜態(tài)分析都有一個(gè)共同點(diǎn):它們會(huì)涉及掃描或檢查程序源代碼。

這是一種快速而簡(jiǎn)單的暴露關(guān)鍵缺陷的方法。他實(shí)現(xiàn)了100%的覆蓋率和100%的客觀結(jié)果。

不斷地執(zhí)行這樣的靜態(tài)代碼分析是有意義的,因?yàn)樗峁┝诉@些可操作的結(jié)果,減少了成本和開(kāi)發(fā)時(shí)間,增加了代碼覆蓋率,等等。

超越靜態(tài)分析的范疇

靜態(tài)掃描提供信息來(lái)幫助預(yù)測(cè)代碼集成和執(zhí)行時(shí)可能會(huì)發(fā)生的情況。它根據(jù)工具認(rèn)為的缺陷標(biāo)準(zhǔn)來(lái)檢測(cè)缺陷。通常也可以根據(jù)您的偏好和優(yōu)先級(jí)進(jìn)行定制。

但是,工具不能告訴您測(cè)試中或生產(chǎn)中的系統(tǒng)何時(shí)交付了意外的、不適當(dāng)?shù)幕虿粶?zhǔn)確的結(jié)果。

這里的挑戰(zhàn)是難以觀察意想不到的行為。例如,對(duì)于用戶(hù)、測(cè)試人員或測(cè)試執(zhí)行工具來(lái)說(shuō),事務(wù)可能看起來(lái)正確地進(jìn)行,但實(shí)際上,組件拋出了一個(gè)未處理的異常,并且未能正確地處理它。一個(gè)控制系統(tǒng)可能會(huì)在測(cè)試三天內(nèi)快速正確地響應(yīng),但可能會(huì)在生產(chǎn)的第四天出現(xiàn)內(nèi)存泄漏并導(dǎo)致崩潰。

通過(guò)使用靜態(tài)代碼分析工具修復(fù)所有檢測(cè)到的缺陷,并不能保證不會(huì)有其他缺陷導(dǎo)致類(lèi)似的失敗。這就是為什么將失敗的定義應(yīng)用于內(nèi)部和外部行為是很重要的,即使在集成之后也是如此。內(nèi)部故障必須在外部故障出現(xiàn)之前檢測(cè)到。

結(jié)合靜態(tài)和動(dòng)態(tài)分析的最佳實(shí)踐

將靜態(tài)和動(dòng)態(tài)分析相結(jié)合,是獲得可操作結(jié)果、減少錯(cuò)誤發(fā)生、增加錯(cuò)誤檢測(cè)并創(chuàng)建更安全代碼的最佳選擇。兩者并無(wú)優(yōu)劣之分。它們像精心制作的瑞士手表的所有齒輪一樣協(xié)同工作。

要同時(shí)使用靜態(tài)和動(dòng)態(tài)分析,請(qǐng)遵循這些最佳實(shí)踐:

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

使代碼對(duì)其他開(kāi)發(fā)人員具有可讀性和可重用性;

在SDLC的正確點(diǎn)使用正確的方法——在早期使用靜態(tài)方法,在運(yùn)行時(shí)環(huán)境中使用動(dòng)態(tài)方法;

利用這兩種方法對(duì)您的項(xiàng)目進(jìn)行更全面的概述;

避免只依賴(lài)一種測(cè)試方法的陷阱,一個(gè)小的疏忽可能導(dǎo)致大的問(wèn)題。

將靜態(tài)和動(dòng)態(tài)分析相結(jié)合,使團(tuán)隊(duì)能夠定位更大范圍和數(shù)量的代碼威脅。

獲取有價(jià)值的見(jiàn)解,來(lái)選擇最適合您團(tuán)隊(duì)的軟件測(cè)試解決方案。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 測(cè)試
    +關(guān)注

    關(guān)注

    8

    文章

    5569

    瀏覽量

    128058
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4880

    瀏覽量

    69995
  • 動(dòng)態(tài)分析
    +關(guān)注

    關(guān)注

    1

    文章

    19

    瀏覽量

    7320
  • 靜態(tài)分析
    +關(guān)注

    關(guān)注

    1

    文章

    42

    瀏覽量

    3985

原文標(biāo)題:靜態(tài)分析和動(dòng)態(tài)分析

文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基本共射放大電路的組成、靜態(tài)分析動(dòng)態(tài)分析

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

    放大電路的動(dòng)靜態(tài)分析求教

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

    傳統(tǒng)靜態(tài)配置方法與動(dòng)態(tài)配置方法的區(qū)別在哪?

    傳統(tǒng)靜態(tài)配置方法有什么缺點(diǎn)?MAC地址和IP地址的動(dòng)態(tài)配置方法是什么?傳統(tǒng)靜態(tài)配置方法與動(dòng)態(tài)配置方法的區(qū)別在哪?
    發(fā)表于 05-27 06:51

    靜態(tài)動(dòng)態(tài)時(shí)序模擬的優(yōu)缺點(diǎn)

    不能保證100%的覆蓋率。如果到了門(mén)級(jí)的仿真將非常消耗時(shí)間。 靜態(tài)時(shí)序分析靜態(tài)時(shí)序分析只能分析時(shí)序要求而不能進(jìn)行功能驗(yàn)證。不需要測(cè)試向量,能
    發(fā)表于 09-04 14:26

    動(dòng)態(tài)BGP與靜態(tài)BGP的區(qū)別

    動(dòng)態(tài)BGP與靜態(tài)BGP的區(qū)別 動(dòng)態(tài)BGP與靜態(tài)BGP的區(qū)別 1.
    發(fā)表于 12-01 16:55

    動(dòng)態(tài)ip、靜態(tài)ip、pppoe撥號(hào)的區(qū)別

    在設(shè)置無(wú)線路由器上網(wǎng)時(shí),上方方式有pppoe撥號(hào)(寬帶撥號(hào)、ADSL撥號(hào))、動(dòng)態(tài)IP(DHCP、自動(dòng)獲取IP)、靜態(tài)IP(固定IP)這個(gè)選項(xiàng);那么動(dòng)態(tài)ip、靜態(tài)ip、pppoe撥號(hào)這3
    發(fā)表于 12-27 11:31 ?6.4w次閱讀
    <b class='flag-5'>動(dòng)態(tài)</b>ip、<b class='flag-5'>靜態(tài)</b>ip、pppoe撥號(hào)的<b class='flag-5'>區(qū)別</b>

    時(shí)序分析靜態(tài)分析基礎(chǔ)教程

    本文檔的主要內(nèi)容詳細(xì)介紹的是時(shí)序分析靜態(tài)分析基礎(chǔ)教程。
    發(fā)表于 01-14 16:04 ?14次下載
    時(shí)序<b class='flag-5'>分析</b>的<b class='flag-5'>靜態(tài)</b><b class='flag-5'>分析</b>基礎(chǔ)教程

    雙極性晶體管的動(dòng)態(tài)分析

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

    什么是靜態(tài)分析?如何管理早期靜態(tài)分析報(bào)告

    簡(jiǎn)單來(lái)說(shuō),靜態(tài)分析是在不執(zhí)行代碼的情況下檢查源代碼和二進(jìn)制代碼的過(guò)程,通常用于查找bug的前期準(zhǔn)備或評(píng)估代碼質(zhì)量。與需要運(yùn)行程序的動(dòng)態(tài)分析(例如Parasoft Insure ++)不
    的頭像 發(fā)表于 11-01 11:35 ?6402次閱讀

    什么是完備靜態(tài)分析?

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

    什么是靜態(tài)代碼分析靜態(tài)代碼分析概述

    靜態(tài)分析可幫助面臨壓力的開(kāi)發(fā)團(tuán)隊(duì)。高質(zhì)量的版本需要按時(shí)交付。需要滿(mǎn)足編碼和合規(guī)性標(biāo)準(zhǔn)。錯(cuò)誤不是一種選擇。 這就是開(kāi)發(fā)團(tuán)隊(duì)使用靜態(tài)分析工具/源代碼分析
    的頭像 發(fā)表于 07-19 12:09 ?1742次閱讀
    什么是<b class='flag-5'>靜態(tài)</b>代碼<b class='flag-5'>分析</b>?<b class='flag-5'>靜態(tài)</b>代碼<b class='flag-5'>分析</b>概述

    醫(yī)療器械軟件風(fēng)險(xiǎn)分析介紹 醫(yī)療設(shè)備軟件靜態(tài)動(dòng)態(tài)分析技巧

    靜態(tài)動(dòng)態(tài)分析是滿(mǎn)足軟件測(cè)試合規(guī)性的關(guān)鍵,但這些過(guò)程并不容易實(shí)施。這篇文章提供了有關(guān)如何自動(dòng)化該過(guò)程的專(zhuān)家指南。
    的頭像 發(fā)表于 08-11 11:07 ?2540次閱讀
    醫(yī)療器械軟件風(fēng)險(xiǎn)<b class='flag-5'>分析</b>介紹 醫(yī)療設(shè)備軟件<b class='flag-5'>靜態(tài)</b>和<b class='flag-5'>動(dòng)態(tài)</b><b class='flag-5'>分析</b>技巧

    動(dòng)態(tài)電路和靜態(tài)電路的區(qū)別

    動(dòng)態(tài)電路和靜態(tài)電路的區(qū)別 動(dòng)態(tài)電路和靜態(tài)電路是電路的兩種基本類(lèi)型,它們?cè)陔娮釉O(shè)備中的作用與應(yīng)用不同。本文將詳細(xì)介紹
    的頭像 發(fā)表于 09-17 10:47 ?5549次閱讀

    網(wǎng)絡(luò)靜態(tài)ip和動(dòng)態(tài)區(qū)別

    網(wǎng)絡(luò)靜態(tài)IP和動(dòng)態(tài)IP是指在網(wǎng)絡(luò)中分配給設(shè)備的唯一標(biāo)識(shí)符,下面將詳細(xì)探討網(wǎng)絡(luò)靜態(tài)IP和動(dòng)態(tài)IP的區(qū)別。 一、定義
    的頭像 發(fā)表于 11-27 14:46 ?1990次閱讀

    靜態(tài)電流什么意思 靜態(tài)電流和動(dòng)態(tài)電流的區(qū)別

    靜態(tài)電流什么意思 靜態(tài)電流和動(dòng)態(tài)電流的區(qū)別? 靜態(tài)電流是指電荷在不發(fā)生移動(dòng)的情況下所產(chǎn)生的電流。在靜電場(chǎng)中,電荷通過(guò)金屬導(dǎo)線或其他連續(xù)的導(dǎo)電
    的頭像 發(fā)表于 12-19 14:02 ?3024次閱讀