嵌入式系统的单元测试
Unit testing for embedded system
我有一个在终端产品硬件上运行在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,也应该仍然可以发出成功和失败的信号。 只是它比显示"通过"更抽象一点。
相关文章:
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- VC++本机单元测试,找不到调试符号
- 用于交叉编译和CMake的预处理器宏的单元测试
- C++ 用于单元测试的模板模板
- 提升 1.64 单元测试编译失败
- 单元测试欧拉到四元数实现失败
- 运行 C++ 单元测试时LNK2005链接错误
- 禁用自动捕获 Googletest 单元测试中的C++异常
- 有没有办法在不使用 #ifdef 的情况下不编译发布版本中的单元测试函数体?
- 使用 Google Test 对自定义断言函数进行单元测试
- 如何将我的 CMake 项目配置为运行所有单元测试?
- 在Qt C++单元测试中动态加载QQuickWindow而不是QQuickWidget
- MS 本机单元测试 - 断言::线程失败不起作用
- 如何获取 CMake 单元测试的相对路径?
- QTimer 超时不会在单元测试中触发
- 如何在提升构建中设置环境变量以进行提升单元测试框架?
- 在 AtMega32a 上运行的C++的单元测试
- 如何使用gmock框架模拟c++单元测试中的fork和execlp系统调用
- 嵌入式系统的单元测试