嵌入式软件测试与一般软件测试之异同研究
嵌入式系统调研报告

嵌入式系统调研报告在当今科技飞速发展的时代,嵌入式系统已经成为了我们生活中不可或缺的一部分。
从智能手机、智能家居到汽车电子、医疗设备,嵌入式系统的应用无处不在。
为了更深入地了解嵌入式系统,本次进行了一番调研。
一、嵌入式系统的定义与特点嵌入式系统是一种以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。
它具有以下几个显著特点:1、专用性强嵌入式系统通常是为特定的应用而设计的,具有很强的针对性。
例如,汽车中的发动机控制系统就是专门为控制汽车发动机的运行而开发的。
2、实时性要求高很多嵌入式系统需要在规定的时间内完成特定的任务,以保证系统的稳定性和可靠性。
比如,航空航天领域的嵌入式系统,必须在极短的时间内做出响应,否则可能会导致严重的后果。
3、资源受限由于体积、成本等因素的限制,嵌入式系统的资源(如处理器性能、内存容量、存储容量等)通常比较有限。
因此,在设计嵌入式系统时,需要充分考虑资源的优化利用。
4、低功耗在一些应用场景中,如便携式设备和物联网设备,低功耗是一个关键因素。
嵌入式系统需要通过优化硬件和软件设计来降低功耗,延长设备的续航时间。
二、嵌入式系统的组成一个典型的嵌入式系统通常由硬件和软件两大部分组成。
硬件部分包括处理器、存储器、输入输出设备、电源等。
处理器是嵌入式系统的核心,它负责执行系统的指令和处理数据。
存储器用于存储程序和数据,包括随机存取存储器(RAM)和只读存储器(ROM)。
输入输出设备则用于实现系统与外部环境的交互,如传感器、显示屏、键盘等。
软件部分包括操作系统、驱动程序、应用程序等。
操作系统是管理和控制嵌入式系统资源的核心软件,常见的嵌入式操作系统有 Linux、Windows CE、VxWorks 等。
驱动程序用于实现硬件设备与操作系统之间的通信,应用程序则是为了实现特定的功能而开发的软件。
三、嵌入式系统的应用领域嵌入式系统的应用领域非常广泛,以下是一些主要的应用领域:1、消费电子领域智能手机、平板电脑、数码相机、智能手表等都是嵌入式系统的典型应用。
嵌入式软件测试规范

嵌入式软件测试规范篇一:嵌入式软件测试和验证嵌入式软件测试和验证一、软件测试1.1定义1993 年 IEEE 对软件测试给出了一个综合的定义:①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中;②是对①中所述方法的研究。
它指出软件工程是一种层次化的技术。
科学的测试是贯穿整个产品生命周期中的测试。
要突破原来对测试的理解,着眼于整个软件生存期,特别是着眼于编码以前各开发阶段的测试工作,以保证软件的质量。
1.2软件测试的真正目标软件测试的真正目标是寻找bug。
即使是在交付时间表很紧的情况下,采取一个步骤来想一下从哪里开始着手,这样,测试才会是最有效率的。
但即使在时间非常充足的情况下,也不可能测试出每一个bug,所以必须将测试划分优先级,划分的根据是基于产品目前的状态(新的,修改的或者只是纯漏洞)和对客户的可能影响而进行的最诚实的评估。
避免采用知道软件可以处理的测试数据和操作;测试人员的任务是在测试中扩大软件的边界。
在设计自动化测试时,也要避免“踩灭”失败条件的误区。
测试人员的任务不是创造大量的总是可以干净的成功运行的测试。
测试人员需要去寻找和理解故障条件。
不要浪费时间去想软件产品中是否存在bug。
它肯定有bug,并且不可能全部找出它们。
测试的目的是指望测试人员找出那些最有影响的bug。
必须要做的是,要从消极的角度考虑这些问题。
1.3软件测试的意义1.发现软件错误;2.有效定义和实现软件成分由低层到高层的组装过程;3.验证软件是否满足任务书和系统定义文档所规定的技术要求;4.为软件质量模型的建立提供依据;即软件测试包括“找错”、“组装”、“确认”和“评估”四个层次的作用。
1.4软件测试方法从不同的角度来看,可以将软件测试的方法分为以下几类:根据是否需要运行被测软件的角度,软件测试分为静态测试方法和动态测试方法。
根据在动态测试中是否需要了解被测软件代码结构的角度,又分为白盒测试和黑盒测试。
关于嵌入式软件测试的研究

