什麽是“灰盒測試”?

灰盒測試,是參照更為(wèi)人所熟知的(de)“白盒測試”和(hé)“黑盒測試”概念的(de)一(yī)種通俗的(de)說法,通常是指介于這兩種測試之間的(de)測試方法。灰盒測試多用于應用程序的(de)集成測試階段,不僅關注針對集成系統的(de)輸入、輸出值的(de)正确性,同時也對程序的(de)內(nèi)部執行邏輯進行分析、監測或者驗證。

灰盒測試-1

灰盒測試的(de)常見方法就是在應用程序系統執行的(de)過程中,利用插裝、調試、日志或信号監測等多種技術對軟件的(de)內(nèi)部執行過程進行分析、度量和(hé)驗證,實現對軟件內(nèi)部缺陷的(de)更全面的(de)檢測。對不同的(de)應用程序,灰盒測試的(de)目标也會有所差異。

對有高(gāo)可(kě)靠性要求的(de)嵌入式應用程序,灰盒測試的(de)主要目标包括:

    • 對軟件內(nèi)部執行路徑的(de)監測和(hé)驗證
    • 對任務、模塊或函數的(de)執行時間性能的(de)檢測和(hé)優化
    • 對中間變量、進程、CPU占用率和(hé)輸出信号等中間狀态的(de)跟蹤和(hé)度量
    • 對軟件測試過程的(de)覆蓋率分析

對于上位機軟件或Web應用程序,灰盒測試往往還會包含諸如(rú)安全漏洞檢測、壓力測試、軟件成分分析等更廣範圍的(de)目标。

為(wèi)什麽要做(zuò)灰盒測試? 

因為(wèi),

    • 黑盒測試關注系統的(de)輸入輸出接口的(de)正确性,但無法對應用程序內(nèi)部的(de)錯誤進行分析和(hé)定位
    • 白盒測試可(kě)以分别嚴格測試每個函數/模塊,但是無法反映系統集成的(de)缺陷,并且測試的(de)效率太低(dī)

灰盒測試正好可(kě)以彌補二者的(de)不足,兼顧了測試的(de)效率又能洞悉系統內(nèi)部執行過程。灰盒測試也許還沒有達到像“白盒測試”和(hé)“黑盒測試”那樣的(de)普遍地(dì)、标準化地(dì)應用到常見的(de)研發流程中,然而灰盒測試的(de)思想和(hé)方法對多數軟件研發人員來說可(kě)能并不陌生,如(rú)使用調試器的(de)單步執行觀察程序執行邏輯、手動插入print()獲取執行日志等方法。要想将灰盒測試的(de)方案推廣到研發流程中,隻需要一(yī)個集成化的(de)、易用的(de)和(hé)自(zì)動化的(de)解決方案。

難點和(hé)挑戰

  • 手動灰盒測試效率太低(dī),如(rú)單步調試或手動插裝print()輸出日志,且對系統資源損耗大,難以支持偶發的(de)、不固定表現的(de)bug的(de)定位

  • 日志方式對數據采集、分析和(hé)重複利用比較困難,對海量的(de)數據缺乏有效、直觀的(de)分析手段

  • 時間性能測試,主要依賴于示波器等儀器儀表,重複叠代太耗時耗力,且對軟件內(nèi)部模塊的(de)性能分析比較繁瑣,也不易定位到問題根源

  • 測試方法過于零散,無法将灰盒測試形成标準化的(de)連續測試流程

解決方案

  • 利用DT10灰盒測試和(hé)系統動态跟蹤調試工具極簡的(de)插裝算法,自(zì)動在軟件內(nèi)部插入測試點,用過對測試點的(de)檢測,實現對軟件內(nèi)部執行過程的(de)跟蹤。插裝膨脹率低(dī)、效率高(gāo)

  • 對嵌入式系統,提供基于多種标準接口的(de)數據傳輸方式,包括以太網口、串口、GPIO/SPI, 異步總線口,CAN總線等,系統資源消耗小

  • DT10支持進行長(cháng)達一(yī)個月的(de)不間斷測試,适用于對有可(kě)靠性要求的(de)軟件系統的(de)灰盒測試

  • 基于DT10 Dynamic Tracer硬件采集的(de)測試數據,提供豐富的(de)分析、驗證和(hé)報告功能,包括複雜缺陷回溯調試,性能測試、CPU負載分析、變量監控、內(nèi)存分析、邏輯分析、硬件監測和(hé)覆蓋率統計等常用灰盒測試功能

  • DT10的(de)對硬件環境的(de)适用範圍廣泛,支持對多核、多CPU環境的(de)測試

  • 不限軟件開發編譯器和(hé)目标操作系統,對嵌入式環境的(de)适用性高(gāo)

相關資源

  • 白皮書

  • 博客

RELATED RESOURCES

下載申請

是否需要技術支持

驗證碼

溫馨提示:

我們将通過電子(zǐ)郵件向您發送下載地(dì)址,請核對您填寫的(de)工作郵箱是否正确。

提 交