单元测试使用RTOS的项目

单元测试使用RTOS的项目,第1张

概述对于我的下一个嵌入式系统项目,我想接受单元测试.它在技术上可能不是测试驱动的开发,但我至少希望预先测试单元测试并进行全面的单元测试. 我正在使用IAR EWARM工具链.我正在考虑使用cmocka,unity或cunit.我正在学习使用μC/ OS-III作为RTOS. 这是一个问题:单元测试如何与图中的RTOS一起使用? E.G:我应该禁用内核并将代码单元测试为单线程应用程序并存根所有/大多数内 对于我的下一个嵌入式系统项目,我想接受单元测试.它在技术上可能不是测试驱动的开发,但我至少希望预先测试单元测试并进行全面的单元测试.

我正在使用IAR EWARM工具链.我正在考虑使用cmocka,unity或cunit.我正在学习使用μC/ OS-III作为RTOS.

这是一个问题:单元测试如何与图中的RTOS一起使用? E.G:我应该禁用内核并将代码单元测试为单线程应用程序并存根所有/大多数内核调用,还是有更好的方法?

例:
在μC/ OS-III中,切入点仍然是主要的.从main调用任何init代码,然后调用Osstart()开始多任务处理.因此,当我运行测试工具时,我可能无法调用Osstart()

#ifdef UNIT_TESTtest_runner();#elseOsstart(&err);#endif

然后在我的所有应用程序代码中,我只需要模拟消息传递和延迟对内核的调用.

这是最好的方法吗?或者我是否更适合启动内核,为我的测试运行器创建任务,并将其中的所有任务作为单个线程运行,或者是否有一些其他好的方法涉及从测试工具中生成其他任务.

@H_403_25@解决方法 你似乎对单元测试有误解.您的代码是否使用RTOS是不相关的,因为单元测试涉及单独测试代码模块,即C函数.在测试期间,RTOS不会运行.

单元测试还假设您正在测试一组定义代码功能的需求.
大多数单元测试的目标是能够提供各种形式的代码覆盖.这包括声明,决定和多条件决策覆盖.

语句覆盖率表明您已经运用了函数中的每一行代码.

决策覆盖范围涉及表明涵盖所有条件的双方(真/假).

多条件决策覆盖(MCDC)用于测试复杂的决策,即if(a&&(b || c))并确保涵盖所有变化. MCDC测试通常仅限于非常关键的应用,例如航空电子设备,其中故障可能带来灾难性后果.

子程序通常是存根的,即被拦截和控制,以证明每个子程序按顺序被调用,并且传递的参数是正确的,并且各种返回值正确地起作用.

我承认我对您提到的工具没有任何经验,但有许多商业单元测试工具,Cantata,LDRA TestBench,IBM Rational Test Real Time以及其他适用于深度单元测试的工具.

RTOS本身也有商业解决方案.我公司为μC/ OS-II和μC/ OS-III提供现成的单元和集成测试包.

斯科特验证软件

总结

以上是内存溢出为你收集整理的单元测试使用RTOS的项目全部内容,希望文章能够帮你解决单元测试使用RTOS的项目所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1227633.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存