嵌入式系统的单元测试

Unit testing for embedded system

本文关键字:单元测试 系统 嵌入式      更新时间:2023-10-16

我有一个在终端产品硬件上运行在Vxworks上的产品。但是开发是在Visual Studio中使用交叉编译器完成的,并下载到硬件进行测试。我计划为产品编写单元测试用例。我的问题是因为我的开发是在 Windows 上完成的,我如何运行单元测试用例,因为它不像真实场景?

欢迎任何意见

我怀疑您的代码通过系统调用与VxWorks进行了大量交互。在其中放置一个抽象层将很难。

您使用的是 C 还是 C++?

如果您使用的是 c++,并且可以识别系统中符合以下条件的部分:

  • 經常更改;及
    • 主要处理内部数据;或
    • 仅与周围系统的预定义/形式化子集有关(例如协议处理或单个PLC控制逻辑模块)。

然后,您应该首先在模块和系统的其余部分之间注入 c++ 接口。此模块应仅与接口/适配器相关。然后,您有一个可以绑定到Visual Studio测试工具中的隔离部分。

然后,您应该尝试识别系统中容易出错的区域,这些区域可能会受到(频繁)更改或审核的影响。您可能永远无法在目标系统上实现 50% 的覆盖率,但您可以实现一个系统,其中 90% 的日常编码发生在覆盖的 40% 的代码库中。

没有额外的努力是不可能的(新项目;编译两次;为您的主机并让它在您的主机上运行) 在这种情况下,搜索支持单元测试目标的开发环境,例如 http://www.parasoft.com/jsp/products/embedded_cpptest.jsp

继续阅读 parasoft C++单元测试问题。

您可以像任何其他系统一样执行此操作:

  • 编写单元测试
  • 编译并加载到目标系统
  • 运行单元测试
  • 验证结果

它在哪里运行是无关紧要的。 最大的困难是在输出能力有限的嵌入式系统上。 但即使只有一个LED,也应该仍然可以发出成功和失败的信号。 只是它比显示"通过"更抽象一点。