什么是软件测试中的嵌入式测试?
什么是嵌入式系统?
嵌入式系统 嵌入式系统是软件和硬件紧密耦合的电子控制设备。嵌入式系统可能包含各种计算设备,例如集成到其他设备中以运行特定应用程序功能的个人电脑。最终用户通常甚至不会意识到它们的存在。
嵌入式测试
嵌入式测试 是检查功能和性能的测试过程 非功能性 嵌入式测试旨在评估嵌入式系统中软件和硬件的各项属性,并确保最终产品无缺陷。其主要目的是验证和确认嵌入式硬件和软件的最终产品是否满足客户的要求。
嵌入式软件测试旨在检查并确保相关软件质量良好,并符合所有应满足的要求。嵌入式软件测试是保障医疗设备、铁路、航空、汽车等关键应用领域安全性的有效方法。严格细致的测试是授予软件认证的关键。
如何进行嵌入式软件测试
一般来说,进行测试有四个原因:
- 查找软件中的错误
- 有助于降低用户和公司的风险
- 降低开发和维护成本
- 为了提高性能
在嵌入式测试中,会执行以下活动:
- 该软件需要一些输入参数。
- 执行一段软件代码。
- 对软件状态进行观察,并检查输出是否符合预期属性,例如输出是否与预期结果相符、是否符合要求以及是否存在系统崩溃。
嵌入式软件测试类型
从根本上讲,嵌入式软件可以应用五个级别的测试。
软件单元测试
单元模块可以是函数或类。单元测试由开发团队(主要是开发人员)执行,通常采用同行评审模式。测试用例根据模块规范编写。
整合测试
整合测试 可以分为两类:
- 软件集成测试
- 软件/硬件集成测试
最后,需要测试硬件域和软件组件之间的交互。这可能包括检查内置外围设备与软件之间的交互。
嵌入式软件开发具有一个独特的特点:软件实际运行的环境通常与软件本身并行创建。这给测试带来了不便,因为无法在模拟环境下进行全面的测试。
系统单元测试
现在待测模块是一个完整的框架,它包含完整的软件代码以及所有…… 实时操作系统 实时操作系统 (RTOS) 和平台相关组件,例如中断、任务机制、通信等等。控制点协议不再是对函数的调用或方法的调用,而是使用 RTOS 消息队列发送或接收的消息。
观察系统资源来评估系统支持嵌入式系统执行的能力。在这方面, 灰盒测试 是首选的测试方法。根据组织的不同,系统单元测试可能是开发人员的职责,也可能是专门的系统集成团队的职责。
系统集成测试
待测模块由单个节点内的一组组件构成。控制点和观测点 (PCO) 包含网络相关的通信协议和实时操作系统 (RTOS) 事件,例如网络消息。除了组件之外,虚拟测试仪也可以扮演节点的角色。
系统验证测试
待测模块可以是已完整实现的子系统,也可以是完整的嵌入式系统。本次最终测试的目标是满足外部实体的功能需求。请注意,外部实体可以是人,也可以是电信网络中的设备,或者两者兼而有之。
区别:嵌入式测试和软件测试
下表对比了嵌入式测试与传统测试。 软件测试.
| 软件测试 | 嵌入式测试 |
|---|---|
| 软件测试仅与软件有关。 | 嵌入式测试与软件和硬件都相关。 |
| 全世界平均90%的测试都是纯手工完成的。 黑盒测试. | 嵌入式测试是对嵌入式系统或芯片进行的测试,可以是黑盒测试,也可以是开盒测试。 白盒测试. |
| 测试的主要领域是 GUI 检查、功能、验证和某种程度的数据库测试。 | 测试的主要方面是硬件对不同输入数量的响应情况。 |
| 软件测试主要在客户端-服务器、网络和移动应用程序上进行。 | 嵌入式测试通常在硬件上进行。 |
| 例如, Google Mail雅虎 Mail, Android 领域广泛应用,提供了卓越的解决方案。 | 例如,医疗保健领域的机器,计算机中使用的微控制器。 |
挑战:嵌入式软件测试
嵌入式软件测试过程中可能面临的一些挑战:
硬件依赖性
由于硬件访问受限,硬件依赖性是嵌入式软件测试面临的主要难题之一。然而,仿真器和模拟器可能无法精确地模拟实际设备的行为,从而导致对系统性能和应用程序可用性的错误判断。
开源软件
大多数嵌入式软件组件本质上都是开源的,并非内部开发,也没有完整的测试套件可供使用。测试组合和由此产生的场景多种多样。
软件与硬件缺陷
另一方面,当为新开发的硬件开发软件时,也会出现这种情况。在此过程中,很容易发现大量的硬件缺陷。这些缺陷不仅限于软件,也可能与硬件本身有关。
可重现的缺陷
嵌入式系统的缺陷更难复现或重现。这就迫使嵌入式测试流程对每次缺陷的重视程度远高于标准测试,并收集尽可能多的数据以找出缺陷的根本原因。
持续的软件更新
嵌入式系统需要定期进行软件更新,例如内核升级、安全修复、更新设备驱动程序等等。软件更新带来的种种限制使得错误识别变得困难。此外,这也凸显了构建和部署流程的重要性。