关于嵌入式软件测试的研究作者:滕昭跃来源:《科学与财富》2016年第12期摘要:随着近些年嵌入式软件技术的迅猛发展,为了确保这一软件技术的质量,有必要测试嵌入式软件,本文在此背景下,阐述嵌入式软件测试的概念、环境、策略、特征,可以为测试嵌入式软件提供一定参考。
关键词:嵌入式;软件技术;测试1 嵌入式软件测试基本情况1.1 嵌入式软件测试概念界定为了对嵌入式软件测试进行分析,首先则是应该对其概念了解,基于概念这一层面,可以将嵌入式软件测试看成是交叉测试,不管是嵌入式软件测试还是非嵌入式软件,往往目的都会相同。
硬件在设计嵌入式系统当中逐步被软件替代,为了降低系统成本与增加灵活性,应该通过性能更佳的测试工具与方法测试嵌入式与实时软件[1]。
为确保嵌入式系统作用的发挥,在这里应该让其可靠性存在十分高的要求。
从安全性这一层面进行分析,昂嵌入式系统安全性失效,可能引发十分严重后果。
这就应该严格验证、确认、测试嵌入式软件。
1.2 嵌入式软件测试特征根据对嵌入式软件测试进行分析,其主要存在以下特征:一是嵌入式软件测试实施相应的运行则必须应该立足于相应的某种特定硬件环境当中;二是应该为嵌入式软件所具备的实时性要求提供必要的保证;三是在实施嵌入式软件测试环节当中除了应该做好性能测试之外,还必须测试GUI与覆盖分析,运行嵌入式软件并不应该出现泄漏,应该测试嵌入式软件内存;四是嵌入式产品可以将全部功能满足的过程当中,测试最终目的就是可靠安全运行,这就必须实施产品测试[2]。
2 嵌入式软件测试环境分析2.1 仿真测试环境一是全实物。
被测软件处于这样的绝对真实的仿真测试环境下运行,测试就是直接把整个系统与交联物理设备相助建立真实链接而逐步形成闭环[3]。
其侧重点是测试被测系统和别的设备接口,相对来说拥有比较低的测试环境要求。
二是半实物。
仿真测试的半实物环节则是指凭借着充分有效利用所建立的仿真模型来仿真被测系统交联系统,在这一过程当中,需要值得重点关注的问题是,被测系统则是处于真实性的环境当中。
嵌入式软件测试实习报告

实习报告:嵌入式软件测试实习经历一、实习背景随着科技的不断发展,嵌入式系统已经渗透到了我们生活的方方面面,从家电、汽车、医疗到工业控制等领域都有广泛的应用。
嵌入式软件作为嵌入式系统的重要组成部分,其质量直接关系到整个系统的性能和稳定性。
因此,嵌入式软件测试成为了保证嵌入式产品质量的关键环节。
在这样的背景下,我选择了嵌入式软件测试作为我的实习方向。
二、实习单位与岗位本次实习单位是一家专注于嵌入式系统研发和生产的高科技公司,主要产品有智能家居、物联网设备等。
我实习的岗位是嵌入式软件测试工程师,主要负责嵌入式软件的功能测试、性能测试和稳定性测试等工作。
三、实习内容与过程1. 学习嵌入式软件测试基础知识在实习初期,我首先学习了嵌入式软件测试的基础知识,包括嵌入式系统的基本概念、嵌入式软件的特点、测试方法、测试策略等。
通过学习,我了解了嵌入式软件测试的必要性和重要性,为后续的实习工作打下了坚实的基础。
2. 参与项目测试计划编写在实习过程中,我参与了多个项目的测试计划编写工作。
测试计划是指导测试工作的纲领性文件,主要包括项目背景、测试目标、测试范围、测试方法、测试工具、测试进度安排等内容。
通过编写测试计划,我对项目的整体需求和测试工作有了更深入的了解。
3. 编写测试用例根据项目需求和测试计划,我负责编写测试用例。
测试用例是具体执行测试的依据,主要包括测试项、测试条件、预期结果、实际结果等内容。
在编写测试用例的过程中,我学习了多种测试方法,如等价类划分、边界值分析、错误推测等,并逐步掌握了测试用例编写的技巧。
4. 执行测试用例在测试用例编写完成后,我按照测试计划和测试用例进行了实际的测试操作。
通过执行测试用例,我发现并报告了多个软件缺陷,保证了嵌入式软件的质量。
在测试过程中,我还学习了如何使用测试工具进行自动化测试,提高了测试效率。
5. 编写测试报告测试完成后,我负责编写测试报告。
测试报告是对测试工作的总结和反馈,主要包括测试概况、测试结果、缺陷统计、风险评估等内容。
嵌入式软件测试标准

