wings单元测试自动生成技术

程序级测试用例自动生成技术的特性

  • Wings是智能的全自动测试用例驱动生成系统,可以将任意复杂参数结构逐步分解为基本数据类型,并全自动生成测试驱动程序和参数捕获程序。
  • Wings支持面向过程C语言以及面向对象C++语言的驱动生成和参数捕获,能够支持高级语言特性和基本的内置类型,支持被测函数运行必要的全局变量的构建和赋值。
  • 支持多层次的可视化的数据表格来对变量进行赋值,而无需关注驱动程序本身。数据表格可以表达任意深度和多层次的数据关系,用户只需要对表格数据进行编辑,自动生成的驱动程序,会自动完成表格数据的读取和参数赋值的构造过程。
  • 能够区分系统数据类型和用户自定义类型,对于复杂的约定俗成系统类型可由用户自定义扁平式赋值模板,例如std::vector类型,而不是把复杂的系统变量全部展开,内部集成常用系统类型的模板

wings整体框架图

首先wings利用代码静态分析技术,提取被测程序的主干信息,主要步骤如下:

  1. 获取不同平台的编译数据库文件
  2. 依据编译数据库文件,对被测程序的源代码进行静态分析,将提取到的信息存储与psd结构中
  3. 读取psd结构生成对应的驱动代码、googletest代码、以及值文件,和被测源代码一同编译,测试输出结果
  4. 读取psd结构,生成参数捕获的代码,插入被测源文件中进行编译,获取程序运行时的参数值
_images/figure1.jpg