testing - 今天用于测试固件的可用软件工具有哪些?

标签 testing embedded microcontroller firmware

我是一名软件工程师,将/可能会被聘为固件测试工程师。我只是想了解一下市场上用于测试固件的一些软件工具。你能说出它们并解释一下它们为固件提供的测试类型吗?提前致谢。

最佳答案

测试有多种形式,可以在不同阶段进行。除了在编写代码之前进行设计验证外,代码测试还可以分为单元测试、集成测试、系统测试和验收测试(尽管确切的术语和阶段数可能会有所不同)。在 V 模型中,这些将与需求和设计开发的阶段水平对应。同样在开发和维护中,您可能会执行回归测试 - 确保已修复的错误在应用其他更改时保持修复。

就工具而言,这些可以分为静态分析和动态分析。静态工具在不执行的情况下分析源代码,而动态分析则关注代码在执行期间的行为。一些(昂贵的)工具执行“抽象执行”,这是一种静态分析技术,可以确定代码在没有实际执行的情况下如何在执行期间失败,这种方法在计算上很昂贵,但可以处理比传统动态分析更多的执行路径和变量状态。

静态分析的最简单形式是代码审查;让人阅读你的代码。即使是这个表面上手动的过程,也有一些工具可以提供帮助,例如 SmartBear's Code Collaborator .同样,最简单的动态分析形式是在调试器中单步执行代码,甚至只是在各种测试场景中运行代码。前者可能由程序员在单元开发和调试期间完成,而后者更适合验收或集成测试。

虽然代码审查做得好可以消除大量错误,尤其是设计错误,但它可能无法有效地找出由编程语言的微妙或神秘语义引起的某些类型的错误。这种错误适合使用静态分析工具自动检测,例如 Gimpel's PC-Lint and FlexeLint tools , 或 Programming Research's QA tools ,尽管将编译器的警告级别设置为高和使用多个编译器进行编译等成本较低的方法也很有用。

动态分析工具有多种形式,例如代码覆盖率分析、代码性能分析、内存管理分析和边界检查。

高端工具/供应商包括 Coverity , PolySpace (抽象分析工具),Cantata , LDRA , 和 Klocwork .低端(价格,不一定有效)是 PC-Lint 和 Tessy 等工具。 ,甚至开源 splint (仅限 C),以及大量 unit testing tools

关于testing - 今天用于测试固件的可用软件工具有哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5359381/

相关文章:

c - 人们使用Pic和c进行计数器

c - MCU 中的 RTC 初始化 - 为什么使用全局回调

c - 如何在 C 中处理命令行参数?

unit-testing - 应该如何使用 tdd 重复行为进行测试

在 C-mbed 平台中每 10 秒调用一个函数

c++ - 处理GPIO中的多个事件

GCC MIPS-32 调用约定/堆栈帧定义

multithreading - 搞乱线程计时的工具?

javascript - Ava babel-register 不转译

windows - 使用 Windows Compact 2013 Virtual PC 打开 COM 端口