在自动化单元测试过程中,针对包含复杂数据类型或依赖外部资源的函数参数,测试工具往往难以自动生成有效的测试输入。为此,Parasoft C/C++test 提供了工厂函数机制,允许用户通过自定义的初始化逻辑,指导测试引擎构造合法且适用的参数对象。
>>点击获取Parasoft C/C++test试用
一、定义工厂函数
工厂函数在Parasoft C/C++test框架中是指一类特殊命名的用户自定义函数,其主要作用是在自动生成单元测试用例时,为复杂数据类型或依赖外部资源的对象提供定制化的初始化方案。当被测函数包含指针、结构体或抽象类接口等难以自动初始化的参数时,C/C++test的测试用例生成引擎会调用对应的工厂函数来构建合法可用的测试对象实例,从而突破自动化测试的技术瓶颈,显著提升单元测试的覆盖深度与执行稳定性。
定义工厂函数的路径需要与测试执行配置对应,如下图所示部分
1、创建工厂函数文件夹
上图所示默认配置的工厂函数所在文件夹为factory,因此在IDE中右键创建factory文件夹
2、创建工厂函数头文件
该步骤与通常开发一致,需要添加对应头文件以及声明,特殊点在于所有函数需要使用CppTest_Factory_作为前缀,如给函数 void num(int n); 的形参生成工厂函数,那么该工厂函数为 int
CppTest_Factory_generatenum();
如下图所示:
函数原型
工厂函数头文件
3、创建工厂函数源文件
该步骤与一般研发无区别,需要手动定义对应声明
二、使用工厂函数
1、使用前提
在需要使用工厂函数的被测源文件中,include工厂函数头文件,推荐通过宏开关来避免源码污染。
2、自动生成测试用例时使用工厂函数
如下图所示勾选
3、测试用例向导方式使用工厂函数生成测试用例在测试用例向导中,选择对应的工厂函数即可
通过集成Parasoft C/C++test的工厂函数等高级测试特性,开发团队能够构建高度自动化的代码质量保障体系。不仅显著提升了单元测试的覆盖深度与执行效率,更与工具的静态分析、覆盖率追踪等功能形成完整质量闭环,为嵌入式系统、安全关键应用等领域的长期质量演进提供了可靠的技术基础。
关于慧都
慧都是一家行业数字化解决方案公司,专注于软件、石油与工业领域,以深入的业务理解和行业经验,帮助企业实现智能化转型与持续竞争优势。在软件工程领域,我们提供开发控件、研发管理、代码开发、部署运维等软件开发全链路所需的产品,提供正版授权采购、技术选型、个性化维保等服务,帮助客户实现技术合规、降本增效与风险可控。
慧都科技作为Parasoft公司在中国区的官方授权合作伙伴,为国内企业提供Parasoft C/C++test产品的正版授权、定制化部署与全生命周期技术支持与服务。我们致力于助力客户精准贯彻功能安全标准、全面提升软件开发效率、有效管控项目风险,最终构建符合国际标准的高质量软件体系。
发表评论