c语言单元测试用例全自动生成软件wings介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
wings是一款用于单元测试测试用例驱动框架自动生成工具,简单来说这款工具主要是全自动生成单元测试驱动代码与测试数据。
下面我们尝试使用wings来完成单元测试框架与测试数据的自动生成。
首先准备好需要测试的C语言工程,本文以大型开源软件Mysql为例。
第一步:打开wings工具,选择被测工程的主要目录。
第二步:点击工程操作中的分析生成,对工程目录下的.c文件进行解析,保存为XML 的格式,生成的文件保存在工程目录下的FunXml与GlobalXml中,分别是函数信息与全局变量的信息,点击驱动文件结构图,即可看到对应文件的函数结构信息。
上图可以查看所有.c文件的驱动函数,以及函数所对应的参数信息与全局变量的信息。
第三步:点击功能操作驱动生成,完成项目的驱动框架自动生成,驱动文件保存在wings_projects下的Driver文件夹下。点击驱动文件,即可看到对应.c文件的驱动生成代码。
点击单个函数,可以高亮定位到函数所在位置,并且双击函数参数,可以定位到每个参数的赋值单元,查看每个参数的具体驱动赋值代码。
第四步:点击值功能操作的值生成按钮,则对应生成测试数据。
界面上显示为单个函数的测试数据,可依据需要修改测试次数,重新生成测试数据文件,也可依据需要修改特定的测试数据。
第五步:将驱动文件加载到所在工程目录,与源文件一起编译,即可运行。
如果想查看对应的函数信息与全局变量信息,则右键对应打开对应的Parameter Struture Description(函数信息结构体)与Global Parameter Struture Description(全局变量结构图)。
Parameter Struture Description(函数信息结构体):显示函数的名称,参数个数,参数类型以及复杂类型的展开形式。
Global Parameter Struture Description(全局变量结构图):显示全局变量的结构信息。
使用过程中注意事项:
(1)编译源文件过程中,需要手动注释调源文件中的main函数,wings将自动生成调用驱动函数的主函数。
(2)遇到特殊类型的赋值或者系统变量的驱动构造,可自行添加模板赋值方式,添加之后,再次生成驱动文件即可。
例如:遇到FILEL类型的赋值,可在模板中添加对应的赋值方式。
通过前面得介绍可以看到Wings的应用非常简单,下面是以在Visual Studio 2015中可正常编译的Mysql 代码为例,生成的测试数据的统计指标,整个生成过程实现了全部自动化。使用wings为开源软件Mysql生成单元测试用例集:
电脑配置说明:
以下是使用源码统计工具得到的结果,虽然多达400多万行有效的单元测试代码是由
Wings全自动生成的,有意思的是可以看到这些代码采用人工开发的成本高达1079个人月,成本更是达到了1079万之多。
Wings实现了由程序自动生成程序的第一步探索,目前发布的是第一版,有兴趣的开发者直接在码云平台进行下载,可以快速体验wings的神奇能力,wings c语言版支持多平台,例如visual studio、vxworks、gcc、qt等。