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