iUnit7.0重磅发布|AI驱动更智能的单元测试
iUnit7.0在原有架构基础上进行全面升级,在技术上实现覆盖率和智能化的双重提升,从而推进产品在场景拓展、自动化、智能测试等多个方面的有效突破,朝着“下一代智能单元测试产品”迈进。
01技术的双核跃迁
覆盖率的进一步提升
覆盖率是iUnit一以贯之的重要技术指标,持续保持在90%+的高水平,为航空、航天、船舶、汽车、工控、信息技术等多领域提供精准、高效、智能的测试解决方案,赢得广泛认可。
团队采用目标代码导向的输入生成技术来达成覆盖率的更进一步,根据控制流和数据流分析,生成到达目标代码的路径约束,并利用程序属性作为LLM的输入,通过迭代的方式求解路径约束,生成触发目标代码的测试用例输入。在此基础上,结合符号执行技术,完成更高覆盖率的测试套件生成。
智能化提升,破局功能测试
传统的“智能”单元测试方法,本质上只是“自动”测试,生成的测试用例和测试断言忽略了代码的功能意义,无法做到具备实际意义的功能测试。
采用LLM结合程序分析的方法,实现真正意义上的功能测试:
面向功能的代码切片技术:基于数据传播链的语义驱动细粒度代码切片技术,通过引入关键变量识别、双向依赖分析、变量级裁剪等技术手段,构建高语义聚焦、低冗余、可控粒度的切片结果。
增量式关联代码提取技术:以需求驱动、上下文递进的方式,逐步扩展与当前功能相关的关键代码片段,构建语义自洽的上下文环境以供模型使用。该技术通过迭代识别和补全语义缺口,实现了从初始功能切片到任务所需语义闭包的自然过渡。
断言生成技术:高质量断言语料构建与预训练大模型、代码语义理解与领域分类、语义表示构建与行为建模、断言模板推理与填充、断言验证与评估反馈,各步骤紧密配合,逐步实现从代码语义到断言生成的自动化映射。并训练一个多模态编码器-解码器结构的大语言模型,能够从函数实现、注释语义和已有测试上下文中学习生成断言的语义逻辑与风格模式。
02下一代智能单元测试产品:坚实迈进
iUnit7.0迎来全面升级。
AI赋能测试
传统单元测试生成的测试用例存在可解释性、无效值测试等问题,同时也无法生成有效断言进行功能测试;
AI赋能后,结合符号执行技术和 LLM 的语义理解能力生成测试用例,同时关注 test input 和 test oracle,建立需求、设计、测试的全链路一致性追踪关系,生成可解释强、具备功能验证能力、覆盖率高的测试套件。
研发使用场景拓展
支持代码驱动用例,支持研发场景的使用,为研发人员的使用提供更友好体验,真正做到测试左移,代码驱动用例可完美地支持Qt等复杂的C++工程及各类C++的高级语言特性能力。
嵌入式设备深度适配
能适配各类嵌入式设备,包括主流的80C51等嵌入式设备,为嵌入式设备的上板执行测试提供能力;
在嵌入式设备上测试时,且能极大地降低结构覆盖率测试时的膨胀率,该功能的技术能力达到了国际领先的水平,甚至一定程度上更具备灵活性;
因此,在工业控制领域,可应用于嵌入式控制系统测试与验证中,为硬件在环(HIL)测试与验证提供高效的方案。
基础功能升级
自动进行工程适配,可针对不同开发环境的代码工程自动进行编译适配;
同时具有代码驱动用例、表格驱动用例这两种方式的测试,且具有良好的交互体验,使新用户可在一天内快速上手体验。
流水线集成提升效能
能与流水线CI/CD或DevOps集成,进行每日自动构建与测试,充分利用空闲时间进行全量或增量测试。且流水线调用提供简单完整的命令行,即可轻松被集成,简洁易用。
03结语
在智能化浪潮席卷软件研发各环节的今天,iUnit 7.0 的发布不仅重新定义了测试工具的能力边界,更通过深度融合大模型技术,将传统以人工为主的用例设计与执行转变为高度自动化的智能工作流。
我们相信,iUnit 7.0 将帮助开发团队更早、更快、更全面地发现潜在缺陷,在提升代码质量的同时大幅降低测试成本,为C/C++项目在嵌入式、系统级及复杂应用场景下的可靠性保驾护航。未来,我们将持续探索AI与测试结合的更多可能性,推动软件质量工程向更智能、更自主的方向演进。
