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