软件测试中的嵌入式测试

在本教程中,将了解

  • 什么是嵌入式系统?
  • 什么是嵌入式测试?
  • 嵌入式软件测试类型
  • 区别:嵌入式测试和软件测试
  • 挑战:嵌入式软件测试

什么是嵌入式系统?

嵌入式系统是软硬件紧密耦合的电子控制设备。最终用户通常甚至不知道它们的存在。

嵌入式测试

嵌入式测试是检查嵌入式系统中软件和硬件的功能属性和非功能属性,确保最终产品无缺陷的测试过程。嵌入式测试的主要目的是验证最终的嵌入式硬件和软件产品是否满足客户的要求。

嵌入式软件测试检查并确保相关软件质量良好,并符合其应满足的所有要求。嵌入式软件测试严格细致的测试是软件认证的关键。

如何进行嵌入式软件测试

通常,进行测试有四个原因:

  • 查找软件中的错误
  • 降低用户和公司的风险
  • 降低开发和维护成本
  • 要提高性能,执行以下操作

在嵌入式测试中,将执行以下活动:

1. 该软件提供了一些输入。

2. 执行该软件的一部分。

3. 观察软件状态,并检查输出的预期属性,如输出是否与预期结果匹配、是否符合要求以及是否没有系统崩溃。

嵌入式软件测试类型

基本上,有五个级别的测试可以应用于嵌入式软件

软件单元测试

单元模块可以是函数,也可以是类。单元测试由开发团队(主要是开发人员)执行,并根据模块测试用例的规范进行开发。

集成测试

集成测试可以分为两个部分:

  1. 软件集成测试
  2. 软件/硬件集成测试。

最后,对硬件域和软件构件的交互进行了测试。这可以包括检查内置外围设备和软件之间的交互。

嵌入式软件开发有一个独特的特点,着眼于软件运行的实际环境,一般是与软件并行创建的。由于不能在模拟条件下进行综合测试,这给测试带来了不便。

系统单元测试

现在要测试的模块是一个完整的框架,包括完整的软件代码以及所有的实时操作系统(RTOS)和与平台相关的部分,如中断、任务机制、通信等。控制点协议不再是对函数或方法调用的调用,而是利用RTOS消息队列发送/获取的消息。

观察系统资源以评估系统支持嵌入式系统执行的能力。根据组织的不同,系统单元测试要么是开发人员的职责,要么是专门的系统集成团队的职责。

系统集成测试

要测试的模块从单个节点内的一组组件开始。控制点和观察点(PCO)是与组件相关的网络的混合体,虚拟测试仪同样可以扮演节点的角色。

系统验证测试

模块是一个实现完整的子系统,或者是一个完整的嵌入式系统。注意,外部实体可以是人,也可以是电信网络中的设备,或者两者兼而有之。

区别:嵌入式测试和软件测试

软件测试 嵌入式测试
软件测试只与软件有关。 嵌入式测试既涉及软件,也涉及硬件。
世界上平均90%的测试都是纯手工黑盒测试。 嵌入式测试是在嵌入式系统或芯片上进行的,可以是黑盒测试,也可以是白盒测试。
测试的主要领域是GUI检查、功能、验证和某种级别的数据库测试。 测试的主要领域是硬件行为。提供给它的输入。
软件测试主要在基于客户端-服务器、Web和移动的应用程序上进行。 嵌入式测试通常在硬件上执行。
例如Yahoo Mail、Android应用程序。 例如医疗保健领域的机器、计算机中使用的微控制器。

挑战

在嵌入式软件测试期间可能面临的一些挑战:

硬件依赖性

由于对硬件访问的限制,硬件依赖性是嵌入式软件测试面临的主要困难之一。但是,模拟器和仿真器可能不能准确地表示实际设备的行为,并且可能会给人一种错误的系统性能和应用程序可用性的感觉。

开源软件

大多数嵌入式软件组件本质上是开源的,不是内部创建的,并且没有完整的测试可用。有广泛的测试组合和结果场景。

软件与硬件缺陷

另一方面,当为新创建的硬件开发软件时,在此过程中可以识别高比率的硬件缺陷。这也可能与硬件有关。

可重现的缺陷

在嵌入式系统的情况下,缺陷更难再现/再创建。这强制嵌入式测试过程将每个缺陷发生的值大大高于标准情况下的值,而不是收集尽可能多的数据来合理地改变系统以找到缺陷的基础。

持续的软件更新

嵌入式系统需要定期更新软件,如内核升级、安全补丁、不同的设备驱动程序等。此外,这增加了构建和部署过程的重要性。

总结:

嵌入式软件测试存在一定的困难,这使得嵌入式软件测试比常规软件测试更加困难。最根本的问题是对硬件环境的严格依赖有时甚至很难在没有自定义工具的情况下测试软件,这使得在后期阶段专注于测试变得格外诱人。

最重要的事情之一是,应该考虑这样一个事实,即应该经常选择自动化软件测试。嵌入式自动化测试是一个更快的过程,需要几个小时才能完成,通过这种方式,软件问题就解决了。

IT赶路人

专注IT知识分享