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

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

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

我们的思路:

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

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

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

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

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

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

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

相关推荐
niuniu_6664 小时前
Selenium 性能测试指南
selenium·测试工具·单元测试·测试·安全性测试
互联网杂货铺9 小时前
黑盒测试、白盒测试、集成测试和系统测试的区别与联系
自动化测试·软件测试·python·功能测试·测试工具·单元测试·集成测试
佟格湾1 天前
几种常见的.NET单元测试模拟框架介绍
单元测试
niuniu_6661 天前
安全性测试(Security Testing)
测试工具·单元测试·appium·测试·安全性测试
niuniu_6661 天前
selenium应用测试场景
python·selenium·测试工具·单元测试·测试
噔噔噔噔@2 天前
软件测试对于整个行业的重要性及必要性
python·单元测试·压力测试
俞凡2 天前
如何编写更好的单元测试
单元测试·测试
WIN赢2 天前
单元测试的编写
单元测试·log4j
测试老哥3 天前
什么是集成测试?集成的方法有哪些?
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·集成测试
杨凯凡4 天前
Mockito 全面指南:从单元测试基础到高级模拟技术
java·单元测试·mockito