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


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

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

    我们的思路:

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

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

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

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

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

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

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

  • 相关阅读:
    php基于PHP的汉服文化交流平台毕业设计源码240903
    前端面试题日常练-day70 【面试题】
    Flink处理函数(一)
    【frida】HLL 登录流程分析 找关键 Call
    5G专网融合时间敏感网络架构技术
    OpenCV直方图的原理与显示、掩膜、均衡化、自适应均衡化
    数据结构——图
    抖音 矩阵系统,牛视源码,抖音矩阵系统定制。
    问题 - 谷歌浏览器 network 看不到接口请求解决方案
    golang的垃圾回收算法之八清除和回收
  • 原文地址:https://blog.csdn.net/Eigrl/article/details/136355365