【问题标题】:How to test reliability of my own (small) embedded operating system?如何测试我自己的(小型)嵌入式操作系统的可靠性?
【发布时间】:2011-02-22 20:49:49
【问题描述】:

我编写了一个小型嵌入式项目操作系统,在中小型目标上运行。

我添加了一些具有高测试代码覆盖率 (>95%) 的自动化单元测试,但范围只是静态部分。
我得到了一些代码指标,例如复杂性和可读性。
我正在使用支持 MiSRA 的规则检查器测试我的代码,当然还修复了所有警告。
我正在使用静态分析器测试代码,并再次修复了所有警告。

我现在可以做什么来测试 - 并改进 - 我的操作系统的可靠性? 动态部分呢?

【问题讨论】:

  • 目前还不能让人们实际使用它?
  • @Tim Post:是的,有 2 个项目正在运行它......但我必须提供一些关于可靠性的信息!我只测试了静态部分。
  • 这是基于文本的操作系统吗?
  • 没有外壳,只有调度程序和任务同步(邮箱、消息、队列、信号量等)
  • 你能澄清一下动态部分吗?

标签: c unit-testing embedded operating-system reliability


【解决方案1】:

您的清单中缺少的东西:

  • 如果您还没有这样做,那么还要在目标硬件上运行单元测试,以检查编译器和硬件问题。

  • 代码审查,特别是检查竞争条件

您也可以查看生成的汇编代码,如果它不是太大的话。

【讨论】:

  • 代码审查很好,但它是“一枪”。对汇编代码的审查已部分完成,但我应该显示什么结果?
【解决方案2】:

尝试为动态部分编写一些单元测试。 然后在目标硬件上运行测试。 在具有更多内核的硬件上运行测试 在只有一个内核的硬件上运行测试

改变目标系统时钟速度并运行动态测试。

应该可以解决大多数时间问题。

【讨论】:

  • 也许这是唯一的解决方案!但是在目标上用多核编写带有时序评估的单元/集成测试......我将在 10 年内编写单元测试?!?
  • 在目标上运行动态测试。 (1) 实验在具有或多或少内核的开发硬件上运行动态测试 (2) 实验。以不同的时钟速度在目标上运行 (1) 实验。总共 5 个实验。
【解决方案3】:

查看software-testing entry on wikipedia。这是对不同测试分支的相当全面的描述。您可能会在那里找到一两个新想法。

【讨论】:

  • 这是一个有趣的开始,但我不知道如何处理我的操作系统的动态行为。我会按照链接进行调查!
【解决方案4】:

试试Atomic Object's 网站。 试试this also.

还有James Greening

【讨论】:

  • Mock 技术在 C 中相当困难(操作系统是用 C + ASM 编写的)并且与 C++ 相比很重。但这可能是唯一的解决方案!
【解决方案5】:

看来您已经做了很多工作来测试您的系统。我认为下一步将让其他项目或人们使用它。其他用户会很快向您表明存在健壮性问题。

【讨论】:

    猜你喜欢
    • 2013-08-19
    • 2012-08-28
    • 2010-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 2013-11-19
    • 2011-10-07
    相关资源
    最近更新 更多