微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 覆盖测试中高效代码插桩技术的研究

覆盖测试中高效代码插桩技术的研究

时间:01-09 来源:微计算机信息 蔡建平 路翠 点击:

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

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

  根据不同测试要求采用不用的插桩策略,每次在不同的位置植入相应的探针,使得每次只是植入有限的探针,这就更大大减少了代码的膨胀率和插桩的速度。

  3 实验

  本文采用了一个 1000 行的程序作为被测程序,分别采用使用整体插桩的工具和我们自己开发的工具进行测试,结果发现前者插桩的时间和代码膨胀率分别为3s 和35%,后者插桩的平均时间和平均的代码膨胀率为1s 和8%,插桩时间得到明显提升,代码膨胀率明显减少。

  采用以上的程序插桩技术,除了常用的覆盖测试策略外,我们还可以实现MC/DC 和LCSAJ 测试。

  4 结束语

  本文详细介绍了覆盖测试中的高效代码插桩技术,由此可以看出在实际中覆盖测试分析采用的覆盖策略的多样性决定了程序插桩时需要识别程序的特征的复杂性。同时在软件覆盖测试工具的开发中,如果从软件的分析开始,就有合理的程序划分、适当的选定插桩位置和插桩策略,就可以满足多种测试要求,使得测试能够合理又快速的实现。如果再加上自动化测试工具的支持,那就可以大大提高测试的效率。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top