• 程序插桩简介


    程序插桩简介

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

  • 相关阅读:
    Python处理Excel文件
    WebSocket使用中Stomp Client连接报ERROR CODE 200的解决办法
    深入理解Java虚拟机——读书笔记
    主要排序算法的Java实现
    LeetCode 67 Add Binary
    LeetCode 206 单链表翻转
    POJ 2388
    POJ 1207 3N+1 Problem
    POJ 1008 Maya Calendar
    关于指针的一些基本常识
  • 原文地址:https://www.cnblogs.com/skzxc/p/12589950.html
Copyright © 2020-2023  润新知