ASPICE实操中的那点事儿-底层软件的单元测试该如何做

先来说下ASPICE项目实操中遇到的问题:

底层软件在做单元测试时,从ASPICE角度看,该如何做?要不要在目标控制器或开发板中去测?尤其是复杂驱动,如果不在将程序下载到硬件中,该如何测试?如果带着硬件一起做,那和集成测试又有什么区别?后续的集成测试和功能测试还有必要做吗?

我们的思路:

1)在ASPICE过程域"SWE.4 Software Unit Testing"中,单元测试(Unit Testing)是对软件单元进行隔离测试的过程,目的是验证软件单元的功能和性能是否符合设计要求,以及检查代码中的错误和缺陷。其中并没有规定单元测试的测试环境。

2)当ASPICE中定义的软件单元包含与芯片相关的代码时,单元测试通常会覆盖这部分代码。这意味着在进行单元测试时,已经对与芯片相关的代码进行了部分集成测试。然而,需要注意的是,单元测试主要关注软件单元的内部逻辑和功能,而不是与其他软件单元或硬件组件的集成。

3)单元测试的验证内容主要包括:单元功能逻辑、接口、性能、覆盖率等。

4)软件集成测试主要测试的是组件之间或子系统之间的接口(信号传递)是否正确,集成后的子系统或整个系统的表现是否符合策略定义。

5)通过实施单元测试活动,可以尽早发现软件开发过程中的错误和缺陷,促进代码质量的提升,降低后期阶段发现和修复问题的成本,从而提高软件产品的质量和可靠性。实践过程中,开发前期,硬件往往滞后于软件开发,且硬件有专门的开发质量标准。

综上,结论:①单元测试不需要过多关注硬件,应更多精力放在软件本身上。与硬件相关的交互可以在软件集成测试中开展。这样整个的效率和价值,以及开发过程的顺畅性会更高。②单元测试的测试环境为纯软的放着环境,对于复杂驱动这类与硬件相关的驱动单元,进行单元测试时需要模拟硬件环境。这可以通过使用模拟器(仿真器,指模拟的软件仿真环境)或桩函数(Stub Functions)来实现。模拟器可以模拟硬件的行为,而桩函数则用于替代那些与硬件交互的函数,以便在测试环境中模拟其行为。

你们在实际项目中是如何实施的呢?欢迎在评论区留言。

相关推荐
王解1 小时前
Jest项目实战(4):将工具库顺利迁移到GitHub的完整指南
单元测试·github
Devil枫12 小时前
Vue 3 单元测试与E2E测试
前端·vue.js·单元测试
小袁在上班18 小时前
Python 单元测试中的 Mocking 与 Stubbing:提高测试效率的关键技术
python·单元测试·log4j
测试199819 小时前
外包干了2年,快要废了。。。
自动化测试·软件测试·python·面试·职场和发展·单元测试·压力测试
安冬的码畜日常1 天前
【The Art of Unit Testing 3_自学笔记06】3.4 + 3.5 单元测试核心技能之:函数式注入与模块化注入的解决方案简介
笔记·学习·单元测试·jest
王解1 天前
Jest项目实战(2): 项目开发与测试
前端·javascript·react.js·arcgis·typescript·单元测试
程序员小雷2 天前
软件测试基础:单元测试与集成测试
python·功能测试·selenium·测试工具·单元测试·集成测试·压力测试
王解2 天前
Jest进阶知识:深入测试 React Hooks-确保自定义逻辑的可靠性
前端·javascript·react.js·typescript·单元测试·前端框架
程序员雷叔2 天前
外包功能测试就干了4周,技术退步太明显了。。。。。
功能测试·测试工具·面试·职场和发展·单元测试·测试用例·postman
安冬的码畜日常2 天前
【玩转 Postman 接口测试与开发2_005】第六章:Postman 测试脚本的创建(上)
javascript·测试工具·单元测试·postman·bdd·chai