程式插樁簡介

2022-08-27 03:33:14 字數 666 閱讀 5955

一種基本的動態測試方法,向源程式中新增一些語句實現對程式**的執行、變數的變化等情況的檢查,可以獲得程式的控制流和資料流資訊。如果我們想要了解乙個程式在某次執行中可執行語句被覆蓋的情況,或是每個語句的實際執行次數,最好的辦法就是利用插裝技術,它在軟體測試技術上占有非常高的地位。最簡單的插裝:在程式中插入列印語句printf(「 ...」)語句。

a.程式的第一條語句;

b.分支語句的開始;

c.迴圈語句的開始;

d.下乙個入口語句之前的語句;

e.程式的結束語句;

f.分支語句的結束;

g.迴圈語句的結束。

①語句覆蓋探針(基本塊探針):在基本塊的入口和出口處,分別植入相應的探針,以確定程式執行時該基本塊是否被覆蓋。 

②分支覆蓋探針:c/c++語言中,分支由分支點確定。對於每個分支,在其開始處植入乙個相應的探針,以確定程式執行時該分支是否被覆蓋。 

③條件覆蓋探針:c/c++語言中,if, swich,while, do-while, for 幾種語法結構都支援條件判定,在每個條件表示式的布林表示式處植入探針,進行變數跟蹤取值,以確定其被覆蓋情況。

①探測哪些資訊;

②在什麼位置設定探針;

③設定多少個探測點;

④特定位置插入用以判斷變數特性的語句。

c語言插樁例項:

dyninst動態插樁示例

dyninst動態插樁示例 版本 dyninst 9.3.1 gcc 4.8.4 簡述 示例 演示動態插樁,在程式執行時動態改變執行的函式。被插裝的程式 mutatee 原始碼 test dyninst.c include include void old void new int main ret...

樁程式和驅動程式

樁模組和驅動模組 以c語言為例 很多人對樁模組和驅動模組的概念會搞不清楚,那麼下面來介紹這兩個概念 模組結構例項圖 假設現在專案組把任務分給了7個人,每個人負責實現乙個模組。你負責的是b模組,你很優秀,第乙個完成了編碼工作,現在需要開展單元測試工作,先分析結構圖 1 由於b模組不是最頂層模組,所以它...

軟體測試 二進位制插樁

二進位制插樁作用 1.程式執行時攔截,在執行時向程式注入我們自己的 2.除錯程式 3.tracing and logging,分析函式呼叫關係圖,api覆蓋資料。4.提取資料,從程式中提取一些感興趣的關鍵data。5.改變程式行為,如程式打補丁,模擬資料 emulation 一般二進位制插樁方法 l...