首頁常見問題正文

軟件測試培訓(xùn):目標(biāo)代碼插樁是什么意思?

更新時(shí)間:2022-08-26 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  目標(biāo)代碼插樁是指向目標(biāo)代碼(二進(jìn)制代碼)插入測試代碼獲取程序運(yùn)行信息的測試方法,也稱為動(dòng)態(tài)程序分析方法。再進(jìn)行目標(biāo)代碼插樁之前,測試人員要對目標(biāo)代碼邏輯結(jié)構(gòu)進(jìn)行分析,從而確認(rèn)需要插樁的位置。

  目標(biāo)代碼插樁對程序運(yùn)行時(shí)的內(nèi)存監(jiān)控、指令跟蹤、錯(cuò)誤檢測等有著重要的意義。相比于邏輯覆蓋法,目標(biāo)代碼插樁在測試過程中不需要代碼重新編譯或鏈接程序,并且目標(biāo)代碼的格式和具體的編程語言無關(guān),主要和操作系統(tǒng)相關(guān),因此目標(biāo)代碼插樁有著廣泛的使用。

  1.目標(biāo)代碼插樁的原理

  目標(biāo)代碼插樁法的原理是在程序運(yùn)行平臺和底層操作系統(tǒng)之間建立中間層,通過中間層檢查執(zhí)行程序、修改指令,開發(fā)人員、軟件分析工程師等對運(yùn)行的程序進(jìn)行觀察,判斷程序是否被惡意攻擊或者出現(xiàn)異常行為,從而提高程序的整體質(zhì)量。

  2.目標(biāo)代碼插樁法的執(zhí)行模式

  由于目標(biāo)代碼是可執(zhí)行的二進(jìn)制程序,因此目標(biāo)代碼的插樁可分為兩種情況:一種是對未運(yùn)行的目標(biāo)代碼插樁,從頭到尾插入測試代碼,然后執(zhí)行程序。這種方式適用于需要實(shí)現(xiàn)完整系統(tǒng)或仿真時(shí)進(jìn)行的代碼覆蓋測試。另一種情況是向正在運(yùn)行的程序插入測試代碼,用來檢測程序在特定時(shí)間的運(yùn)行狀態(tài)信息。

  目標(biāo)代碼插樁具有以下3種執(zhí)行模式。

  (1)即時(shí)模式(Just-In-Time):原始的二進(jìn)制或可執(zhí)行文件沒有被修改或執(zhí)行,將修改部分的二進(jìn)制代碼生成文件副本存儲在新的內(nèi)存區(qū)域中,在測試時(shí)僅執(zhí)行修改部分的目標(biāo)代碼。

  (2)解釋模式(Interpretation Mode):在解釋模式中目標(biāo)代碼被視為數(shù)據(jù),測試人員插入的測試代碼作為目標(biāo)代碼指令的解釋語言,每當(dāng)執(zhí)行一條目標(biāo)代碼指令,程序就會在測試代碼中查找并執(zhí)行相應(yīng)的替代指令,測試通過替代指令的執(zhí)行信息就可以獲取程序的運(yùn)行信息。

  (3)探測模式(Probe Mode):探測模式使用新指令覆蓋舊指令進(jìn)行測試,這種模式在某些體系結(jié)構(gòu)(如x86)中比較好用。

分享到:
在線咨詢 我要報(bào)名
和我們在線交談!