嵌入式软件测试方法(精)
- 格式:docx
- 大小:16.65 KB
- 文档页数:7
嵌入式软件测试规范篇一:嵌入式软件测试和验证嵌入式软件测试和验证一、软件测试1.1定义1993 年 IEEE 对软件测试给出了一个综合的定义:①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中;②是对①中所述方法的研究。
它指出软件工程是一种层次化的技术。
科学的测试是贯穿整个产品生命周期中的测试。
要突破原来对测试的理解,着眼于整个软件生存期,特别是着眼于编码以前各开发阶段的测试工作,以保证软件的质量。
1.2软件测试的真正目标软件测试的真正目标是寻找bug。
即使是在交付时间表很紧的情况下,采取一个步骤来想一下从哪里开始着手,这样,测试才会是最有效率的。
但即使在时间非常充足的情况下,也不可能测试出每一个bug,所以必须将测试划分优先级,划分的根据是基于产品目前的状态(新的,修改的或者只是纯漏洞)和对客户的可能影响而进行的最诚实的评估。
避免采用知道软件可以处理的测试数据和操作;测试人员的任务是在测试中扩大软件的边界。
在设计自动化测试时,也要避免“踩灭”失败条件的误区。
测试人员的任务不是创造大量的总是可以干净的成功运行的测试。
测试人员需要去寻找和理解故障条件。
不要浪费时间去想软件产品中是否存在bug。
它肯定有bug,并且不可能全部找出它们。
测试的目的是指望测试人员找出那些最有影响的bug。
必须要做的是,要从消极的角度考虑这些问题。
1.3软件测试的意义1.发现软件错误;2.有效定义和实现软件成分由低层到高层的组装过程;3.验证软件是否满足任务书和系统定义文档所规定的技术要求;4.为软件质量模型的建立提供依据;即软件测试包括“找错”、“组装”、“确认”和“评估”四个层次的作用。
1.4软件测试方法从不同的角度来看,可以将软件测试的方法分为以下几类:根据是否需要运行被测软件的角度,软件测试分为静态测试方法和动态测试方法。
根据在动态测试中是否需要了解被测软件代码结构的角度,又分为白盒测试和黑盒测试。
一、前言随着我国物联网、智能家居等领域的快速发展,嵌入式系统在各个行业中的应用越来越广泛。
嵌入式软件作为嵌入式系统的核心组成部分,其质量直接影响到整个系统的性能和稳定性。
为了提高嵌入式软件的开发和测试水平,本次实训主要针对嵌入式软件的测试方法、流程和工具进行了深入学习和实践。
二、实训目标1. 掌握嵌入式软件测试的基本概念和原则;2. 熟悉嵌入式软件测试的方法和流程;3. 掌握常用的嵌入式软件测试工具;4. 提高嵌入式软件测试的实际操作能力。
三、实训内容1. 嵌入式软件测试概述嵌入式软件测试是指对嵌入式软件进行的一系列验证活动,以确保软件满足设计要求、性能指标和安全规范。
嵌入式软件测试主要包括以下几个方面:(1)功能测试:验证软件是否按照需求规格说明正确实现各项功能;(2)性能测试:评估软件在特定条件下的运行效率;(3)稳定性测试:验证软件在长时间运行过程中是否稳定可靠;(4)安全性测试:检查软件在运行过程中是否存在安全漏洞;(5)兼容性测试:验证软件在不同硬件、操作系统和软件环境下的兼容性。
2. 嵌入式软件测试方法嵌入式软件测试方法主要包括以下几种:(1)黑盒测试:测试人员不需要了解软件内部实现,只关注软件的输入输出;(2)白盒测试:测试人员需要了解软件内部实现,从代码层面进行测试;(3)灰盒测试:测试人员对软件内部实现有一定了解,但不需要深入到代码层面;(4)静态测试:对软件代码进行审查,找出潜在的错误;(5)动态测试:对软件进行实际运行测试,找出运行过程中的问题。
3. 嵌入式软件测试流程嵌入式软件测试流程主要包括以下步骤:(1)需求分析:明确软件需求,确定测试目标;(2)测试计划:制定测试计划,包括测试方法、测试工具、测试人员等;(3)测试用例设计:根据需求分析,设计测试用例;(4)测试执行:按照测试用例进行测试,记录测试结果;(5)缺陷管理:对测试过程中发现的缺陷进行跟踪和管理;(6)测试报告:编写测试报告,总结测试结果。
嵌入式软件测试报告1.引言2.测试目标和范围测试目标是确保嵌入式软件的各个模块在提供正确的功能和性能的同时,具有高度的可靠性和稳定性。
测试范围包括嵌入式软件的所有模块和子系统。
3.测试方法本次测试采用了黑盒测试、白盒测试和灰盒测试的组合方法。
-黑盒测试:对系统功能进行测试,通过输入有效和无效的数据,验证输出是否符合预期。
主要包括界面测试、功能测试和用户场景测试。
-白盒测试:对系统的内部结构和算法进行测试,以揭示隐藏的错误和异常情况。
主要包括语句覆盖、分支覆盖和路径覆盖等测试方法。
-灰盒测试:将黑盒测试和白盒测试相结合,同时验证系统功能和内部结构。
通过用户输入和系统输出,检查系统的状态和中间数据。
4.测试环境测试环境包括嵌入式开发板、经典测试工具、仿真器和调试器等。
具体的测试环境如下:-嵌入式开发板:使用ABC公司的嵌入式开发板作为测试目标。
- 经典测试工具:包括XUnit、Junit等测试工具。
-仿真器和调试器:使用ABC公司提供的仿真器和调试器来调试和分析嵌入式软件。
5.测试计划和进度测试计划是根据项目需求和测试目标制定的,其中包括测试任务、测试资源、测试用例、测试时间和测试评估方法等。
测试进度按照计划进行,包括准备测试环境、设计测试用例、执行测试、分析测试结果和编写测试报告等。
6.测试结果测试结果根据不同测试方法和技术进行分析和评估。
具体的测试结果如下:-黑盒测试:通过有效和无效的数据输入测试了系统的各个功能模块。
测试结果显示系统的功能和界面都正常工作,没有发现明显的错误和异常。
-白盒测试:采用了语句覆盖、分支覆盖和路径覆盖等方法对系统内部结构进行了详细测试。
测试结果显示系统的内部结构和算法都正常工作,覆盖率达到了预期要求。
-灰盒测试:结合了黑盒测试和白盒测试的优点,综合验证了系统的功能和内部结构。
测试结果显示系统在不同输入下都正常工作,没有发现明显的错误和异常。
7.测试总结和建议根据测试结果和评估分析,可以得出以下结论:-系统的功能和界面都正常工作,满足了项目需求和用户期望。
Tessy —嵌入式软件单元测试/ 集成测试工具Tessy是一款专门针对嵌入式软件进行单元/ 集成测试的工具。
它可以对C/C++ 代码进行单元、集成测试,可以自动化搭建测试环境、执行测试、评估测试结果并生成测试报告,其多样化的测试用例导入生成方式和与测试需求关联的特色,使Tessy 在测试组织和测试管理上也发挥了良好的作用。
目前Tessy广泛应用在汽车电子主流客户中。
主要特点在V 模型开发中,Tessy 主要应用在单元测试和集成测试阶段。
单元测试通过运行代码检测出函数中错误,比如算法错误、接口问题等;集成测试则在单元测试的基础上验证单元之间接口的正确性。
基于越早发现bug 开发成本越低的原则,在进行代码功能验证的过程中,按照V 流程右半部分先完成单元测试再进行集成测试的测试顺序更为有效。
另外,Tessy 也可以满足各类标准(如ISO26262、IEC61508、EN 50128/50129 等)对测试的需求,比如Tessy 可以满足ISO26262 中各等级对单元/ 集成测试的要求,当然Tessy 本身也通过了TUV 的认证,证明该软件是安全可靠的,可以在安全相关的软件研发过程中使用。
主要功能•自动生成测试环境、一键执行及评估结果Tessy 可以自动生成驱动程序、桩函数,帮助测试人员提高单元测试效率。
Tessy 支持一键执行测试,并自动对测试结果进行评估,可生成多种形式的报告。
•便捷的测试用例设计方式除软件界面手动设计测试用例外,Tessy 还支持导入导出多种格式的测试用例。
另外,Tessy 集成了分类树编辑器CTE,有效利用等价类划分以及边界值法,辅助设计出更全面更有效的测试用例。
•高度自动化的回归测试Tessy 通过分析源文件自动识别函数及相关接口,在接口发生变更时,支持通过简便的操作进行测试数据复用,保证便捷有效的回归测试。
•测试覆盖度分析Tessy 提供分支覆盖、修正条件/ 判定覆盖MC/DC(Modified Codition/Decision Coverage)、多条件覆盖MCC(Multiple ConditionCoverage) 等多种覆盖度分析。
嵌入式软件测试策略在嵌入式领域目标系统的应用系统日趋复杂,而由于竞争要求产品快速上市,开发技术日新月异,同时硬件发展的日益稳定,而软件故障却日益突出,软件的重要性逐渐引起人们的重视,越来越多的人认识到嵌入式系统的测试势在必行。
提到嵌入式软件测试,首先要简单介绍一些软件工程的一些观点,现在,被普遍接受的软件的定义是:软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分,它包括程序(program)、相关数据(data)及其说明文档(document)。
其中程序是按照事先设计的功能和性能要求执行的指令序列;数据是是程序能正常操纵信息的数据结构;文档是与程序开发维护和使用有关的各种图文资料。
对于一般商用软件的测试,嵌入式软件测试有其自身的特点和测试困难。
由于嵌入式系统的自身特点,如实时性(Real-timing),内存不丰富,I / O 通道少,开发工具昂贵,并且与硬件紧密相关CPU种类繁多,等等。
嵌入式软件的开发和测试也就与一般商用软件的开发和测试策略有了很大的不同,可以说嵌入式软件是最难测试的一种软件。
嵌入式软件测试使用有效的测试策略是唯一的出路,它可以使开发的效率最大化,避免目标系统的瓶颈,使用在线仿真器节省昂贵的目标资源。
自从出现高级语言,开发环境与最终运行环境通常都是存在差异的,嵌入式系统更是如此。
开发环境被认为是主机平台,软件运行环境为目标平台。
相应的测试为host-target测试或cross-testing。
讨论嵌入式软件测试首先就会遇到一个问题:为什么不把所有测试都放在目标上进行呢?因为若所有测试都放在目标平台上有很多不利的因素:1)测试软件,可能会造成与开发者争夺时间的瓶颈,避免它只有提供更多的目标环境。
2)目标环境可能还不可行。
3)比起主机平台环境,目标环境通常是不精密的和不方便的。
4)提供给开发者的目标环境和联合开发环境通常是很昂贵的。
5)开发和测试工作可能会妨碍目标环境已存在持续的应用从经济上和开发效率上考虑,软件开发周期中尽可能大的比例在主机系统环境中进行,其中包括测试。
嵌入式软件的测试方法与技术摘要嵌入式软件的测试是保证嵌入式系统安全性和可靠性的重要工作。
本文介绍了嵌入式软件测试的概念、测试策略、测试方法和测试技术,旨在为嵌入式软件测试工作提供参考。
关键词:嵌入式软件;测试;测试策略;测试方法;测试技术引言随着嵌入式系统的应用越来越广泛,其软件对嵌入式系统的安全性和可靠性的要求也越来越高。
嵌入式软件测试是保证嵌入式系统安全性和可靠性的重要工作。
本文将对嵌入式软件测试的概念、测试策略、测试方法和测试技术进行研究。
嵌入式软件测试的概念嵌入式软件测试是指对嵌入式系统中的软件进行测试,包括测试软件的完整性、正确性等方面的测试。
嵌入式软件测试的目的是为了发现软件中的缺陷并改进软件,以提高软件的安全性、可靠性、稳定性和性能等方面的指标。
嵌入式软件测试的策略嵌入式软件测试的策略是指制定用于测试嵌入式软件的方法和计划的过程。
测试策略应结合开发实践、对系统的需求和要求的理解、系统内在的限制、测试工具和根据项目的关键性和复杂度来制定。
嵌入式软件测试策略的主要内容包括以下方面:1.需求分析:分析嵌入式系统的需求和用户的需求,并将需求转换为测试用例。
2.测试设计:设计测试用例,并制定测试计划,包括定义测试环境、测试时间、测试人员、测试工具等。
3.测试执行:执行测试计划,记录测试结果,分析测试结果并发现和跟踪问题。
4.测试管理:对测试过程进行管理,包括测试跟踪、版本控制、测试报告等。
嵌入式软件测试方法嵌入式软件测试方法是指通过不同的测试手段,对嵌入式软件进行测试的方法。
常见的嵌入式软件测试方法包括:1.黑盒测试:黑盒测试是指根据需求规格书的功能描述,设计测试用例进行测试。
黑盒测试的优点是易于实施,可覆盖大部分的应用场景,但无法检查内部实现的错误。
2.白盒测试:白盒测试是指对软件的内部结构进行测试,包括代码分析、代码覆盖率分析、结构测试等。
白盒测试的优点是可以深入了解软件内部结构,发现潜在的错误和缺陷。
嵌入式软件测试的关键技术嵌入式系统已经成为现代生活不可或缺的一部分,在汽车、智能家居、医疗设备、航空航天等领域得到广泛应用。
嵌入式软件是这些系统的核心组成部分,而软件测试在确保系统质量和可靠性方面起着至关重要的作用。
本文将介绍嵌入式软件测试的关键技术,包括测试策略、测试方法、测试环境以及测试工具等。
嵌入式软件测试涉及到不同的测试策略。
测试策略是根据嵌入式系统的需求和约束条件确定的测试方法和技术的总体计划和指导方针。
其中,黑盒测试和白盒测试是常用的策略。
黑盒测试关注系统对输入的响应和输出的正确性,独立于系统内部的实现细节。
而白盒测试则关注测试覆盖率和系统内部的具体实现。
还有基于模型的测试策略,通过建立系统模型来进行测试。
不同策略的选择取决于具体的测试目标和需求。
针对嵌入式软件测试的关键技术,有多种测试方法可供选择。
静态测试和动态测试是比较常见的方法之一。
静态测试主要通过检查源代码和设计文档等静态资源,以发现潜在的错误和问题。
静态测试可以在早期阶段对软件进行评估,并在后续阶段提供更好的测试质量。
而动态测试则是在运行时对软件进行测试,包括单元测试、集成测试和系统测试等。
这些测试方法可以覆盖软件的不同层次和功能,并在实际环境中验证软件的正确性和可靠性。
测试环境也是嵌入式软件测试中不可忽视的一部分。
一个合适的测试环境能够模拟真实场景,提供必要的硬件和软件资源,以保证测试的准确性和有效性。
嵌入式软件系统通常与硬件紧密相关,所以测试环境中需要包括目标硬件平台以及相应的仿真和调试工具。
同时,测试环境还应提供可靠的测试数据和测试用例,以确保全面和有效地测试软件的各个方面。
除了上述关键技术,合适的测试工具也是嵌入式软件测试的重要组成部分。
测试工具可以帮助测试人员自动执行测试,减少人工测试的工作量,并提高测试的效率和可重复性。
常用的测试工具包括测试管理工具、自动化测试工具、性能测试工具和覆盖率工具等。
这些工具可以提供丰富的测试功能,并支持测试报告和结果分析,以促进软件测试的全面和有效实施。
嵌入式软件自动化测试技术分析1. 引言1.1 研究背景嵌入式软件自动化测试技术的发展始于近年来嵌入式系统的快速发展和普及,随着电子产品的功能越来越强大复杂,软件规模和复杂度也急剧增加,传统的手工测试方法已经无法满足对软件质量的要求。
自动化测试技术逐渐成为解决软件测试难题的有效手段。
嵌入式软件自动化测试技术的发展,可以大大提高测试效率和质量,减少人力资源成本,缩短产品上市时间,提高软件可靠性和稳定性。
当前,随着嵌入式软件领域的不断拓展和深化,自动化测试技术也在不断创新和完善。
由于嵌入式软件的特殊性和复杂性,自动化测试技术在该领域仍面临许多挑战和难题,需要进一步研究和探索。
对嵌入式软件自动化测试技术进行深入分析和研究,探讨其发展趋势和前景,对提升软件测试水平和质量具有重要意义。
这一部分将从嵌入式软件自动化测试技术的起源和发展历程入手,引出本文研究的重要性和必要性。
1.2 研究意义嵌入式软件自动化测试技术的研究意义非常重大。
随着嵌入式软件在各个领域的广泛应用,其测试工作变得越来越复杂和耗时。
通过引入自动化测试技术,可以提高测试效率,减少测试人力成本,缩短测试周期,提高软件质量,降低软件开发的风险。
嵌入式软件通常运行在一些资源受限的硬件平台上,传统的手工测试方法已经无法满足测试需求。
自动化测试技术可以有效解决这一难题,提高测试的覆盖率和准确性。
随着嵌入式软件项目越来越复杂,测试需求也变得越来越多样化,自动化测试技术能够更好地适应这种变化,提高测试的灵活性和可维护性。
研究和应用嵌入式软件自动化测试技术具有重要的意义。
它不仅可以提高软件测试的效率和质量,还可以为嵌入式软件的开发和应用带来更多的便利和保障。
2. 正文2.1 嵌入式软件自动化测试技术分析概述嵌入式软件自动化测试技术是针对嵌入式系统中软件进行测试的一种全自动化测试方法。
在嵌入式软件开发中,由于硬件与软件之间的紧密关联,测试工作十分复杂和耗时。
采用自动化测试技术可以有效提高测试效率和测试质量。
黑盒测试(Black box testing) ── 不考虑内部设计和代码,根据需求和功能进行测试。
白盒测试(White box testing) ── 根据应用软件的代码的内部逻辑,按照代码的语句、分支、路径和条件进行测试。
部件测试(Unit testing) ── 最小范围的测试,针对特定的函数和代码模块进行测试。
因为需要了解程序的设计和代码的细节才能进行,所以部件测试一般是由程序员,而不是由测试人员来做。
除非应用软件的结构设计良好,而且代码也写得清楚,否则部件测试并非易事。
也许需要开发测试驱动模块或测试工具。
递增的综合测试(incremental integration testing) ── 不断进行的测试过程,每增加一个新的功能模块,都进行测试。
这要求一个应用软件在最终完成之前,各功能模块要相对独立,或者已根据需要开发出测试驱动软件。
这种测试可由程序员或测试人员进行。
综合测试(integration testing) ── 对应用软件的各个部件进行组合测试,来检查各功能模块在一起工作是否正常。
“部件”可以是代码模块、独立的应用程序、也可以是网络中的客户/服务器应用软件。
这种测试特别适用于客户/服务器环境和分布式系统。
功能测试(functional testing) ── 对一个应用软件的功能模块进行黑盒测试。
这种测试应当由测试人员进行。
但这并不意味着程序员在推出软件之前不进行代码检查。
(这一原则适用于所有的测试阶段。
)系统测试── 针对全部需求说明进行黑盒测试,包括系统中所有的部件。
端到端测试(end-to-end testing) ── 类似于系统测试,但测试范围更“宏观”一些。
模仿实际应用环境,对整个应用软件进行使用测试。
例如与数据库进行交互作业、使用网络通信、与其他硬件、应用程序和系统之间的相互作用是否满足要求。
健全测试(sanity testing) ── 是一种典型的初始测试。
1/ 8 1、引言 随着经济的发展和科技的进步 ,信息技术的发展使人类进入数字时代 ,而伴随 着计算机技术发展起来的嵌入式技术得到了巨大的发展 ,改变了人们的日常。随 着对嵌入式产品对各方面的要求越来越高 ,对嵌入式产品的性能有着决定性影响 的嵌入式软件的测试显得尤为重要。
嵌入式的目的是保证软件满足需求规格说明 ,与非嵌入式软件的测试目的是 一样的。系统失效是系统没有满足 —个或多个正式需求规范中所要求的需求项 , 嵌入式软件有其特殊的失效判定准则。
而且嵌入式软件对可靠性的要求比较高。安全性的缺陷往往会导致灾难性 的后果 ,即使是非安全性系统 ,由于大批量生产也会导致严重的经济损失。这就要 求对嵌入式系统 ,包括嵌入式软件、嵌入式硬件进行严格的测试、确认和验证。
一般来说 ,软件测试有 7 个基本阶段 ,即单元或模块测试、集成测试、外部、 回归测试、统测试、验收测试、安装测试。嵌入式软件测试在 4 个阶段上进行 , 即模块测试、集成测试、系统测试、硬件 /软件集成测试。前 3 个阶段适用于任 何软件的测试 ,硬件/ 软件集成测试阶段是嵌入式软件所特有的 ,目的是验证嵌入 式软件与其所控制的硬件设备能否正确地交互。
2、嵌入式软件测试环境
嵌入式软件测试的测试环境主要有两种 : 1 目标环境测试 : 基于目标的测试测试全面有效 ,但是消耗较多的经费和时 间。
2 宿主环境测试 : 基于宿主的测试代价较小 ,但是有些对环境要求高的功能和 性能宿主机
无法模拟 ,测试无法实现。
目前的趋势是把更多的测试转移到宿主环境中进行 ,把宿主环境测试无法实 现的复杂和独特功能放在目标环境测试。我们的重点是基于宿主环境的测试 ,基 于目标环境的测试作为补充。
文档 在两个环境中可以出现不同的软件缺陷 ,重要的是目标环境和宿主环境的测 试内容有所选择。在宿主环境中 ,可以进行逻辑或界面的测试、以及与硬件无关 的测试。在模拟或宿主环境中的测试消耗时间通常相对较少 ,用调试工具可以更 快地完成调试和测试任务。而与定时问题有关的、中断测试、硬件接口测试只 能在目标环境中进行。在软件测试周期中 ,基于目标的测2/ 8
试是在较晚的 “硬件/ 软 件集成测试 ”阶段开始的 ,如果不更早地在模拟环境中进行白盒测试 ,而是等到 “硬 件/ 软件集成测试 ”阶段进行全部的白盒测试 ,将耗费更多的财力和人力。
3、白盒测试与
白盒测试或基本代码的测试主要任务为检查程序的内部设计 ,或者在开发环 境中进行硬件仿真 ,一般不必在目标硬件上进行。根据源代码的组织结构查找软 件缺陷 ,要求测试人员对软件的结构和功能有详细深入的了解。白盒测试与代码 覆盖率密切相关 ,可以在测试中计算出代码的覆盖率 ,保证测试的充分性。嵌入式 软件测试通常要求有较高的代码覆盖率 ,要选择最重要的代码进行白盒测试。
黑盒测试在某些情况下也称为功能测试。这类测试方法根据软件的用途和 外部特征查找软件缺陷 ,不需要了解程序的内部结构。黑盒测试不依赖代码 ,从实 际使用的角度进行测试。黑盒测试与需求紧密相关 ,
需求规格说明的质量会直接影响测试的结果。在进行嵌入式软件黑盒测试 时,要把系统的预期用途作为重要依据 ,根据需求中对负载、定时、性能的要求 ,判 断软件是否满足这些需求规范。
4、内容
嵌入式软件测试的内容主要为 :软件代码测试、编程规范标准符合性测试、 代码编码规范符合性测试、开发维护文档规范符合性测试、用户文档测试。
其中软件测试服务范围包括:系统级测试、应用测试、中间件测试、BSP及 驱动程序测试、嵌入式硬件设计测试。
文档 其中 ,按照嵌入式软件有无将嵌入式系统分为两大类 :无操作系统的嵌入式软 件、有操作系统的嵌入式软件。
4.1 无操作系统的嵌入式软件
无操作系统的嵌入式软件主要包括 C语言代码、汇编语言代码、Apa代码
C 语言模式软件测试 :硬件设备及宏定义 (编译阶段处理、 API 函数测试、模 块初始化 3/ 8
(包括系统初始化、中间功能件测试、功能模块测试、中断处理测试、 任务调度测试、区域功
能测试、总体功能测试。
汇编语言模式软件测试 :硬件设备及其他宏定义 (编译阶段处理、模块初始化 (包括系统初始化、中间功能件测试、功能模块测试、中断处理测试、区域功能 测试、总体功能测试。
4.2 基于操作系统的嵌入式软件 基于操作系统的嵌入式软件主要包括应用软件测试、系统
软件测试、整体 性能测试。
应用软件测试 :模块初始化 (包括系统初始化、中间功能件测试、功能模块测 试、区域功能测试、总体功能测试。
系统软件测试:硬件设备及其他宏定义(编译阶段处理、API函数测试、模块 初始化 (包括系统初始化、中间功能件测试、功能模块测试、中断处理测试、区 域功能测试、总体功
能测试、标准符合性测试。
其中 ,操作系统的标准符合性测试的标准依据主要包括 :
IEEE POSIX 1003.1-1990(VSX4-PSE 文档 IEEE Std POSIX 1003.1c-1995Threads (pthreads extension (VSTH-PSEIEEE POSIX 1003.13-1998Profile 52(VSPSE52
VSPSE52:2003-A conformance test suite for IEEE Std 1003.13-2003Profile PSE52 整体性能测试 :基于操作系统之上的嵌入式系统整体软件测试 ,主要采用应用 软件测试 ,着重分析性能、内存分配、代码覆盖率、软件执行流程 ,并采用仿真 器、逻辑分析仪的硬件测试工具进行整体性能的测试。
5、嵌入式软件的测试工具
用于辅助嵌入式软件测试的工具很多 ,下面对几类比较有用的有关嵌入式软 件的测试工具加以介绍和分析。
5.1 内存分析工具 4/ 8
在嵌入式系统中 ,内存约束通常是有限的。内存分析工具用来处理在动态内 存分配中存在的缺陷。当动态内存被错误地分配后 ,通常难以再现 ,可能导致的失 效难以追踪 ,使用内存分析工具可以避免这类缺陷进入功能测试阶段。目前有两 类内存分析工具 ——软件和硬件的。基于软件的内存分析工具可能会对代码的 性能造成很大影响 ,从而严重影响实时操作 ;基于硬件的内存分析工具价格昂贵 ,而 且只能在工具所限定的运行环境中使用。
5.2 性能分析工具
在嵌入式系统中 ,程序的性能通常是非常重要的。经常会有这样的要求 ,在特 定时间内处理一个中断 ,或生成具有特定定时要求的一帧。开发人面临的问题是 决定应该对哪一部分代码进行优化来改进性能 ,常常会花大量的时间去优化那些 对性能没有任何影响的代码。性能分析工具会提供有关的数据 ,说明执行时间是 如何消耗的 ,是什么时候消耗的 ,以及每个例程所用的时间。根据这些数据 ,确定哪 些例程消耗部分执行时间 ,从而可以决定如何优化软件 ,获得更好的时间性能。对 于大多数应文档
用来说 ,大部分执行时间用在相对少量的代码上 ,费时的代码估计占所有软件 总量的 5%-20%。性能分析工具不仅能指出哪些例程花费时间 ,而且与调试工具联 合使用可以引导开发人
员查看需要优化的特定函数 ,性能分析工具还可以引导开 发人员发现在系统调用中存在的错误以及程序结构上的缺陷。
5.3GUI测试工具
很多嵌入式应用带有某种形式的图形用户界面进行交互 ,有些系统性能测试 足根掘用户输入响应时间进行的。 GUI 测试工具可以作为脚本工具有开发环境中 运行测试用例 ,其功能包括对操作的记录和回放、抓取屏幕显示供以后分析和比 较、设置和管理测试过程。很多嵌入式设备没有 GUI ,但常常可以对嵌入式设备 进行插装来运行GUI测试脚本,虽然这种方式可能要求对被测代码进行更改,但是 节省了功能测试和回归测试的时间。
5.4 覆盖分析工具
在进行白盒测试时 ,可以使用代码覆盖分析工具追踪哪些代码被执行过。分 析过程可以通过插装来完成 ,插装可以是在测试环境中嵌入硬件 ,也可以是在可执 行代码中加入软件 ,也可以是二者相结合。测试人员对结果数据加以总结 ,确定哪 些代码被执行过 ,哪些代码被巡漏了。覆盖分析工具一般会提供有关功能覆盖、 分支覆盖、条件覆盖的信息。对于嵌入式软件来说 ,代码覆盖分析工具可能侵入 代码的执行 ,影 5/ 8
响实时代码的运行过程。基于硬件的代码覆盖分析工具的侵入程度要小一 些,但是价格一般比较昂贵 ,而且限制被测代码的数量。
6、国内外的嵌入式测试服务
嵌入式软件测试要提供嵌入式软件及硬件的端到端测试服务 ,横跨工具 /设 备、实时操作系统(RTOS开发平台和编程语言。服务内容包括嵌入式软件和硬 件的测试策略和代码级测试 ,以及覆盖分析 ,功能测试,压力测试,代码审查,调试和 代码维护。测试服务覆盖从设备驱动 ,中间件/协议和系统及应用水平测试。主要 文档
解决如通信、汽车电子行业、消费电子及多媒体、工业自动化、网络、存 储、计算机硬件和外设的嵌入式系统测试。
6.1 国外嵌入式软件测试服务
国外的嵌入式软件测试服务有 :黑盒测试、功能测试、单元测试、回归测 试、配置测试、压力测试、 UI 测试、安装测试、模块化测试、集成测试、手动 黑盒测试、负载测试、验收测试。
提供给用户的测试结果主要为 :测试规划、测试用例、验收测试用例、用户 手册、缺陷报告、改进建议等。
6.2 国内嵌入式软件测试服务
国内的嵌入式软件测试服务还处于起步阶段 ,并且主要限于嵌入式应用软 件、工业控制软件 ,测试的主要内容包括 :
1 功能测试
依据ISO/IEC9126-1质量模型,验证系统是否满足明确和隐含要求功能。功能 测试覆盖实用性、准确性、互操作性、互用性、保密安全性、功能依从性。
2 可靠性测试
依据ISO/IEC9126-1质量模型,测试在指定条件使用时,软件产品维持规定的 性能级别的能力。可靠性测试覆盖成熟性、容错性、易恢复性等质量特性。
3 性能测试