嵌入式软件测试标准嵌入式软件测试是指针对嵌入式系统中的软件进行的测试活动,其目的是确保嵌入式软件的质量和可靠性。
嵌入式软件通常运行在嵌入式系统中,这些系统可能是汽车电子控制单元、医疗设备、智能家居设备等。
由于嵌入式软件的特殊性,其测试标准也需要有相应的规范和要求。
本文将介绍嵌入式软件测试标准的相关内容。
首先,嵌入式软件测试标准需要包括测试计划的编制。
测试计划是测试活动的指导性文件,其中包括测试的范围、目标、资源需求、进度安排、风险评估等内容。
在嵌入式软件测试中,测试计划的编制是非常重要的,它能够确保测试活动按照既定的目标和计划进行,有助于提高测试效率和测试质量。
其次,嵌入式软件测试标准还需要包括测试用例的设计。
测试用例是测试活动的核心,它描述了针对特定功能或场景的测试步骤、输入数据、预期输出等信息。
在嵌入式软件测试中,测试用例的设计需要考虑到嵌入式系统的特殊性,例如对实时性、稳定性、安全性的要求。
因此,测试用例的设计需要充分考虑这些特殊要求,以确保测试覆盖的全面性和有效性。
另外,嵌入式软件测试标准还需要包括测试环境的搭建和管理。
测试环境是进行测试活动所必需的硬件、软件、工具等资源的集合,它对测试活动的顺利进行起着至关重要的作用。
在嵌入式软件测试中,由于嵌入式系统通常是由硬件和软件共同组成的,因此测试环境的搭建和管理需要考虑到这些特殊性,确保测试环境能够准确地模拟嵌入式系统的实际运行环境。
最后,嵌入式软件测试标准还需要包括测试结果的分析和报告。
测试结果的分析和报告是测试活动的总结和输出,它能够为软件质量评估和改进提供重要依据。
在嵌入式软件测试中,由于嵌入式系统的特殊性,测试结果的分析和报告需要充分考虑到实时性、稳定性、安全性等方面的要求,以确保分析和报告的准确性和有效性。
综上所述,嵌入式软件测试标准是确保嵌入式软件质量和可靠性的重要保障,它涵盖了测试计划的编制、测试用例的设计、测试环境的搭建和管理、测试结果的分析和报告等内容。
嵌入式系统的测试方法

