程序插桩简介

程序插桩简介

        一种基本的动态测试方法,向源程序中添加一些语句实现对程序代码的执行、变量的变化等情况的检查,可以获得程序的控制流和数据流信息。如果我们想要了解一个程序在某次运行中可执行语句被覆盖的情况,或是每个语句的实际执行次数,最好的办法就是利用插装技术,它在软件测试技术上占有非常高的地位。最简单的插装:在程序中插入打印语句printf(“ ...”)语句。

1.插桩位置:

a.程序的第一条语句;

b.分支语句的开始;

c.循环语句的开始;

d.下一个入口语句之前的语句;

e.程序的结束语句;

f.分支语句的结束;

g.循环语句的结束。 

2.插桩策略:

①语句覆盖探针(基本块探针):在基本块的入口和出口处,分别植入相应的探针,以确定程序执行时该基本块是否被覆盖。 

②分支覆盖探针:c/c++语言中,分支由分支点确定。对于每个分支,在其开始处植入一个相应的探针,以确定程序执行时该分支是否被覆盖。 

③条件覆盖探针:c/c++语言中,if, swich,while, do-while, for 几种语法结构都支持条件判定,在每个条件表达式的布尔表达式处植入探针,进行变量跟踪取值,以确定其被覆盖情况。

3.设计插桩程序需要注意的几点:

①探测哪些信息;

②在什么位置设置探针;

③设置多少个探测点;

④特定位置插入用以判断变量特性的语句。

 

C语言插桩实例:https://blog.csdn.net/spring_willow/article/details/72887192


原文链接:https://blog.csdn.net/spring_willow/article/details/70576780

posted @ 2020-03-28 22:38  `'手可摘星辰  阅读(2595)  评论(0编辑  收藏  举报