基于嵌入式软件的覆盖测试问题研究
- 格式:pdf
- 大小:325.17 KB
- 文档页数:4
• 204•目前嵌入式软件的覆盖率测试相对通用平台软件具有一定的的复杂性和困难性,本文介绍了一种基于嵌入式系统的BullseyeCoverage 逻辑覆盖测试概念及方法,研究了代码覆盖率工具 BullseyeCoverage 的工作原理,并应用到实际嵌入式系统测试案例中,实践结果表明, BullseyeCoverage 测试工具能够从函数覆盖、条件/判定覆盖多个角度快速、准确地定位未被测试的代码,并给出测试报告,便于测试人员有针对性地设计测试用例,以便发现潜在的软件缺陷,最终提高软件产品质量。
针对嵌入式系统而言,其开发平台与运行平台一般不同,开发工具运行在软硬件配置丰富的测试计算机上,嵌入式执行程序运行在软硬件资源相对缺乏的目标机上,由于开发环境与运行环境存在较大差异,且常规的测试方法和技术在嵌入式软件系统中难以奏效,故嵌入式软件相对于通用平台的软件而言,测试工作有一定的复杂性。
嵌入式软件的覆盖率测试,其充分性测试具有重要意义。
借助于覆盖率分析工具可以降低测试难度同时可以提高测试效率。
本文介绍了一种基于嵌入式系统的BullseyeCoverage 逻辑覆盖测试方法,通过搭建基于arm-xilinx-linux 目标板的嵌入式软件动态测试平台进行动态覆盖测试,根据覆盖率分析情况补充测试用例,实现软件的充分性测试。
1 软件的覆盖测试1.1 覆盖率概念覆盖率测试也称为逻辑测试,测试时需要访问测试代码本身然后对代码进行插装,主要以程序的内部结构为基础来设计测试用例,因此,它也是白盒测试的一种方法;覆盖率度量指标有多种,包括函数覆盖、语句覆盖、条件覆盖、分支覆盖、分支/条件覆盖、路径覆盖等,其中语句覆盖是最基本的覆盖标准。
覆盖率是代码执行所占的百分比,覆盖率按照式(1)计算:覆盖率=已执行的程序对象数量/程序中可执行的程序对象的总数×100% (1)覆盖率测试基本准则是测试用例要尽可能多地覆盖程序的内部逻辑结构,发现隐藏的错误和问题。
关于嵌入式软件测试的研究作者:滕昭跃来源:《科学与财富》2016年第12期摘要:随着近些年嵌入式软件技术的迅猛发展,为了确保这一软件技术的质量,有必要测试嵌入式软件,本文在此背景下,阐述嵌入式软件测试的概念、环境、策略、特征,可以为测试嵌入式软件提供一定参考。
关键词:嵌入式;软件技术;测试1 嵌入式软件测试基本情况1.1 嵌入式软件测试概念界定为了对嵌入式软件测试进行分析,首先则是应该对其概念了解,基于概念这一层面,可以将嵌入式软件测试看成是交叉测试,不管是嵌入式软件测试还是非嵌入式软件,往往目的都会相同。
硬件在设计嵌入式系统当中逐步被软件替代,为了降低系统成本与增加灵活性,应该通过性能更佳的测试工具与方法测试嵌入式与实时软件[1]。
为确保嵌入式系统作用的发挥,在这里应该让其可靠性存在十分高的要求。
从安全性这一层面进行分析,昂嵌入式系统安全性失效,可能引发十分严重后果。
这就应该严格验证、确认、测试嵌入式软件。
1.2 嵌入式软件测试特征根据对嵌入式软件测试进行分析,其主要存在以下特征:一是嵌入式软件测试实施相应的运行则必须应该立足于相应的某种特定硬件环境当中;二是应该为嵌入式软件所具备的实时性要求提供必要的保证;三是在实施嵌入式软件测试环节当中除了应该做好性能测试之外,还必须测试GUI与覆盖分析,运行嵌入式软件并不应该出现泄漏,应该测试嵌入式软件内存;四是嵌入式产品可以将全部功能满足的过程当中,测试最终目的就是可靠安全运行,这就必须实施产品测试[2]。
2 嵌入式软件测试环境分析2.1 仿真测试环境一是全实物。
被测软件处于这样的绝对真实的仿真测试环境下运行,测试就是直接把整个系统与交联物理设备相助建立真实链接而逐步形成闭环[3]。
其侧重点是测试被测系统和别的设备接口,相对来说拥有比较低的测试环境要求。
二是半实物。
仿真测试的半实物环节则是指凭借着充分有效利用所建立的仿真模型来仿真被测系统交联系统,在这一过程当中,需要值得重点关注的问题是,被测系统则是处于真实性的环境当中。
嵌入式软件单元测试方法研究作者:刘佳杨永文李金华来源:《软件工程》2019年第08期摘; 要:嵌入式软件通常采用交叉开发的方式,尽早进行软件测试可以及时发现软件开发初期的不足。
单元测试是嵌入式软件开发过程中最基础级别的测试活动。
本文对嵌入式软件的单元测试进行了分析,主要包括测试工具的选择、测试内容的梳理和测试过程的优化,重点阐述了注意事项及原则。
通过总结分析,提出了适宜操作的嵌入式软件单元测试方法。
实践证明,该方法大大提高了软件测试水平和软件产品代码的质量。
关键词:测试计划;单元测试;测试过程;嵌入式软件中图分类号:TP311.5; ; ;文献标识码:AAbstract:As the cross-development method is usually applied for embedded software,software testing is conducted early,so as to promptly find out the defects and problems at the early stage of software development.Unit testing is the basic testing in the process of embedded software development.This paper analyses embedded software unit testing,including the choice of testing tools,the analysis of testing content and the optimization of testing process,mainly describing the notes and principles.Through the comprehensive summary and analysis,the paper proposes an easy-to-operate and suitable unit testing method for embedded software.Practice indicates that this method greatly improves the level of software testing and software product quality.Keywords:testing plan;unit testing;testing process;embedded software1; ;引言(Introduction)由于嵌入式软件运行在嵌入式计算机系统中,且实时性强。
嵌入式系统的调试与测试技术研究嵌入式系统是一种高度集成的各种硬件和软件系统,其应用范围广泛,包括汽车、医疗设备、航空航天、工业自动化等领域。
嵌入式系统的调试和测试是确保系统可靠性和稳定性的重要步骤。
本文将从嵌入式系统的调试和测试技术入手,深入探讨如何提高嵌入式系统的可靠性和稳定性。
一、嵌入式系统的调试和测试方法嵌入式系统的调试和测试在整个系统开发过程中起着至关重要的作用。
常见的嵌入式系统调试和测试方法包括:仿真测试、单元测试、集成测试、验收测试等。
其中,仿真测试是利用仿真器或者模拟器对嵌入式系统进行各种测试,可以帮助开发人员在没有实际硬件的情况下快速进行开发和调试;单元测试是对嵌入式系统中的各个模块进行测试,确保每个模块的功能正确性;集成测试是对整个系统进行测试,确保各个模块之间的协同工作正常;验收测试是为了验证开发的系统是否符合客户的需求和要求。
二、硬件调试测试技术硬件调试测试技术是指对嵌入式系统硬件进行测试和调试,主要包括CPU分析器、电路分析仪、万用表、示波器等设备。
在进行硬件调试时,一般首先要进行硬件电路图的设计和分析,确保电路图的正确性和稳定性。
其次,要对板子进行功率测试、时钟测试、引脚测试等测试,保证板子的正常工作。
最后,要进行连通性测试,确保各个模块之间的连接正常。
三、软件调试测试技术软件调试测试技术是指对嵌入式系统软件进行测试和调试,主要包括GDB调试、Trace调试、代码覆盖率测试、文本比对测试等技术。
在进行软件调试时,一般首先要对软件进行静态分析和代码审查,发现潜在的错误和问题。
其次,要利用GDB调试器进行调试,对函数的输入、输出进行跟踪和观察。
最后,要进行文本比对测试,确保程序输出结果的正确性和稳定性。
四、嵌入式系统测试工具嵌入式系统测试工具是指针对嵌入式系统进行测试和调试的软件工具,包括MBIST、JTAG debugger、FileScope、Coverity等工具。
MBIST是一种存储器内置自检工具,可以帮助开发人员快速发现存储器中的问题。
基于TESTBED的嵌入式软件测试方法发布时间:2021-12-04T10:59:19.632Z 来源:《中国科技信息》2021年11月上31期作者:王新[导读] 软件研制过程中为保证软件质量,一般都会开展不同级别的软件测试,测试作为重要的验证方法普遍使用,利用测试工具进一步提高测试的效率及保证测试的有效性。
本文通过基于VxWorks操作系统的嵌入式软件的测试描述,提供一种使用TESTBED开展软件测试的方法。
陕西宝成航空仪表有限责任公司王新陕西宝鸡 721006摘要:软件研制过程中为保证软件质量,一般都会开展不同级别的软件测试,测试作为重要的验证方法普遍使用,利用测试工具进一步提高测试的效率及保证测试的有效性。
本文通过基于VxWorks操作系统的嵌入式软件的测试描述,提供一种使用TESTBED开展软件测试的方法。
关键词:软件测试 VxWorks TESTBED 引言随着系统集成度越来越高,软件在系统中占比不断提高,复杂度增大,软件研制成本不断增大。
软件测试作为保证软件质量的重要手段,贯穿于整个研制过程中。
利用测试工具可配置、自动化等手段可解放开发人员和测试人员,提高测试效率和保证测试质量。
1软件概述本软件运行于PowerPc处理器,利用实时操作系统VxWorks多任务调度策略[1]实现数据采集、数据处理和数据输出功能,集成开发环境为Wind River Workbench 3.2。
2TESTBED概述TESTBED作为专业性测试工具,支持Workbench、Keil、Borland C/C++3.1等多种编译运行环境下的软件测试工作,广泛应用于航空、航天、工业等领域。
其提供编程标准验证、软件度量分析、质量标准验证、静态数据流分析等静态分析;源代码自动插装、覆盖率分析、断言分析、测试用例分析等动态分析功能;并提供图形化结果显示[2],充分满足各种测试需求。
3软件测试概述软件测试目的为验证软件满足质量特性要求,发现软件错误,为软件产品质量的评价提供依据。
科技与创新┃Science and Technology&Innovation ·108·2023年第21期文章编号:2095-6835(2023)21-0108-03通用嵌入式测试平台技术研究范义杰1,赵昶宇2(1.陆装驻天津地区军代室,天津300240;2.天津津航计算技术研究所,天津300308)摘要:为了快速构建嵌入式系统的测试平台,并提高嵌入式系统测试平台的通用性、可维护性和可扩展性,提出一种嵌入式系统分层结构的测试平台,将测试平台分为GUI(Graphical User Interface,图形用户接口)层、XML(Extensible Markup Language,可扩展标记语言)层和通信层,利用XML脚本技术的平台及编程语言无关性,建立了嵌入式系统的通用测试平台,提高了嵌入式系统的测试效率和测试准确率。
该方法已在某地面监控设备中得到应用和验证,不仅降低了开发成本,而且提高了代码的通用性和重用率。
关键词:嵌入式系统;软件测试;配置文件;XML脚本技术中图分类号:TP311.52文献标志码:A DOI:10.15913/ki.kjycx.2023.21.032随着当下信息化技术的飞速发展和进步,嵌入式系统的种类日益增多,嵌入式设备的复杂程度也在不断地增长。
由于嵌入式软件一般具有内存空间不够富裕、实时性要求较高、研发专用的测试工具价格昂贵以及与硬件密切相关等特性,目前大多数嵌入式系统都根据本系统中的硬件配置定制专门的测试工具和平台。
这样一来,就会出现不同硬件的嵌入式设备需要开发不同的测试平台,导致测试成本和人力资源的极大浪费。
为快速构建嵌入式系统的测试平台,并提高嵌入式系统测试平台的通用性、可维护性和可扩展性,本文提出一种嵌入式系统分层结构的测试平台,将测试平台分为GUI层、XML层和通信层,利用XML脚本技术的平台及编程语言无关性,建立了嵌入式系统的通用测试平台,提高了嵌入式系统的测试效率和测试准确率。
基于PolySpace的嵌入式软件内存测试作者:刘春裕王蕾来源:《电脑知识与技术》2010年第01期摘要:基于嵌入式软件的测试经验,针对嵌入式软件特点,研究了基于PolySpace的嵌入式软件内存测试方法,分析了PolySpace使用的语义分析技术,以实例讲解了如何实现内存测试,并指出对覆盖率测试的帮助。
对于嵌入式软件测试,具有实际参考价值。
关键词:内存测试;运行时错误;语义分析技术;覆盖率测试中图分类号:TP311文献标识码:A文章编号:1009-3044(2010)01-85-03Test of Memory Based on the PolySpace For Embedded SoftwareLIU Chun-yu, WANG Lei(Software Test Center of CSBI, Lianyungang 222006, China)Abstract: On the basis of researching software testing technology, aim at characteristic of embedded system, this thesis researched test of memory based on the PolySpace for embedded software. Analyzed the technology of semantic analyse using in PolySpace. Explain how to achieve memory testing by example,raise it can be help to test of procedure cover.Keywords: test of memory; run-time errors; the technology of semantic analyse; test of procedure cover1 研究嵌入式软件内存测试的背景软件测试是提高软件质量的一个重要手段,据统计,国外软件开发机构40%的工作量花在软件测试上,软件开发费用的近1/2用于软件测试。
基于ADS2的嵌入式软件测试仿真建模方法研究摘要:嵌入式软件通常运行于特定的物理环境中,外部设备接口种类多,功能差异大,实时性强,在进行测试时需要花费大量人力、物力来构建测试环境。
针对这一问题,采用半实物仿真技术,利用ADS2测试工具对外部设备进行仿真建模,构建一个逼真的模拟环境来进行嵌入式软件测试。
ADS2能够满足嵌入式软件仿真测试的通用化和实时性要求,可以有效支持数据源、交联设备等多种仿真模型的设计开发。
测试实例表明,利用ADS2进行嵌入式软件半实物仿真测试,能够加快测试环境构建过程,降低测试成本,拓宽测试范围,提高嵌入式软件测试的质量和效率。
关键词: ADS2;嵌入式软件测试;仿真建模软件测试是保证软件质量和可靠性的重要手段。
但由于嵌入式软件的嵌入性、实时性、反应性等特点[1],使其测试变得非常困难。
实践证明,仿真测试是发现嵌入式软件缺陷、提高其可靠性的一种非常有效的方法。
嵌入式软件仿真测试先后发展起来三种主要方案:全实物仿真测试环境、全数字仿真测试环境、半实物仿真测试环境[2-3]。
半实物仿真测试能够逼真地模拟、组织被测软件运行所需的真实物理环境输入信号,驱动被测软件运行,同时接收被测软件的输出结果,对被测软件进行自动、实时、非侵入性的闭环测试。
由于半实物仿真解决方案能够较好地兼顾真实性和可操作性,从而得到国内外的重视,具有良好的发展前景。
典型的半实物仿真测试工具有:德国TechSAT公司的ADS2,美国Opal-RT公司的RT-LAB,德国dSPACE公司的dSPACE等。
1 ADS2测试环境体系结构 1.1 硬件体系结构ADS2(Avionics Development System/2nd Generation)硬件包括实时主机、工作站、接线矩阵、故障注入单元FIBO(Fault Insertion & Break-Out Unit)、外部设备和被测件等,[4]。
ADS2实时主机为VxWorks实时系统,底层采用VME总线,通过不同的VME接口转换板实现CPU板与不同接口之间的连接。
嵌入式软件测试和验证一、软件测试1.1定义1993 年IEEE 对软件测试给出了一个综合的定义:①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中;②是对①中所述方法的研究。
它指出软件工程是一种层次化的技术。
科学的测试是贯穿整个产品生命周期中的测试。
要突破原来对测试的理解,着眼于整个软件生存期,特别是着眼于编码以前各开发阶段的测试工作,以保证软件的质量。
1.2软件测试的真正目标软件测试的真正目标是寻找bug。
即使是在交付时间表很紧的情况下,采取一个步骤来想一下从哪里开始着手,这样,测试才会是最有效率的。
但即使在时间非常充足的情况下,也不可能测试出每一个bug,所以必须将测试划分优先级,划分的根据是基于产品目前的状态(新的,修改的或者只是纯漏洞)和对客户的可能影响而进行的最诚实的评估。
避免采用知道软件可以处理的测试数据和操作;测试人员的任务是在测试中扩大软件的边界。
在设计自动化测试时,也要避免“踩灭”失败条件的误区。
测试人员的任务不是创造大量的总是可以干净的成功运行的测试。
测试人员需要去寻找和理解故障条件。
不要浪费时间去想软件产品中是否存在bug。
它肯定有bug,并且不可能全部找出它们。
测试的目的是指望测试人员找出那些最有影响的bug。
必须要做的是,要从消极的角度考虑这些问题。
1.3软件测试的意义1.发现软件错误;2.有效定义和实现软件成分由低层到高层的组装过程;3.验证软件是否满足任务书和系统定义文档所规定的技术要求;4.为软件质量模型的建立提供依据;即软件测试包括“找错”、“组装”、“确认”和“评估”四个层次的作用。
1.4软件测试方法从不同的角度来看,可以将软件测试的方法分为以下几类:根据是否需要运行被测软件的角度,软件测试分为静态测试方法和动态测试方法。
根据在动态测试中是否需要了解被测软件代码结构的角度,又分为白盒测试和黑盒测试。
根据在静态测试中是否要了解源程序语法的角度,测试可分为语法测试和语义测试。
基于TEmb的嵌入式软件测试V模型研究摘要:在分析传统软件测试方法的基础上,针对传统的V模型在测试过程中各阶段相对独立的缺陷,提出改进回归测试和增强各测试阶段间并行性的方案;利用TEmb( Testing Embedded software)这种特定的嵌入式系统的结构化测试方法,将TEmb通用元素与改进V模型各阶段相结合,提出了一种较通用的嵌入式软件测试方法。
关键词:TEmb;软件测试;改进V模型;并行测试0引言随着技术的发展,嵌入式软件已经应用于很多领域,比如工业生产、国防建设等等。
应用的不断增长,复杂性的不断提高,使得我们要不断地提高嵌入式软件的复杂性和规模,所以,一种较通用且稳定的嵌入式软件测试方案成为了现实的需求,也使得嵌入式软件测试成为当下测试领域的热点。
现阶段,比较常用的嵌入式软件测试模型主要有V模型、X模型及W模型,其中V模型因其较好地表示出测试和软件构造的各个阶段的关系而被广泛使用。
V模型作为最为常用的软件测试模型,把软件的测试和开发分为不同的阶段,并对其中每一个阶段进行针对性测试,而生命周期——作为TEmb方法通用元素之一,也是将测试和开发分为不同的阶段进行。
V模型的缺陷就是把软件的测试和开发分开执行,忽略了这两者在软件系统中是并行执行的。
本文针对V模型的这种缺陷,结合TEmb方法,提出了一种改进的V模型嵌入式软件测试方案。
1TEmb测试方法TEmb是一种方法,它能够为特定的嵌入式系统组合恰当的测试方法。
它提供了一种机制,可以从使用任何测试项目的通用元素和一组相关的特定方法中组合出恰当的专业测试方法,这组特定方法和所观察到的嵌入式系统的系统特性相关联。
对每一个单独的测试层次而言,结构化测试的4个要素同样存在(如图1)。
这4个要素也是这样一些主要问题的答案,即“做什么与什么时候做”、“如何做”、“通过什么做”和“由谁做”,具体如下所示:(1)生命周期(Lifecycle,L)。
它定义必须进行哪些测试以及按照什么顺序执行。