嵌入式系统的测试方法嵌入式系统是指嵌入在某个特定应用之中的计算机系统。
与传统的计算机不同,嵌入式系统通常体积小、功耗低、功能单一、操作系统简单。
嵌入式系统被广泛应用于智能家居、智能交通、医疗设备等领域,为我们的生活带来了很多便利。
然而,因为嵌入式系统的特殊性质,如实时性、维护难度高等,对其进行测试非常重要。
本文将介绍几种常用的嵌入式系统的测试方法。
1.黑盒测试黑盒测试也被称为功能测试,主要是从用户的角度出发测试嵌入式系统的功能是否满足需求。
黑盒测试是一种无需了解系统内部实现细节的测试方法,只测试输入和输出。
黑盒测试通常是由测试人员编写测试用例,对系统进行功能测试,包括界面测试、输入输出测试、性能测试等。
例如,在智能家居系统的测试中,对于智能插座,可以通过测试开关按钮、使用手机APP进行控制,来测试插座是否可以正常工作。
如果测试发现插座不能正常工作,测试人员需要记录测试结果并将其反馈给开发人员。
2.白盒测试白盒测试是一种测试方法,需要了解系统的内部实现细节,对系统代码进行测试,主要考查代码是否符合设计规范以及代码是否有可能引发意外错误。
这种测试方法对于内部逻辑复杂的嵌入式系统特别重要。
例如,在智能家居系统的测试中,对于嵌入式系统的控制板,需要进行白盒测试。
测试人员需要检查控制板的代码并针对代码编写测试用例,测试代码是否可靠、是否会出现死循环等问题。
3.自动化测试自动化测试是通过测试脚本甚至测试工具实现对嵌入式系统测试的自动执行,比起人工测试,其具有更高的执行效率和精度,并且可以重复使用。
自动化测试可以通过模拟用户输入,执行黑盒测试,也可以针对系统代码执行白盒测试。
例如,在智能家居系统的测试中,对于嵌入式控制板的功能测试,可以通过编写自动化测试脚本,模拟用户使用控制板的过程,测试控制板是否能够正常工作。
此外,利用模拟工具,可以模拟网络波动、文件传输等环境来测试嵌入式系统的鲁棒性。
4.压力测试压力测试主要是通过对嵌入式系统进行大负载模拟,对系统的性能指标进行测试,评估系统是否能够承受持续的工作负荷,如停电重启、网络连接断开等情况。
嵌入式系统的调试与测试技术研究

嵌入式系统的调试与测试技术研究嵌入式系统是一种高度集成的各种硬件和软件系统,其应用范围广泛,包括汽车、医疗设备、航空航天、工业自动化等领域。
嵌入式系统的调试和测试是确保系统可靠性和稳定性的重要步骤。
本文将从嵌入式系统的调试和测试技术入手,深入探讨如何提高嵌入式系统的可靠性和稳定性。
一、嵌入式系统的调试和测试方法嵌入式系统的调试和测试在整个系统开发过程中起着至关重要的作用。
常见的嵌入式系统调试和测试方法包括:仿真测试、单元测试、集成测试、验收测试等。
其中,仿真测试是利用仿真器或者模拟器对嵌入式系统进行各种测试,可以帮助开发人员在没有实际硬件的情况下快速进行开发和调试;单元测试是对嵌入式系统中的各个模块进行测试,确保每个模块的功能正确性;集成测试是对整个系统进行测试,确保各个模块之间的协同工作正常;验收测试是为了验证开发的系统是否符合客户的需求和要求。
二、硬件调试测试技术硬件调试测试技术是指对嵌入式系统硬件进行测试和调试,主要包括CPU分析器、电路分析仪、万用表、示波器等设备。
在进行硬件调试时,一般首先要进行硬件电路图的设计和分析,确保电路图的正确性和稳定性。
其次,要对板子进行功率测试、时钟测试、引脚测试等测试,保证板子的正常工作。
最后,要进行连通性测试,确保各个模块之间的连接正常。
三、软件调试测试技术软件调试测试技术是指对嵌入式系统软件进行测试和调试,主要包括GDB调试、Trace调试、代码覆盖率测试、文本比对测试等技术。
在进行软件调试时,一般首先要对软件进行静态分析和代码审查,发现潜在的错误和问题。
其次,要利用GDB调试器进行调试,对函数的输入、输出进行跟踪和观察。
最后,要进行文本比对测试,确保程序输出结果的正确性和稳定性。
四、嵌入式系统测试工具嵌入式系统测试工具是指针对嵌入式系统进行测试和调试的软件工具,包括MBIST、JTAG debugger、FileScope、Coverity等工具。
MBIST是一种存储器内置自检工具,可以帮助开发人员快速发现存储器中的问题。
嵌入式系统中的自动化测试技术研究

