嵌入式开发:嵌入式软件单元测试的3个技巧

更新时间: 2022-02-01 10:05:00来源: 粤嵌教育浏览量:11515

  你怎么知道你的软件正在按照它应该的方式工作? 你测试一下! 然而,真正的问题是“你如何测试它?”。在过去,嵌入式开发人员过去只是手动测试他们的软件。然而,手动测试并不是测试软件的好方法。大量的测试用例、测试所需的时间和劳动强度几乎保证了软件不会得到充分的测试。


  改进嵌入式软件测试的解决方案是使用自动化测试。自动化测试可以有多种形式,但现在,我们将专注于单元测试。单元测试是“一种软件测试方法,通过该方法对各个源代码单元(一个或多个程序模块的集合以及相关的控制数据、使用程序和操作程序)进行测试,以确定它们是否适合使用”。今天的文章将探讨开发和运行嵌入式软件单元测试的三个技巧。


  技巧1 – 将您的软件组织成组件进行测试


  通常,嵌入式软件程序将由几十个模块组成,这些模块被放入一个程序文件夹中。今天,更常见的是看到一些文件夹组织,其中模块按应用程序、中间件和驱动程序组织。像这样的程序组织结构是可以的,但在考虑单元测试时,按组件管理程序会容易得多。


  组件是封装了一组相关功能[2]、数据和测试用例的模块。例如,为 FIR 滤波器编写应用程序组件的开发人员可能会按如下方式组织它:


  FIR Filter

  – include

  — fir.h

  – source

  — fir.c

  – tests

  — fir_test.c


  构建这样的文件夹结构起初可能看起来有点痛苦。但是,它保留了组件执行其目的所需的所有软件模块和测试用例!此外,像这样组织组件使组件易于移植,或者更重要的是,更易于在其他软件项目中重用。



  技巧2 – 使用测试驱动开发 (TDD) 开发软件


  敏捷运动为嵌入式开发人员提供了许多流程和工具,旨在帮助他们更快地开发出高质量的软件。 敏捷产生的一种方法是测试驱动开发,通常称为 TDD。 TDD“是一个软件开发过程,依赖于在软件完全开发之前将软件需求转换为测试用例,并通过针对所有测试用例重复测试软件来跟踪所有软件开发”。


  一般来说,TDD 通过专注于测试改变了开发人员编写软件的方式案例。开发人员创建一个测试用例,使其失败,然后编写通过测试用例所需的代码。通过这样做,他们正在构建测试用例,他们知道如果将错误引入软件中就会发现问题。


  技巧3 – 利用 Docker 和单元测试工具


  嵌入式开发人员可用于开发单元测试的工具在过去几年中发生了很大变化。当我第一次开始使用自动化测试时,我发现设置工具是一个巨大的挑战,今天不再是这种情况。


  团队可以通过多种方式设置单元测试。首先,他们可以将测试设置为持续集成和持续部署 (CI/CD) 系统的一部分。 CI/CD 允许团队在构建和部署过程中自动运行测试用例。接下来,开发人员可以选择一个测试工具并将其安装在他们的系统上。在这种情况下,测试工具在独立环境中运行。最后,开发人员可以构建他们的测试工具和开发流程,并在 Docker 环境中进行设置。 Docker 允许开发人员在可移植的映像中运行他们的开发环境,从而最大限度地减少设置时间并提高开发人员之间的一致性。


  可以在 Docker 中设置测试工具,然后轻松部署到多个开发人员,以便他们只需使用几条命令即可设置环境。


  一开始,为嵌入式软件创建和使用自动化测试似乎令人生畏。然而,鉴于当今系统变得如此复杂,手动进行测试几乎是不可能的。唯一真正的解决方案是开发可用于执行所有系统功能的自动化测试。单元测试是嵌入式开发人员最常用的工具,可以显着提高系统质量,同时减少开发软件的总时间。

免费预约试听课