国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

7年經驗之談 —— 什么是模糊測試?

這篇具有很好參考價值的文章主要介紹了7年經驗之談 —— 什么是模糊測試?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

背景:近年來,隨著信息技術的發(fā)展,各種新型自動化測試技術如雨后春筍般出現(xiàn)。其中,模糊測試(fuzz testing)技術開始受到行業(yè)關注,它尤其適用于發(fā)現(xiàn)未知的、隱蔽性較強的底層缺陷。這里,我們將結合AFL開源工具,對模糊測試的基本概念和流程進行說明。

01、模糊測試的定義

模糊測試的核心思想是,根據(jù)一定的規(guī)則,自動或半自動生成的隨機數(shù)據(jù),然后將產生的數(shù)據(jù)輸入到程序中,并監(jiān)視程序是否有異常出現(xiàn),以發(fā)現(xiàn)可能的程序錯誤,如內存泄漏、系統(tǒng)崩潰、未處理的異常等。

當一個模糊測試生成器開始啟動并運行后,它將自己尋找漏洞,并不需要人工干預,非常有助于發(fā)現(xiàn)傳統(tǒng)測試方法或手動審計無法檢測到的缺陷。

模糊測試包括幾個基本的測試步驟:確定被測系統(tǒng)->給定輸入->生成測試用例->灌入用例進行測試->監(jiān)控目標程序情況->輸出崩潰日志。

圖一:模糊測試流程

02、測試用例生成算法

模糊測試用例的生成算法主要有兩種:

1)基于變異:根據(jù)已知數(shù)據(jù)樣本,通過變異的方法生成新的測試用例;

例如對一個圖片文件進行變異,用戶需要提供一個相應格式的圖片文件,變異生成器會基于該圖片進行變異。著名的開源模糊測試工具AFL就是基于變異生成用例。

2)基于生成:根據(jù)已知的協(xié)議或接口規(guī)范,建模并生成測試用例;

某些程序可能對輸入有嚴格的規(guī)則要求,例如必須是SQL語句、或者給定的協(xié)議規(guī)范等。測試引擎需要在測試前預先學習對應的語法語義規(guī)則,對其進行建模,在此基礎上才能變異出有效的測試用例。?

03、測試工具介紹

當前已經有很多開源的模糊測試工具,其中使用較為廣泛的是AFL(American Fuzzy Lop),由谷歌工程師邁克爾·扎里斯基(Michal Zalewski)開發(fā),該項目已經由Github托管。

在執(zhí)行前,需要對被測程序源碼進行插樁

(instrumentation),以獲知被測程序的運行信息。在執(zhí)行過程中,它通過記錄輸入樣本的代碼覆蓋率,從而調整輸入樣本以提高覆蓋率,增加發(fā)現(xiàn)漏洞的概率。其工作流程大致如下:

1. 從源碼編譯程序時進行插樁,以記錄代碼覆蓋率;

2. 選擇一些輸入文件,作為初始測試集加入輸入隊列;

3. 將隊列中的文件按一定的策略進行“突變”;

4. 如果經過變異文件更新了覆蓋范圍,則將其保留添加到隊列中;

5. 上述過程一直循環(huán)進行,期間觸發(fā)crash的文件會被記錄下來。

圖二:AFL模糊測試的基本流程

AFL的優(yōu)點是可以輕松部署,配置相對簡單,測試效率相對較高。原生的AFL僅適配于C/C++程序的測試,不過目前已經衍生出很多分支,用于適配其他語言的模糊測試,如針對JAVA程序的Kelinci等。

04、用例變異方式

AFL是采用遺傳算法,基于變異生成的測試用例,變異的主要類型有下面這幾種:

· Bit flip,按位翻轉,1變?yōu)?,0變?yōu)?

· Arithmetic,整數(shù)加/減算術運算

· Interest,把一些特殊內容替換到原文件中

· Dictionary,把自動生成或用戶提供的token替換或插入到原文件中

· Havoc,又稱“大破壞”,是前面幾種變異的組合

· Splice,又稱“絞接”,將兩個文件拼接起來得到一個新文件

AFL需要一些初始輸入數(shù)據(jù)(也稱種子文件)作為模糊測試的起點,這些輸入可以是毫無意義的數(shù)據(jù)。AFL通過上述方式自動確定文件的格式和結構。當輸入隊列中的全部文件都完成變異測試,則完成了一個Cycle(周期),如果用戶不停止執(zhí)行,種子文件將會不斷變異下去。

圖三:AFL監(jiān)控臺,顯示當前為Cycle 6, Splice 12階段

扎里斯基曾經給出一個有趣的例子,對djpeg(一個Linux系統(tǒng)上的圖像處理程序)進行模糊測試,在僅初始輸入“hello”字符串的情況下,最后憑空生成了大量jpeg的圖像。

綜上所述,我們簡要介紹了模糊測試的概念以及開源工具AFL的測試流程,歡迎持續(xù)關注。

最后如果你想學習自動化測試和需要軟件測試資料,歡迎加入筆者的交流群:320231853,里面會有很多測試資源和大佬答疑解惑,我們一起交流一起學習!

搜索

復制文章來源地址http://www.zghlxwxcb.cn/news/detail-733869.html