嵌入式系统中的自动化测试技术研究在嵌入式系统的开发中,自动化测试技术已经成为越来越重要的一环。
自动化测试技术可以帮助开发人员有效地提高测试效率,减少测试和开发人员的工作量,最终提高产品质量。
本文将就嵌入式系统中的自动化测试技术进行探讨。
一、嵌入式系统的特点嵌入式系统是一种集成了硬件和软件的系统,通常被用于控制其他设备或执行特定任务。
与通用计算机不同,嵌入式系统通常有以下几个特点:1、资源受限:由于嵌入式系统的成本和功耗要求,通常具有非常有限的资源。
2、去中心化:嵌入式系统通常工作于不同的场景,很少有或没有能够通过网络互联的中心节点,如医疗器械、智能家居设备等。
3、实时性:嵌入式系统通常被用于控制或监控实时任务,如智能家居设备、工业自动化设备等。
4、可靠性:嵌入式系统在工业、医疗、安防、交通等领域扮演着重要角色,对可靠性的需求是非常高的。
由于这些特点的存在,嵌入式系统测试相比一般软件测试是更加困难的。
嵌入式系统测试需要综合考虑多种因素,如系统硬件和软件的交互、外部设备的使用、大量测试数据集等。
二、自动化测试技术在嵌入式系统中的应用自动化测试技术在嵌入式系统中的应用,可以分为单元测试、集成测试、界面测试和性能测试。
1、单元测试单元测试是对嵌入式系统中各模块的测试。
测试人员可以使用自动化测试工具来完成单元测试并生成详细的测试报告。
在单元测试中,测试人员可以采用不同的测试框架,以确保测试结果的准确性和可靠性。
测试框架包括JUnit、CTest等。
在测试过程中,可以采用模拟器和调试器,在电脑上进行远程测试和调试。
2、集成测试集成测试是对嵌入式软件与硬件的集成测试。
集成测试需要进行一些复杂的测试,如接口测试、模块测试等,以确保系统各部分可以正常协同工作。
在集成测试中,需要进行多个嵌入式系统之间的集成测试和数据传输测试。
测试人员需要使用一些自动化测试工具来模拟和测试数据传输和文件传输等功能。
3、界面测试界面测试是对嵌入式系统中的交互界面进行测试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式软件测试与一般软件测试之异同研究作者:网络转载发布时间:[ 2013/3/5 9:09:17 ]推荐标签:摘要:随着计算机技术的普及,软件系统已经深入到生活的各个方面,从普通的计算机软件,到银行或超市的终端系统,甚至到手机的软件系统。
对软件的质量要求也在不断提高,软件测试及其技术也有了飞速发展。
在对软件测试技术相关基本概念研究解析的基础上,分析软件测试起源与发展,保证软件产品的质量、提高产品的可靠性。
对于嵌入式软件系统,因其多样性,基于操作系统,使用的开发环境,微控制器都是日益繁多的,所以嵌入式软件测试与普通软件测试相比有其自身的特点。
关键字:软件测试;嵌入式测试;软件质量1、引言嵌入式软件的开发和测试也就与普通软件的开发和测试策略有了很大的不同,嵌入式软件系统是一种针对特殊任务、特殊环境而进行特殊设计的定制产品,有其专门的开发环境、软硬件紧密结合、严格的实时要求等特点。
使得嵌入式软件测试与普通软件测试虽有相似之处,但有也有其自身独特的特点。
2、软件测试和嵌入式软件测试2.1 软件测试的定义及目的软件测试,即Software Testing。
软件测试的定义有很多,在1979年出版的一本经典著作《软件测试艺术》(The art of software testing)中,GLEMFORDJ.MYERS曾经对软件测试下过如下定义:软件测试就是为了发现错误而执行程序或系统的过程。
虽然它不太完善,但放在当时的情况下是可以说的通的。
随着计算机和软件技术的发展,软件应用的复杂性和规模的不断扩大,软件测试技术的研究也取得了很大的突破。
早期的定义已经不适用了,许多专家对软件测试提出了各种各样的定义。
综合起来,我们可以定义“软件测试是由一个程序的行为在有限测试用例集合上,针对期望的行为的动态验证组成,测试用例是从通常的无限执行域中适当选取的”。
长期以来对软件测试存在着两种不同的认识。
一种观点认为,软件软件测试的目的是证明软件的正确性;而另一种观点则认为,软件测试的目的是尽可能寻找软件中隐藏的错误和缺陷。
2.2 软件测试的特点1)大多数硬件实验失败的方式和方法是固定的,而软件测试失败则是毫无规律的,探索所有软件测试失败的模式是不可能的。
2)软件方面的许多缺陷都源于设计和实现上的错误,而不是源于生产制造方面的缺陷。
3)软件质量保证的关键在于我们如何让避免产生错误和消除已经产生的错误,是程序中的错误密度达到尽可能低的程度。
4)软件测试是一个动态的执行过程,体现在输入、行为和行为的输出结果上。
5)软件测试是一个有限的集合。
2.3 嵌入式软件测试的定义及目的嵌入式软件是一种比较特出的软件,软件经过分析,设计,编码后只有烧入硬件环境中才可以看见,比如数字电视的中间件软件,洗衣机的自动控制软件,手机游戏软件等等。
嵌入式软件测试/嵌入式测试或叫交叉测试(cross-test)的目的与普通软件测试是相同的,都是为了发现软件缺陷,而后修正缺陷以提高软件的可靠性。
嵌入式系统安全性的失效可能会导致灾难性的后果,即使非安全性失效,由于其应用场合特殊也会导致重大经济损失。
因此,往往嵌入式软件对可靠性的要求比普通软件高。
这就要求对嵌入式软件进行严格的测试、确认和验证,以提高产品的可靠性。
2.4 嵌入式软件测试的特点嵌入式软件测试与普通软件测试相比,有其自身的特点:嵌入式软件测试是在特定的硬件环境下才能运行的软件。
嵌入式软件测试除了要保证嵌入式软件在特定环境下运行的高可靠性,还要保证嵌入式软件系统的实时性。
嵌入式软件产品为了满足高可靠性的要求,不允许内存在运行时有泄漏等情况发生,因此嵌入式软件测试除了对软件进行性能测试、GUI测试、覆盖分析测试是同普通软件测试一样都不可或缺之外,还要对内存进行测试。
嵌入式产品不同于一般软件产品,在嵌入式软件和硬件集成测试完成之后,并不代表测试全部完成,在第一件嵌入式产品生产出来之后,还需对其进行产品测试。
嵌入式软件测试的最终目的是使嵌入式产品在能够满足所有功能的同时安全可靠的进行。
3、嵌入式软件测试与普通软件测试的异同点3.1 嵌入式软件测试与普通软件测试的相同点嵌入式软件测试作为一种特殊的软件测试,它的目的和原则与普通软件测试是相同的,都是为了发现软件缺陷,而后修正缺陷以提高软件的可靠性。
它们的中心任务都是验证和确认其实际实现是否符合需求要求,在验证过程中发现系统缺陷。
嵌入式软件测试与普通软件测试具有相同的信息流,如图3-1。
图3-1 软件测试信息流嵌入式软件测和普通软件测试对象相同,包括软件中所有内容,贯穿软件定义与开发的整个过程。
也就是说,需求分析、概要设计、详细设计、程序编码等各阶段所得到的文档及源程序,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应当称为软件测试的对象。
3.2 嵌入式软件测试与普通软件测试的区别由于嵌入式系统的自身特点,如实时性(Real-timing),内存不丰富,I/O通道少,开发工具昂贵,并且与硬件紧密相关CPU种类繁多,等等。
嵌入式软件的开发和测试也就与一般商用软件的开发和测试策略有了很大的不同,可以说嵌入式软件是最难测试的一种软件。
嵌入式系统由于自己本身的特点,如实时性强、内存不丰富、I/O通道少、开发工具昂贵并且与硬件紧密相关、CPU种类繁多等等,决定了不同的嵌入式系统必须有不同的测试方法。
3.2.1 嵌入式软件测试的各个阶段测试的环境是不一样的嵌入式软件开发和运行的环境是分开的,嵌入式软件开发环境往往是交叉开发环境。
因此,各个阶段测试的环境是不一样的。
单元测试阶段:所有的单元测试都可以在宿主机环境下进行,只有个别情况下会特别指定单元测试要直接在目标机环境下进行。
应该最大化在宿主机环境下进行软件测试的比例,通过尽可能小的目标单元访问其指定的目标单元界面,提高单元的有效性和针对性。
在宿主机平台上运行测试的速度比在目标机平台上快得多,当在宿主机平台上完成测试后可以在目标机环境下重复做一次简单的确认测试,确认测试结果在宿主机和目标机上没有不同。
在目标机环境下进行确认测试将确定一些未知的、未预料到的、未说明的宿主机与目标机的不同之处,例如,目标机编译器可能有缺陷,但在宿主机编译器上没有。
集成测试阶段:软件集成也可在宿主机环境下完成,在宿主句平台上模拟目标环境运行,在此级别上的确认测试可以确定一些与环境有关的问题,比如内存定位和分配方面的一些错误。
在宿主机环境上的集成测试的使用,依赖于目标系统的具体功能有多少。
有些嵌入式系统与目标机环境耦合的非常紧密,这种情况下就不适合在宿主机环境下进行集成。
对于一个大型的软件开发而言,集成可以分几个级别。
低级别的软件集成在宿主机平台上完成有很大优势,级别越高,集成越依赖于目标环境。
系统测试和确认测试:所有的系统测试和确认测试必须在目标机环境下执行。
当然在宿主机上开发和执行系统测试,然后移植到目标机环境重复执行是很方便的。
对目标系统的依赖性会妨碍将宿主机上的系统测试移植到目标系统上,况且只有少数开发者会卷入系统测试,所以有时放弃在宿主机上执行系统测试可能更方便。
确认测试最终必须在目标机环境中进行,因为系统的确认必须在真实系统下完成,而不能在宿主机环境下模拟,这关系到嵌入式软件的最终使用。
3.2.2 嵌入式软件测试的复杂多样因为嵌入式系统的一个突出的特点,是其专用性,即一个嵌入式系统只进行特定的一项或几项工作,嵌入式软件运行的平台都是为进行这些工作而开发出来的专用硬件电路,他们的体系结构、硬件电路,甚至所用的元器件都是不一样的,所以嵌入式软件运行的平台也是复杂多样的。
由于开发平台的复杂多样性,使的嵌入式软件的测试从测试环境的建立到测试用例的编写也是复杂多样的。
与不同的开发平台对应的嵌入式软件是肯定不相同的。
嵌入式软件测试在一定程度的上并不只是对嵌入式软件的测试,很多情况下是对嵌入式软件在开发平台中同硬件的兼容性测试。
因此,对于任何一套嵌入式软件系统,都需要有其自己的测试、创建其自己的测试环境、编写其自己的测试用例。
3.2.3 嵌入式软件测试中对实时性有严格要求由于嵌入式系统的实时性,决定了嵌入式系统的运行时间也是受严格限制的。
嵌入式软件在测试时应当充分考虑系统实时响应的问题,很多嵌入式系统会要求系统的响应时间应在多少毫秒之内。
在测试有严格响应时间要求的嵌入式系统时要做负载测试。
3.2.4 嵌入式软件测试需要进行插桩测试嵌入式软件最终的测试需要在目标机平台上进行,在对目标机进行测试时,我们需要对在宿主机上编译通过的代码进行插桩处理。
插桩完成之后,需要重新对代码进行编译,如果编译通过,就可以将编译好的代码下载到目标机上执行。
在目标机执行程序的时候,需要将插桩时预测好的数据返回到宿主机上,因此,宿主机和目标机上要有能够相互传递数据的网线或者串口线,宿主机上同时要有能够处理返回的数据的处理程序或软件3.2.5 嵌入式软件对系统的可靠性和安全性要求比一般的软件系统高因为嵌入式软件对系统的可靠性和安全性要求比一般的软件系统高,所以还需要进行系统的可靠性测试。
对于不同的嵌入式系统,需要制定相应的符合系统需求的可靠级别,在进行可靠性测试时应该将系统的可靠性级别考虑进去。
一些嵌入式系统,比如工厂车间的某些控制系统,他们要在电磁很强的恶劣的环境下可靠的工作,而且要保证操作人员的安全。
但是对于手机软件来说,他的可靠性和安全性就不如工厂车间的车床控制系统要求的高。