案例分享 | 攻克ADAS开发测试难题,实现单元动态测试新突破

随着智能网联汽车的快速发展,软件已成为汽车的核心竞争力。某智驾公司作为智能驾驶领域的佼佼者,其智驾部门专注于开发高性价比、高性能的智能驾驶解决方案。其智驾系统已广泛应用于国内大型OEM旗下的多个品牌车型,覆盖从高速无图NOA到城市全场景无图NOA等多种功能。然而,随着智能驾驶系统的复杂性不断增加,智驾公司也面临着诸多挑战,尤其是在代码动态测试方面。

 

 

 

 

痛点1:代码规模庞大,测试用例编写工作量惊人

-?问题:ADAS项目集成后,代码量极其庞大,需要进行单元动态测试的代码模块众多。编写测试用例的工作量随之呈指数级增长,这不仅耗费大量人力,还严重影响了开发进度。

-?影响:测试团队疲于奔命,却难以在短时间内完成高质量的测试用例编写,导致测试覆盖率难以提升。

痛点2:开源工具的局限性

-?问题:客户之前一直使用开源的动态测试工具,但这些工具存在诸多问题。UI界面简陋,操作体验较差,功能也严重缺失,无法满足复杂的测试需求。

-?具体表现

– 功能缺失:无法支持高级C++算法的测试,对于复杂数据结构和逻辑的处理能力不足。

– 性能瓶颈:在处理大规模代码时,工具运行缓慢,甚至频繁崩溃,严重影响测试效率。

– 缺乏专业支持:开源工具缺乏专业的技术支持和持续更新,面对复杂问题时,客户只能自行摸索解决办法。

痛点3:测试用例编写困难

-?问题:ADAS系统涉及大量C++高级算法,这些算法的逻辑复杂,数据交互频繁。编写测试用例时,需要深入理解算法的每一个细节,同时还要考虑各种边界条件和异常情况,难度极大。

-?具体表现

– 专业门槛高:测试人员需要具备深厚的C++编程基础和算法知识,才能准确编写测试用例。

– 测试用例质量参差不齐:由于难度过高,测试用例的编写质量难以保证,很多用例无法有效覆盖代码逻辑,导致测试覆盖率始终无法达到100%。

痛点4:MC/DC覆盖率测试难题

-?问题:MC/DC(Modified Condition/Decision Coverage)覆盖率是软件测试中的一种重要指标,尤其在汽车电子领域,对安全性要求极高。然而,开源工具无法支持MC/DC覆盖率的测试,这使得客户在满足行业标准方面面临巨大挑战。

-?影响:无法准确评估代码的测试覆盖率,难以确保软件的可靠性和安全性,项目通过行业认证的难度大大增加。

 

 

 

 

1. 代码规模庞大,测试用例编写工作量惊人

-?解决方案:CT工具提供自动生成测试用例的功能,能够根据代码逻辑自动生成基础测试用例,为测试人员减少一部分工作量,让他们可以将精力集中在更复杂和关键的测试用例编写上。

-?效果:显著降低了测试用例编写的工作量,提升了测试效率,缩短了项目周期。

2. 开源工具的局限性、测试用例编写困难以及MC/DC覆盖率测试难题

解决方案

– CT工具的UI界面更加现代化、简洁,操作起来更加便捷,极大地改善了测试人员的使用体验。

– 提供打桩和Mock功能,用于减少测试时与其他依赖模块的耦合,使得测试更加独立和高效。

– 针对复杂代码,CT工具还提供代码层级故障注入功能,用于测试故障处理代码等正常方式无法覆盖的代码,进一步提高测试覆盖率。

<图1> 故障注入功能

– 提供MC/DC测试用例编写指南,帮助测试人员快速掌握编写技巧,提高测试用例的编写速度。

? <图2> MC/DC测试用例编写指南
– 通过优化算法和逻辑分析,CT工具能够减少不必要的测试用例数量,用最少的测试用例数量达成更高的MC/DC覆盖率。

– CT工具支持MC/DC覆盖率测试,并提供详细的测试用例编写指南和优化建议,帮助客户满足行业标准。

效果

解决了开源工具功能缺失和性能瓶颈的问题,降低了测试用例编写的难度,提升了测试用例的质量和覆盖率,同时确保了软件的可靠性和安全性,提高了项目通过行业认证的可能性。

3. 全程技术支持

-?解决方案:我们为代码动态验证解决方案提供全程技术支持,专业团队随时响应客户遇到的各种问题,确保测试过程顺利进行。

-?效果:客户在使用过程中无需担心技术难题,能够专注于测试任务本身。

4. 开发人员介入迭代源码

-?解决方案:针对客户项目代码量级极其庞大的问题,CT工具的软件开发团队进行了针对性的迭代开发,发布了多个补丁,大大提高了测试执行的速度。

-?效果:优化了工具的性能,使其能够高效处理大规模代码,确保测试效率不受影响。

You may also like