到了這里,關于7年經驗之談 —— 什么是模糊測試?的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 8年經驗之談 —— Android自動化測試中如何處理各種彈窗?

    8年經驗之談 —— Android自動化測試中如何處理各種彈窗?

    在UI自動化測試中彈窗是影響自動化用例穩(wěn)定性的一大因素,如何方便快捷的處理各種情況下的彈窗,是搞UI自動化測試必須要面臨的問題. 安裝APP時的系統(tǒng)彈窗 此類彈窗一般有兩種,一種是自動化測試框初始化本身也需要安裝一些APP,比如uiautomator2會安裝atx-agent、com.github.

    2024年02月11日
    瀏覽(21)
  • 【控制項目風險經驗之談】

    項目風險是指在項目執(zhí)行期間可能會影響項目目標、進度、成本或質量的不確定因素。在項目管理中,項目風險是不可避免的,因此需要采取措施來控制和管理項目風險。本篇文章將詳細介紹如何控制項目風險的經驗之談。 一、確定風險管理計劃 在項目啟動階段,應該制定

    2024年02月14日
    瀏覽(23)
  • 9大Python常用技巧 經驗之談

    整理用戶輸入的問題在編程過程中極為常見。通常情況下,將字符轉換為小寫或大寫就夠了,有時你可以使用正則表達式模塊「 Regex 」完成這項工作。但是如果問題很復雜,可能有更好的方法來解決: 在本例中,你可以看到空格符「 n 」和「 t 」都被替換成了單個空格,

    2024年02月03日
    瀏覽(22)
  • 網絡安全—入職大廠經驗之談

    網絡安全—入職大廠經驗之談

    大三想去實習,趁現(xiàn)在該干什么才能去大廠實習呢?想做一些事豐富一下自己的簡歷,只有打ctf?還是挖洞?非常迷茫。 或者入職轉行網絡安全行業(yè)應該怎么做?對于接下來的職業(yè)規(guī)劃學習計劃有什么打算? 1. 你的專業(yè)知識一定要學得扎實。這不是指要你考試考多高的分,

    2024年02月16日
    瀏覽(21)
  • 程序員搞副業(yè)經驗分享:賣書、做網課,探秘前同事的經驗之談

    為了更深入了解程序員如何進行創(chuàng)收,今天與一位曾在幾年前成功通過賣書和網課獲取收益的前同事進行了交流。由于他曾有過豐富的經驗,我向他請教了一些相關經驗,以下是我想獲取的信息: 你目前還在通過做網課獲得收益嗎? 沒有。不再從事網課的主要原因有兩點:

    2024年03月09日
    瀏覽(31)
  • 局域網故障排除經驗之談 網卡故障居多

    局域網是網中各種系統(tǒng)運行的硬件平臺,其故障影響著系統(tǒng)中各項工作的順利進行。局域網的維護工作特別是故障的預防和及時排除是保證工作順利進行的保障。現(xiàn)在談一談維護工作中故障排除的一點體會。 我們知道,網絡故障可分為硬件故障和軟件故障兩大類。當排除了所

    2024年02月07日
    瀏覽(27)
  • 售前工程師,一個老網工的經驗之談

    售前工程師,一個老網工的經驗之談

    晚上好,我是老楊。 老粉應該知道,我個人的職業(yè)發(fā)展是簡單的,一開始做的是售后,后面接觸了一段售前,就直接升到項目經理了。 可以說,我對售后和售前的崗位認知都是相對比較透徹的。 但在網絡行業(yè),其實崗位遠不止這三個。 在4月初,團隊伙伴開發(fā)了一個新選題

    2024年01月21日
    瀏覽(21)
  • Cmake:Error in configuration process,project files may be invalid.Qt編譯opencv的經驗之談。

    Cmake:Error in configuration process,project files may be invalid.Qt編譯opencv的經驗之談。

    Error in configuration process,project files may be invalid. 我這個是使用cmake來 編譯opencv? +Qt。 Qt的這個路徑 要放在環(huán)境變量的path中:E:Qt5Qt5.14.1Toolsmingw730_64bin 。 出錯的原因是,沒有按順序操作Cmake界面按鈕。 1.配置CMake編譯條件 ①打開CMake(cmake-gui)。 ②選擇OpenCV安裝目錄下的源碼文

    2024年02月03日
    瀏覽(18)
  • 為什么近年來很多學校開設了集成電路專業(yè)?

    為什么近年來很多學校開設了集成電路專業(yè)?

    目錄 1.什么是集成電路 2.中國集成電路的發(fā)展現(xiàn)狀 3.美國對中國集成電路發(fā)展的打壓 4.高校開設集成電路專業(yè)對中國芯片發(fā)展的影響 ????????集成電路(Integrated Circuit,簡稱IC)是一種在半導體材料上集成了大量電子元件的電路。它通常由晶體管、電阻、電容等多種電子器

    2024年02月14日
    瀏覽(19)
  • 什么是汽車軟件的模糊測試?

    汽車軟件的模糊測試(fuzz testing)是一種在軟件開發(fā)過程中用來發(fā)現(xiàn)潛在漏洞和缺陷的測試方法。它通過輸入大量的隨機、無效或異常數(shù)據(jù)來模擬真實環(huán)境中各種可能的異常情況,以測試軟件的健壯性和穩(wěn)定性。 1. 確定模糊測試的目標:確定要測試的軟件模塊或功能。對于汽

    2024年02月15日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包