2

我正在从事一个汽车项目,该项目具有用于不同功能的不同模块。每个模块都有一组预定义的 API,用于实现其预期的功能。(如果您了解 AUTOSAR 及其模块,我说的是相同的)。

我正在研究一个看门狗模块。它的功能和 API 是预定义的。模块开发由静态代码和生成代码(配置)组成。静态代码是用嵌入式 C 编写的,它实现了模块的功能。生成的代码由两个文件组成——“Cfg.C”和“Cfg.h”。“Cfg.h”有宏和预编译选项。“Cfg.c”具有全局变量和常量的值。这些文件是根据 XML 配置文件生成的。

目前,模块测试是通过用 C 语言编写手动测试用例并使用静态和生成的代码进行编译来完成的。为每个功能编写一个测试用例。这些测试用例仅包含预定义的 API 调用,不使用内部 API。在执行测试用例时,它将给出结果是通过还是失败。

我的任务是自动化这个模块的测试用例生成和测试。测试用例生成是生成大量测试用例来测试功能以及所有可能的场景。测试用例生成包括生成测试用例和配置文件以及使用它们的组合进行测试。

自动化测试用例和执行测试自动化的不同方法是什么?

行业中测试用例自动化和测试的最佳实践是什么?

行业如何进行模块级测试以验证模块的功能?

首先,是否有任何工具可用于上述场景的测试用例自动化和测试自动化。

4

1 回答 1

0

当我编写嵌入式 C 语言时,我会使用 C++ Boost 单元测试框架来测试代码。当然不是在目标上,只是在我的开发PC上。这意味着我必须坚持在目标平台(ARM 的东西,用一些称为 KEIL 的 IDE 构建)和我的开发 PC(Ubuntu、GCC 和 Make)上工作的 C 部分。

我会将每个 C 模块链接到一个测试特定的存根模块,该存根模块实现了所有缺失的符号。单元测试、被测单元和存根将被编译并链接到可执行文件,在代码到达目标硬件之前,该可执行文件可用于 TDD、CI 和回归测试。这几乎是简单的单元测试,或者更好的是从那里开始的 TDD。

这是针对在比我所知道的适用于汽车的标准更宽松的标准下开发的消费电子产品,所以我想您将不得不调整这种方法以匹配您的编码标准。

于 2015-10-09T06:35:20.520 回答