Testbed在嵌入式软件单元测试中的应用
面向集控嵌入式实时软件的单元测试方法研究
(2)按圈复杂度进行高低排序,对圈复杂度高且重要的函数进行重点测试。图5可看出UdpSocket.cpp文件中SocketSndData()函数的圈复杂度最高,因此首先对该函数进行重点测试。
2.2.2 静态测试分析
静态分析的结果能够帮助测试人员从代码内部结构信息中开展工作,帮助质量管理人员从软件质量度量中进行质量监督[5]。通过对软件静态分析的总结,可以从降低代码的圈复杂度和提高代码的注释率两方面提高软件代码质量。
(1)降低代码的圈复杂度
圈复杂度是应用最广泛的静态度量之一,用来衡量一个函数判定结构的复杂程度,圈复杂度公式V(G)=P+1,P是代码中判定结点的数量[6]。程序的可能存在错误数和圈复杂度有着很大的相关性,圈复杂度越大代表程序代码的质量低并且难以维护和测试[6]。
面向集控嵌入式实时软件的单元测试方法研究
摘 要: 针对集控嵌入式实时软件的组成和特点,搭建了适合该软件的仿真单元测试平台,并详细介绍了基于Testbed对该软件进行单元测试的过程。依据静态分析输出的质量度量模型值定量地评价了软件内在源码的质量,并基于圈复杂度度量值提出了一种优先级的动态分析测试策略,用监控到的控制流信息来分析程序的覆盖率,从而确保单元测试的充分性和有效性,提高测试效率,保证软件的质量。
2 集控软件测试关键步骤及实现
2.1 基于Tornado的仿真单元测试环境搭建
集控软件单元测试工具采用的是Testbed,它是英国LDRA公司开发的一种软件代码测试及分析工具,主要用在软件测试和软件维护阶段以便提高软件产品的质量,该工具可提供编码规则检查、软件度量分析、数据流分析、覆盖率分析等功能[5]。在Testbed /Tbrun工具下配置集控嵌入式软件的仿真单元测试环境,需满足在Tornado2.2集成开发环境下成功编译、执行测试驱动程序,具体步骤如下:
嵌入式软件自动化测试技术分析
嵌入式软件自动化测试技术分析嵌入式软件自动化测试技术是指使用自动化工具和技术来实现对嵌入式软件进行测试的过程。
嵌入式软件是指嵌入在硬件设备中的软件系统,常见于电子产品、汽车、医疗设备等领域。
由于嵌入式软件的特殊性,传统的测试方法往往无法满足需求,因此需借助自动化测试技术来提高测试效率、减少测试成本。
1.测试框架和工具:嵌入式软件自动化测试需要使用一些测试框架和工具来辅助测试过程。
常见的测试框架有JUnit、TestNG等,它们提供了一系列的断言和测试运行机制。
还可以使用一些专门针对嵌入式软件的测试工具,如LDRA Testbed、VectorCAST等,它们具备更强的兼容性和适应性。
2.模拟器和仿真器:嵌入式软件往往需要在特定的硬件环境中运行,但对硬件的依赖性会增加测试的复杂度和成本。
为了解决这个问题,可以使用模拟器和仿真器来模拟硬件环境。
模拟器和仿真器是一种虚拟的硬件平台,可以在不真实硬件设备的情况下运行嵌入式软件,并对软件进行测试。
常见的模拟器和仿真器有QEMU、Gem5等。
3.持续集成和自动化构建:嵌入式软件通常需要在不同的平台和配置下进行测试,而手动进行这些测试会非常耗时且容易出错。
可以使用持续集成和自动化构建技术来实现自动化测试。
持续集成是指将代码库中的修改自动集成到主干代码中,并对整个系统进行测试和验证。
自动化构建是指自动化生成可执行文件或固件的过程。
使用这些技术可以实现自动化地构建和测试不同配置下的嵌入式软件。
4.代码覆盖率工具:对于嵌入式软件来说,代码的覆盖率是一个重要的测试指标。
代码覆盖率工具可以帮助测试人员评估测试用例对代码的覆盖情况。
常见的代码覆盖率工具有Gcov、Bullseye等。
5.硬件调试工具:由于嵌入式软件通常运行在硬件设备中,因此在测试过程中可能还需要使用一些硬件调试工具来辅助定位问题。
常见的硬件调试工具有逻辑分析仪、示波器等。
嵌入式软件自动化测试技术包括测试框架和工具、模拟器和仿真器、持续集成和自动化构建、代码覆盖率工具以及硬件调试工具等。
Testbed中文简介
LDRA公司是专业性软件测试工具与测试技术、咨询服务提供者,成立于1975 年,具有丰富的软件测试经验,其总部位于英国利物浦,中国设有总代理上海创景计算机系统有限公司。
其旗舰产品Testbed/TBrun 功能强大、功能全面、易于使用,不仅适合于主机平台软件测试,同时适合于嵌入式软件测试,已成功地应用于国内各大研究机构、软件测试部门。
LDRA Testbed/TBrun 软件测试产品功能介绍一、静态分析功能1、编程标准编程标准验证是高可靠性软件开发不可缺少的软件质量保证方法,使用LDRA Testbed 自动地验证应用软件是否遵循了所选择的编程规则。
编程规则由软件项目管理者根据自身项目的特点并参考现有的成熟的软件编程标准制定,如DERA(欧洲防务标准),MISRA(汽车软件标准),LDRA Testbed 依据此规则搜索应用程序,并判断代码是否违反所制定的编程规则。
LDRA Testbed 报告所有违反编程规则的代码并以文本方式或图形反标注的方式显示。
测试人员或编程人员可根据显示的信息对违反编程规则的代码进行修改。
2、软件度量分析、质量标准验证对于软件开发工程师、项目负责人及高级管理者来说,软件质量的管理与监控是非常困难的且费时。
LDRA Testbed 很好地解决了这一问题,使得管理者很容易地收集正在开发的软件系统的相关信息并判断软件是否满足软件质量标准要求,从而达到对软件项目的质量跟踪与控制,用户可基于现行软件标准自行定义适合本系统或项目的软件质量模型。
LDRA Testbed 支持下列主要软件度量元分析:* 控制流结点度量(Control Flow Knots) ;* LCSAJ 密度度量(LCSAJ Density) ;* 扇入/ 扇出度量;* 循环深度度量;* McCabe 圈复杂度;* Halstead 软件科学度量;* McCabe Essential 复杂度;* 注释行度量;* 代码可达性度量;3、静态数据流分析LDRA Testbed 分析软件中全局变量、局域变量及过程参数的使用状况,并以图形显示、HTMI或ASCII文本报告方式表示,清晰地识别出变量使用引起的软件错误,此种方法既可使用于单元级,亦可使用于集成级、系统级。
浅谈Testbed在嵌入式软件单元测试的应用
浅谈Testbed在嵌入式软件单元测试的应用嵌入式软件作为嵌入式系统的重要组成部分,嵌入式软件质量问题可能会带来设备的损坏和人员的伤亡,因而用户对其质量有较高的要求。
软件测试是对软件质量检验的一个非常重要的手段。
而软件测试中动态测试最基础的测试就是单元测试。
如何开展单元测试以及如何提高单元测试的效率是一个值得研究的问题。
1 软件单元测试的要求及重点软件单元测试是对软件基本组成单元进行测试,测试软件单元是否正确地实现规定的功能,是否满足软件性能和接口要求。
并验证程序与详细设计说明的一致性。
因此在单元测试时,需要模拟被测单元与其他模块之间的交互,开发驱动模块和桩模块两种辅助模块,构建一个可执行的环境,驱动模块用于模拟被测单元的上层模块,测试执行时由驱动模块调用被测单元使其运行;桩模块用于模拟被测单元在执行过程中所调用的模块。
单元测试重点考虑的测试类型有:(1)接口测试。
接口测试主要检查实参与形参的数目是否相等、实参与形参的属性是否匹配、实参与形参的单位是否一致、传到被调用模块的实参的属性是否与形参的属性匹配、是否把常量当作变量传递等内容。
(2)功能测试。
功能测试主要是对照软件单元的设计说明,验证软件是否完成了所需的功能。
(3)重要执行路径测试。
应设计测试用例以发现错误的计算、不正确的比较和不正常的控制流向等错误。
在计算中比较常见的错误是:误解或错误处理算术运算的优先次序、混用不同类的操作、计算精度不够等。
另外在控制软件执行流程的比较操作中比较常见的错误有:不同数据类型的比较、不正确的逻辑操作符或不正确的优先次序、因精度不够使本应相等的数不相等(如浮点数)等。
(4)软件单元的局部数据结构测试。
软件单元的局部数据结构是一个主要的错误来源,应设计测试用例来发现不正确的或不一致的数据说明、初始化有错或没有赋初值、不正确的变量名、不一致的数据类型、上溢/下溢或引用错误等类型的错误。
(5)错误处理路径测试。
一般软件错误处理路径测试应考虑下面几种可能的错误:对错误的描述不易理解、指出的错误并不是所遇到的错误、出错时还没有进行出错处理就先进行系统干预、错误边界条件的处理不正确、描述错误的信息不正确从而不足以确定出错的原因等。
Testbed套件在航天嵌入式软件中的应用
Testbed套件在航天嵌入式软件中的应用
郭莹;刘纪元;康智
【期刊名称】《火控雷达技术》
【年(卷),期】2010(039)001
【摘要】随着航天技术的发展,航天软件的结构也越来越复杂,仅靠软件测试人员的人工统计分析已不能有效地对被测航天软件作出准确评价,使用高级的自动用例生成工具可以克服这些困难,但是完全的测试用例自动生成几乎是不可能的.本文介绍了人工设计测试用例和使用Testbed工具自动生成测试用例两种测试用例生成方法的优缺点,通过分析提出了一种Testbed测试工具辅助的测试用例设计方法,最后,以X型侦察处理DSP嵌入式软件为例,介绍了使用Testbed套件辅助测试用例生成和测试的具体方法步骤.
【总页数】4页(P20-23)
【作者】郭莹;刘纪元;康智
【作者单位】沈阳航空工业学院,沈阳,110136;信息综合控制国家重点实验室,成都,610036;沈阳航空工业学院,沈阳,110136;信息综合控制国家重点实验室,成都,610036
【正文语种】中文
【中图分类】TN274+.5
【相关文献】
1.Testbed/Tbrun应用于嵌入式软件单元测试 [J], 王煜;何永军
2.航天502所发布首个嵌入式软件研发套件 [J],
3.Testbed在嵌入式软件单元测试中的应用 [J], 李博
4.Testbed在嵌入式软件单元测试中的应用 [J], 李博
5.LDRA TESTBED在航天软件测试中的应用 [J], 李中萍;岳海;薛静
因版权原因,仅展示原文概要,查看原文内容请购买。
[word格式] 基于Testbed、TBrun的航天型号软件单元测试应用
基于Testbed、TBrun的航天型号软件单元测试应用42基于Testbed,TBrun的航天型号软件单元测试应用基于Testbed,TBrun的航天型号软件单元测试应用韦全芳阳方林(上海航天电子有限公司)摘要本文首先介绍了航天型号软件单元测试的定义和软件单元测试的意义,然后,介绍了主要测试的内容,方法和通过准则,最后以测试工具Testbed,TBrun针对汇编语言举例详细阐述了单元测试的方法.通过这些例子表明单元测试能发现软件调试过程中不能发现的潜在问题,从而有效地提高了软件的可靠性,健壮性,为后续测试,软件验收和交付打下坚实基础.关键宇航天型号软件单元测试测试工具引言航天型号软件的单元测试是软件研制过程中的重要阶段和软件测试的重要环节.航天型号软件对实时性,可靠性和安全性要求较高,工作环境相对复杂,恶劣;使用者相对单一,固定;在轨运行不可维修.这些特点决定了航天型号软件要特别重视软件的测试.软件单元测试是指对软件部件中确定的能单独测试的一部分软件的测试.软件研制过程进行软件单元测试是非常重要且必需的,首先软件单元的规模较小,容易做到全面充分的测试,本阶段若发现软件中的缺陷,定位和排除这些缺陷都相对比较容易;其次软件单元测试一般是在软件实现阶段进行,在软件开发的早期发现软件的缺陷,这对改善软件的质量和可靠性来说,所花的成本最小.程序的调试不能代替单元测试,因为它们的目的是不同的.单元测试完成对最小的软件设计单元的验证工作,单元测试的输入是在编码后已经成功编译的单元.被成功地测试过的单元是单元测试的输出.对传统开发的研究表明,大约65%的软件缺陷可以在单元测试中捕获,其中的一半是白盒测试捕获的….这是因为单元测试中只包含较少的软件代码,所以软件缺陷比较容易被隔离出来,因此,对于排除软件缺陷,单元测试是最有效的一类测基于Testbed,TBrun的航天型号软件单元测试应用43试.1软件单元测试的内容,方法和通过准则担1.1单元测试的内容单元测试主要内容有:单元的功能测试,单元的接口测试,重要执行路径的测试,局部数据结构,错误处理和影响上述各条的边界条件及非法输入.1.2单元测试的方法1.2.1静态测试静态测试是不运行程序而寻找程序代码中可能存在的错误和评估程序代码的过程.其方法主要依靠人工进行的代码审查,代码走查和由软件工具自动进行的静态分析.1.2.2动态测试动态测试是在测试数据上运行程序并全面分析输出以发现错误的过程,动态测试方法一般采用黑盒测试方法和白盒测试方法.黑盒测试方法是一种按照需求规格说明设计测试●数据的测试方法,一般包括功能分解,边界值分析,判定表,因果图,随机测试,猜错法和正交试验法等;白盒测试方法按照程序内部的逻辑结构和编码结构设计测试数据的测试方法,一般包括控制流测试(语句覆盖,分支覆盖,条件覆盖,条件组合覆盖,路径覆盖等),数据流测试,程序变异,程序插桩,域测试和符号求值等.1.3单元测试的通过准则单元测试的通过准则为:软件单元功能,性能和接口与设计一致;语句覆盖率达到100%;分支覆盖率达到100%;软件单元能正确处理输入和运行中的错误;已对发现的问题进行修改并通过了测试;运行时间,程序占用空间满足要求(对实时嵌入式软件而言);完成单元测试报告.2应用实例2.1Test.bed和TBrun工具介绍.Testbed和TBrun是航天型号软件单元测试普遍采用的测试工具. Testbed用来对软件进行静态分析,首先进行软件模块结构的划分,然后给出静态分析结果:如模块数,软件代码长度,注释率,圈复杂度,扇入数,扇出数,压栈深度,整个软件的结构图和单个模块的流程图等信息.TBrun是一个使用脚本语言来构建测试用例,通过对指令的解释,执行来进行测试的一44基于Testbed,TBrun的航天型号软件单元测试应用个汇编语言单元和C语言单元测试工具.使用简捷的脚本方便地进行测试用例的构建,精确的指令解释模拟程序的正确执行,在完成对函数功能全面的验证基础上,同时还进行详细的语句和分支的覆盖率分析,提供可定制的中文测试报告:而且,TBrun还提供方便的测试用例管理,从而使整个单元测试过程更加可靠,高效,易于管理和回归测试.2.2异常输入测试下面是一段查表子程序:TAB1:MOV A,55H;查表子程序M0VCA.@A+PCRETDB55H,76H,0F4H,0ABH,09H,12H,0AOH,33H等于12H和09H,在正常输入O1H~08H范围之外,但是该段程序没有对这种异常值的输入有合理的输出,导致输出不稳定.针基于Testbed,TBrun的航天型号软件单元测试应用45对这种潜在隐患,对程序修改如下:TAB1:MOV A,55H;查表子程序MOVR0,ASUBBA,#09H;对A先进行判断JNCLOTABMOV A,R0OUT1:ADDA,#06HMOVCA,@A+PCLJMPTAB1RETLOTAB:MOVR0,#00H;异常输入的输出MOV A,R0TAB1RET:RETDB55H,76H,0F4H,0ABH,09H,12H,0AOH,33H修改后的软件对异常输入有了一个固定的输出,该输出值根据软件的功能设置,本文为了说明问题,异常输出均设为00H.对修改后的程序再进行测试,结果如图2所示,没有发生错误.8.23,测蠛用恻0氐23,I,剽诚丽删l瑾嘲6.23.2,斟试I嗣麓入6.233试8.2.4,测l漩罔婀46,六4I,罚f陡穗捌说嘲6.2.4.2,测试曩l蹦黛入采el5er0x0O奔el$e【图2异常输入结果报告46基于Testbed,TBrun的航天型号软件单元测试应用2.3编程规范检查下面是一段除法子程序:DIVE16:M0VR7,#10H;除法子程序L00P1:CLRC;被除数(R3R2RIR0)M0V A,R0;除数(R5R4)ADDA,R0;商(RIR0)M0VR0,A;余数(R3R2)M0V A,R1ADDCA,R1M0VR1,AM0V A,R2ADDCA,R2M0VR2,AM0V A,R3ADDCA,R3M0VR3,AcL00P2M0V A,R2SUBBA,R4M0VR2,AM0V A,R3SUBBA,R5M0VR3,AJNCL00P3M0V A,R2ADDA,R4M0VR2,AM0V A,R3ADDCA,R5M0VR3,A基于Testbed,TBrun的航天型号软件单元测试应用47 L00P3:CA.R2A.R4R2.AA.R3A,R5R3.AR0R7.LO0P1该子程序在KeiluVision2和W A VE6000集成开发环境下,编译器编译时无错误,无警告,实际输出与预期输出也一致.采用动态测试工具TBrun对该子程序进行测试,功能测试均正常,但”编程规范检查工具&分析报告”中显示该子程序违反了编程规范¨,如图3所示,№.10下面的两行信息列出违反了规范”出口不唯一”的模块名称.No.9编程时应该有CAST~识的显式模块化(强制)No.10每个子程序一定要做到唯一入口,唯一出口(强制)一乞e8乞.且SM:q2cDIVE16:RET)一t.e~t.ASH:s6(MAIN:出口数为0)No.11中断处理程序中的压栈,出栈指令要匹配(强制)图3违反规范的内容从图3可以看出,该除法子程序的出口不唯一.根据测试结果,对原程序修改如下:DIVE16:M0VR7,#10H;除法子程序L00P1:CLRC;被除数(R3R2RIR0)M0V A,R0;除数(R5R4)ADDA,R0;商(RIR0)M0VR0,A;余数(R3R2)ZBBZNTRVBVVVCNT唧刚基于Tcstbcd,TBrun的航天型号软件单元测试应用M0V A,R1ADDCA,R1M0VR1,AM0V A,R2ADDCA,R2M0VR2,AM0V A,R3ADDCA,R3M0VR3,AJcLOOP2M0V A,R2SUBBA,R4M0VR2,AM0V A,R3SUBBA,R5M0VR3,AJNCLOOP3mOV A,R2ADDA,R4M0VR2,AM0V A,R3ADDCA,R5M0VR3,ADJNZR7,L00P1SJMPDIVERET;修改的语句,使出口唯一L00P2:CLRCM0V A,R2SUBBA,R4m0VR2,AM0V A,R3基于Testbed,TBrun的航天型号软件单元测试应用49SUBBA,R5MOVR3,ALOOP3:INCR0DJNZR7,LOOP1DIVERET:RET再对修改后的程序进行测试,发现该程序的功能没有发生改变,且符合了编程规范,如图4所示,该除法子程序模块已经不在违反规范”出口不唯一”的列表中.No.9编程时应该有CAST~识的显式模块化(强制)No.i0每个子程序一定蔓做到唯一入口,唯一出口(强制)一testne~T.ASM:60cMAIN:出口数为0)No.11中断处理程序中的压栈,出栈指令蔓匹配c强制)图4违反规范的内容3结论本文通过两个汇编子程序的单元测试实例,证明单元测试可以发现软件的一些缺陷,为纠正软件缺陷提供了依据,为航天型号软件的可靠性提供一个衡量标准,使航天型号软件的编程更加规范化,为软件的后续测试,系统验收和交付打下坚实基础.因此,航天型号软件的单元测试具有非常重要的现实意义.参考文献[1]SoftwareTestingTechniques,B,Beizer,VanNostrandReinhold,1983.[2]QJ3027—98航天型号软件测试规范.[3]TBrunfor8051ASM使用指南.[4]Q/QJA30—2005航天型号软件T程化管理要求.。
基于TESTBED的嵌入式软件测试方法
基于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软件测试概述软件测试目的为验证软件满足质量特性要求,发现软件错误,为软件产品质量的评价提供依据。
Testbed常见问题解答
常见问题解答目录Testbed使用过程中问题解析 (3)1.如何处理中文? (3)2.如何尽快入门:介绍tutorial (3)3.安装的问题:文字竖排、输入许可、软件狗驱动 (4)4.用户许可无效“Control File Configuration” (4)5.试用版不要更改日期 (4)6.嵌入式系统软件的测试(bitmap插装) (4)7.Testbed的bitmap插装技术 (5)8.单元测试的策略:先黑盒再白盒 (5)9.如何测试unix平台的软件 (6)10.能否测试汇编软件? (6)11.软件工程中软件测试的应用:软件生命期的各个阶段(需要画图) (6)12.介绍三种单元测试模式 (7)13.介绍编码规则检查:MISRA (7)14.白盒测试 (8)15.临时软件狗过期更新问题,读不出序列号。
(8)16.为何Testbed软件的主菜单的Configure下没有命令Reset Compiler Options? (9)17.网络狗的本地使用,如何设置: (9)18.有些朋友会问,你们的产品TESTBED和国外同类测试产品相比,优势在哪? (9)19.VC行命令cl的包含选项/I不支持带空格的路径。
(10)20.testbed系统测试报指定的编译工具和实际编译工具不匹配的现象。
(10)21.类中引用类的错误 (10)22.在C++单元测试中,当前测试事例无法引用前一个测试事例的对象 (11)22.给vc++程序做单元测试时,TBrun分析不出正确的函数原型。
(11)23.在什么情况下才对函数打桩? (11)24.在vxworks环境下做单元测试 (11)25.在vxworks环境下用软件方式作系统测试 (12)26.关于做白盒测试,生成的报告时非常的慢,甚至导致假死现象(28所测评中心)。
.. 13 27.安装testbed后,没有配置当前编译环境就做单元测试,build通不过。
Testbed安装说明及单元测试指导书
Testbed工具单元测试指导书1目的本文档用于指导测试人员在项目过程中使用Testbed工具进行单元测试,主要包括单元测试介绍、工具的安装、单元测试相关操作,以及在工程项目中使用Testbed工具进行单元测试常见问题处理和注意事项。
2说明该指导书针对的Testbed工具版本为8.2 的Windows 7版本,编译器采用GCC。
3单元测试介绍3.1测试对象软件单元。
GJB2786的定义:计算机软件部件设计中确定的能单独测试的部分GJB2786A的定义:计算机软件配置项设计中的一个元素;例如,CSCI的一个主要构成部分、这种构成部分的一个部件、一个类、对象、模块、函数、子程序或者数据库。
软件单元可以出现在层次结构的不同层上,并可以由其他软件单元组成。
设计中的软件单元与实现他们的代码和数据实体(子程序、过程、数据库、数据文件等)之间,或与包含这些实体的计算机文件之间并不一定有一一对应的关系。
3.2测试目的检查每个单元能否正确地实现设计说明中的功能、性能、接口和其他设计约束等要求,发现单元内可能存在的各种错误。
3.3测试依据软件设计文档。
3.4为什么进行单元测试1.确保软件单元的正确性2.确保单元之间交互的正确性3.明确函数的目的4.便于定位错误5.利于代码的重构6.可以实现自动化回归测试3.5单元测试工具✓流行的测试软件:Tburn、C++Test、Cantata++、VectorCAST、 Visual Unit、Tessy✓优点:一般都拥有自动化用例生成功能,具有方便的可视化功能,可以统计各类型的代码覆盖率信息。
✓缺点:都是商业软件,测试环境和开发环境完全脱离。
3.6覆盖率类型▪语句覆盖:又称行覆盖(Line Coverage),是最常用也是最常见的一种覆盖方式,就是度量被测代码中每个可执行语句是否被执行到了。
这里说的是“可执行语句”,因此就不会包括像C++的头文件声明,代码注释,空行等非可执行语句。
基于LDRA Testbed软件的单元测试
基于LDRA Testbed软件的单元测试单元测试是软件开发过程中不可或缺的一环,它能够发现代码中的错误和缺陷,提高软件质量和可靠性。
LDRA Testbed软件是一个集成开发环境(IDE),能够帮助开发人员进行单元测试和代码分析。
本文将介绍LDRA Testbed软件的基本原理、功能、应用和优点。
一、基本原理LDRA Testbed软件的基本原理是将代码分析为结构章程(Structural Coverage),并将其转换为函数测试用例。
开发人员可以使用该软件生成测试用例,以测试单元代码是否符合预期要求。
这些测试用例能够包含各种测试类型,如基本路径覆盖、条件覆盖、分支覆盖等。
通过这些测试用例,开发人员能够发现代码中的错误和缺陷,提高软件质量和可靠性。
二、功能LDRA Testbed软件能够实现以下功能:1.静态分析:能够分析代码并检查其是否符合规范。
这个过程能够发现一些潜在的安全漏洞和重构机会。
2.代码覆盖率:能够帮助开发人员检查测试用例是否完全覆盖单元代码,并生成测试报告。
3.自动化测试:能够快速、准确地测试代码,提高软件生产效率。
4.符号执行:通过符号计算机程序运行,能够模拟软件运行过程,发现软件问题。
5.程序执行跟踪:能够记录代码执行时的控制流,与图形界面结合,更容易定位问题。
6.缺陷管理:能够管理问题和工件,建立组织工件和缺陷报表的能力。
三、应用LDRA Testbed软件适用于以下场景:1.嵌入式开发:对于嵌入式系统,测试时要求测试代码的完整性、效率、可靠性和正确性,LDRA Testbed软件能够帮助开发人员实现这些要求。
2.医疗设备:对于一些医疗设备,在测试代码时要求高度安全性和健壮性,使用LDRA Testbed软件可以有效提高测试效率。
3.汽车电子:对于汽车电子产品,要求测试涵盖复杂的逻辑,同时需要高效且可靠。
使用LDRA Testbed能够加快开发和测试速度,帮助开发人员更好地实现目标。
基于Testbed_的单元测试方法及实例分析
覆盖分析,是对形成的线性代码( start 和 finish 配对)
进行覆盖统计,消除了路径覆盖测试用例成几何倍
数,仅需 N + 1( N 为条件个数) 个测试用例即可达到
100%覆盖。 覆盖率配置可以在 Testbed 中进行定义,
此桩函数中增加 m_mapFilter 的初始化代码,确保集
合不为空; 第二 个 即 打 桩 的 ST _ FILER1553B:: ST _
FILER1553B( int,int,int) 构造函数,确保能够初始化
成功;第三个即打桩的 ST _FILER1553B 的 operator <
操作符函数,不然默认的桩函数总是返回 false。 再次
qq_last_test_case、ldra_qq_test_case_number 等 进 行
作者简介:张晓明(1985— ) ,男,陕西礼泉人,高级工程师,本科;研究方向:航空电子技术。
— 51 —
第 19 期
2023 年 10 月
无线互联科技·软件开发
判断区分。
1. 6 系统函数打桩
系统函数一般不用打桩,直接调用即可,如果确有
\ lib \ libQt5Cored. a” 。
2. 2 设计测试用例
因为是针对类的函数测试,必然要调用类的构造
和 析 构 函 数, 又 因 为 是 单 元 测 试, 所 以 必 须 对
C1553::C1553( ) 构造函数和 C1553:: ~ C1553 ( ) 析
构函数这两个函数打桩。
第 19 期
2023 年 10 月
无线互联科技
Wireless Internet Science and Technology
LDRA Testbed使用指南
21 02 S Label name reused。MISRA/DERA 12
标准行第一列中的数用于LDRA内部文档表示本条标准在cpen.dat文件中的序号,如果为0,则表示本标准和当前的实现无关,用户不能修改该数字。
标准行第二列中的数用于打开或关闭本条标准,0表示关闭,1表示打开。
分析域设置允许用户修改Sysppvar.dat和Sysearch.dat文件,如图3所示。
图3
不在源文件中定义而在编译器的选项中定义的宏可以在Sysppvar.dat文件中定义。单击Sysppvar编辑框附近的 按钮,选择Sysppvar.dat文件的存放位置,此时,后面的Create按钮自动变成Edit按钮,单击Edit按钮即可在Sysppvar.dat文件中添加宏定义了。宏定义的格式为:<名字> <数值>或<名字> (<参数1>, <参数2>,…)。
2
2.1
启动C/C++ LDRA Testbed后,首先进入其主界面,如图1所示:
图1
2.2
2.2.1
打开File下拉菜单,选中Select File…选项,或者单击工具栏上的 按钮,在弹出的Select
File对话框中浏览并选择进行分析的源文件,如图2所示:
图2
2.2
当加载新的文件或文件集合时,LDRA Testbed将激活其向导对话框,进入分析域设置界面,
LDRA Testbed使用指南
1
LDRA公司成立于1975年,具有丰富的软件质量保证和软件测试经验。LDRA工具套件功能强大、全面,不仅适用于主机平台的软件质量保证和软件测试,也适用于嵌入式软件的软件质量保证和软件测试。
用Testbed做软件单元测试时一些常见问题的处理
TECHNOLOGY 技术应用摘要:随着我国经济的发展,计算机发展越来越迅猛,测试工具的功能也逐渐强大,同样的,软件测试技术也越来越发达。
单元测试是软件测试的组成部分,也是软件测试的基本要点,是给软件查漏补缺,保证软件质量的必要步骤。
论文以LDRA Testbed测试工具为基础,就单元测试的基本概念和单元测试在工作中的基本方法来结合实际的案例,进行全方位稳妥有效的分析,以期提高测试的覆盖率。
反复的实验结果可以得出结论,在经过严谨的单元测试后,LDR Testbed进行时有效的提高了软件的质量。
关键词:单元测试;LDRA Testbed;用例设计;覆盖率一、前言众所周知,互联网计算机时代的开启了第三次工业革命,各国都大力发展互联网产业,随着经济的发展和科学技术的发展,软件行业也取得了较大的发展,二者相互影响相互促进,相辅相成。
软件行业的发展进程中,有一个重要的影响因素决定着软件质量的高低,这就是软件测试,相对应的,软件测试行业也取得了长足发展,且为了满足软件开发与运行的需求,也不断的在提升其自身技术水平[1]。
软件测试的工作方式就是将已经开发好的软件程序按照常规状态运行,在其运行状态中查明发生的错误,软件的漏洞,查漏补缺,一方面也可以做出软件质量的评估,这样就可以最大程度的减少损失,防止软件正式推向市场后出现问题,最终导致难以挽回的后果。
如果能在软件开发的前期发现并且改正存在的一些错误,可以节省很多成本,最简单直接的就是单元测试。
因为软件市场的多样化越来越明显,出现的问题也越来越多,所以为了应对这些问题,各种功能的测试工具被开发出来投入使用,其中类似LDRA Testbed等工具较为突出,拥有着更精确更高效的能力,能够保证软件的正确性。
主要是为了检测C语言和C++,已经取得了很优秀的成绩,并且在相应领域做出了突出的表现并且占据了一定的地位。
本文就LDRA Testbed来展开研究和分析。
二、单元测试为了对软件进行全方位测试,必须对软件中的每一个小部分做出检测,这一小部分就是程序模块,而用来测试程序模块的就是单元测试。
Testbed安装说明及单元测试指导书
Testbed工具单元测试指导书1目的本文档用于指导测试人员在项目过程中使用Testbed工具进行单元测试,主要包括单元测试介绍、工具的安装、单元测试相关操作,以及在工程项目中使用Testbed工具进行单元测试常见问题处理和注意事项。
2说明该指导书针对的Testbed工具版本为8.2 的Windows 7版本,编译器采用GCC。
3单元测试介绍3.1测试对象软件单元。
GJB2786的定义:计算机软件部件设计中确定的能单独测试的部分GJB2786A的定义:计算机软件配置项设计中的一个元素;例如,CSCI的一个主要构成部分、这种构成部分的一个部件、一个类、对象、模块、函数、子程序或者数据库。
软件单元可以出现在层次结构的不同层上,并可以由其他软件单元组成。
设计中的软件单元与实现他们的代码和数据实体(子程序、过程、数据库、数据文件等)之间,或与包含这些实体的计算机文件之间并不一定有一一对应的关系。
3.2测试目的检查每个单元能否正确地实现设计说明中的功能、性能、接口和其他设计约束等要求,发现单元内可能存在的各种错误。
3.3测试依据软件设计文档。
3.4为什么进行单元测试1.确保软件单元的正确性2.确保单元之间交互的正确性3.明确函数的目的4.便于定位错误5.利于代码的重构6.可以实现自动化回归测试3.5单元测试工具✓流行的测试软件:Tburn、C++Test、Cantata++、VectorCAST、 Visual Unit、Tessy✓优点:一般都拥有自动化用例生成功能,具有方便的可视化功能,可以统计各类型的代码覆盖率信息。
✓缺点:都是商业软件,测试环境和开发环境完全脱离。
3.6覆盖率类型▪语句覆盖:又称行覆盖(Line Coverage),是最常用也是最常见的一种覆盖方式,就是度量被测代码中每个可执行语句是否被执行到了。
这里说的是“可执行语句”,因此就不会包括像C++的头文件声明,代码注释,空行等非可执行语句。
TESTBED中文简介
LDRA公司是专业性软件测试工具与测试技术、咨询服务提供者,成立于1975年,具有丰富的软件测试经验,其总部位于英国利物浦,中国设有总代理上海创景计算机系统有限公司。
其旗舰产品Testbed/TBrun功能强大、功能全面、易于使用,不仅适合于主机平台软件测试,同时适合于嵌入式软件测试,已成功地应用于国内各大研究机构、软件测试部门。
LDRA Testbed/TBrun软件测试产品功能介绍一、静态分析功能1、编程标准编程标准验证是高可靠性软件开发不可缺少的软件质量保证方法,使用LDRA Testbed自动地验证应用软件是否遵循了所选择的编程规则。
编程规则由软件项目管理者根据自身项目的特点并参考现有的成熟的软件编程标准制定,如DERA(欧洲防务标准),MISRA(汽车软件标准),LDRA Testbed依据此规则搜索应用程序,并判断代码是否违反所制定的编程规则。
LDRA Testbed报告所有违反编程规则的代码并以文本方式或图形反标注的方式显示。
测试人员或编程人员可根据显示的信息对违反编程规则的代码进行修改。
2、软件度量分析、质量标准验证对于软件开发工程师、项目负责人及高级管理者来说,软件质量的管理与监控是非常困难的且费时。
LDRA Testbed很好地解决了这一问题,使得管理者很容易地收集正在开发的软件系统的相关信息并判断软件是否满足软件质量标准要求,从而达到对软件项目的质量跟踪与控制,用户可基于现行软件标准自行定义适合本系统或项目的软件质量模型。
LDRA Testbed支持下列主要软件度量元分析:*控制流结点度量(Control Flow Knots);*LCSAJ密度度量(LCSAJ Density);*扇入/扇出度量;*循环深度度量;*McCabe圈复杂度;*Halstead软件科学度量;*McCabe Essential复杂度;*注释行度量;*代码可达性度量;*等等。
3、静态数据流分析LDRA Testbed分析软件中全局变量、局域变量及过程参数的使用状况,并以图形显示、HTML或ASCII文本报告方式表示,清晰地识别出变量使用引起的软件错误,此种方法既可使用于单元级,亦可使用于集成级、系统级。
基于LDRA Testbed的嵌入式软件静态测试
传 统 的 静 态 测 试 方 法 主 要 通 过 代 码 走 读 和代
—
3 6一
瓣 国鼷
码 审查 等 手 段来 查 找 被测 代 码 中的缺 陷 , 它 可 以充
wh i c h a r e g e n e r a t e d b y t h e t o o l ,t e s t i ng e n g i n e e r s ma k e t h e a na l y s i s o f t he p r o g r a m i n c o n s i d e r a t i o n o f t h e r e l e v a n t d o c ume n t s .Ev e n t u a l l y ,t he s t a t i c t e s t i n g r e p o r t i s s ub mi t t e d b y t he m t o t he d e v e l o p e r s .I t i s
Ke y wo r d s : p o we r e l e c t r o n i c ;c i r c ui t ; pr o t e c t ;o v e r he a t ;o v e r c u r r e n t ; o v e r v o l t a g e
中图分 类号 : T P 3 1 1 . 5 文献标 识码 : A 文 章编 号 0 2 1 9 - 2 7 1 3 ( 2 0 1 5 ) 0 4 — 0 3 6 — 0 0 5
收 稿 日期 : 2 0 1 5 — 0 4 — 0 1
或评估 程 序代码 的过程 。该 过程试 图在软件 开 发 的
早期就能发现程序 中尽可能多的潜在缺陷或错误 。 因此 ,对 于软件可靠性要求非常高 的嵌入式软件 ,
基于LDRA Testbed软件的单元测试的研究报告
基于LDRA Testbed软件的单元测试的研究报告LDRA Testbed是一种广泛使用的软件测试工具,主要用于单元测试、代码覆盖率分析和代码质量评估。
在本研究中,我们探讨了基于LDRA Testbed的单元测试实践,以及如何最大化其效益。
首先,我们介绍了单元测试的概念和作用。
单元测试是软件测试的一个重要组成部分,通常在开发过程的早期阶段进行。
它的目的是测试软件中的最小单元,如函数或方法,以验证它们的行为是否符合预期。
单元测试不仅能够帮助发现并修复程序中的错误,还可以提高代码的可读性、可维护性和可扩展性。
此外,对于要在多个平台上运行的软件,单元测试还可帮助我们在不同的环境下发现和修复问题。
接下来,我们介绍了LDRA Testbed的基本特性。
LDRA Testbed可以帮助进行代码静态分析、动态分析、测试覆盖率分析等多种测试形式,其支持的语言包括C、C++、Ada等多种语言。
在进行单元测试时,LDRA Testbed可以自动生成测试用例,并执行这些测试用例以进行测试和分析。
我们还介绍了LDRA Testbed在具体项目中的实践。
在研究中,我们选择了一款航空电子设备控制软件作为测试对象,并使用LDRA Testbed进行单元测试。
我们先对软件的功能单元进行了分析,并编写了相应的测试用例。
接着,我们利用LDRA Testbed对这些测试用例进行测试,并使用其生成的报告来评估测试的效果和覆盖率。
最后,我们根据测试结果对代码进行了优化和修改,以修复所有可能的缺陷。
总的来说,我们在本研究中通过实践证明了LDRA Testbed在单元测试中的高效性和实用性,其为软件测试提供了有力的辅助工具。
在今后的研究中,我们希望进一步探究如何将LDRA Testbed结合其他测试工具和技术,进一步提高软件测试的效率和质量。
在使用LDRA Testbed进行单元测试的实践中,我们收集到了以下数据:1. 测试覆盖率:LDRA Testbed生成的报告显示测试覆盖率为90%。
testbed单元测试常见例子
1多次调用函数void fun_static(void){static i=0;i++;if(i==10){i=0;}}函数fun_static中if(i==10)达不到,只能重复调用函数10次,才能达到该分支。
选择第二个。
创建测试用例选择重复执行函数设置重复执行次数改回原来的设置执行用例。
OK2删除覆盖率记录3函数打桩设置返回值int fun(void){if(a<b){c=a+b;}else{c=a-b;}return c;}void fun_static(void){static i=0;i++;if(fun()==10){i=0;}}Fun函数需要打桩,并设置返回值10才能进入分支。
双击:4打桩函数(指针)设置参数返回值执行用例。
5指针声名#include<stdio.h> extern int *p;void fun_return(void) {int *q = p;if(*q==2){*q=0;}}执行用例更改a的值6插入代码7定义结构体#include<stdio.h>extern struct *s;void fun_return(void){if(s->num==2){s->num=0;}}插入代码:struct Node{int num;};struct Node d;然后执行用例。
注意不能插入:d.num=2; d.num=2;应该在以下地方插入。
TestStand与嵌入式设备的集成实现全面的系统测试
TestStand与嵌入式设备的集成实现全面的系统测试综述:在嵌入式设备开发过程中,系统测试是至关重要的一环。
为了确保软件与硬件的稳定性和兼容性,测试工程师需要找到一种可靠、高效的测试框架。
TestStand作为一种功能强大的测试工具,提供了集成和执行测试的环境。
本文将介绍TestStand与嵌入式设备的集成实现全面的系统测试,并讨论其在嵌入式设备开发中的应用。
一、TestStand的概述TestStand是一种测试自动化软件,由National Instruments(NI)公司开发。
它为用户提供了一个强大的框架,用于创建、执行和管理测试序列。
TestStand具有开放性和可扩展性,可以集成各种硬件平台和测试设备,包括嵌入式设备。
二、TestStand与嵌入式设备的集成1.硬件接口TestStand通过支持各种硬件接口,实现了与嵌入式设备的集成。
它可以通过串口、USB、以太网等连接方式与嵌入式设备进行通信。
测试工程师可以通过TestStand提供的函数以及特定适配器,实现与嵌入式设备之间的数据交互和控制操作。
2.驱动程序开发为了与嵌入式设备进行通信和控制,通常需要编写特定的驱动程序。
TestStand提供了丰富的开发工具和API,可以帮助测试工程师快速开发与嵌入式设备的通信驱动程序。
通过编写针对特定设备的驱动程序,TestStand可以实现对设备的控制、状态监测和数据采集等功能。
3.测试程序设计在TestStand中,测试程序被组织为测试序列。
测试序列是一系列测试步骤的集合,用于执行系统测试。
测试工程师可以使用TestStand提供的编辑器,根据具体的测试需求,设计和组装测试步骤,包括初始化设备、发送测试指令、读取测试结果等。
通过嵌入特定的嵌入式设备驱动程序,测试工程师可以利用TestStand的强大功能,设计全面的系统测试。
4.测试结果分析与报告生成TestStand提供了功能丰富的结果分析工具,可以对测试数据进行统计和分析。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(5)错误处理路径测试 。一般软件错误处理路径 测试应考 虑 下 面 几 种 可 能 的错 误 : 对 错 误 的描 述 不 易 理 解 、指 出 的 错误 并不是所 遇到 的错误 、出错时还没有进 行出错处理就 先进行 系统干预 、错误边 界条件 的处理 不正确 、描述错误 的信 息不 正确从而不足以确定 出错 的原 因等。(6)边界测试。 边界测试是检测软件在其输入 /输 出域 、过程参数 、状 态转 换 、功能界 限等具有一定 范围的边界或端点 条件下 的运行 情况 ,考核 软件的功能 或性能在其边界 条件下或边界 的邻 近 区域 内是否依然满 足设计要求 。按照 上去要求进行单元 测试 时,为 达到要求 的覆盖条件 ,还需采取 一定 的技术手 段对测试覆 盖率进行记 录和分析 ,确保 达到相应 的覆盖率 指标 。采 用 Wlmn单元 级测试工 具 ,能 自动产 生软件测试 驱动 、桩模块 ,提供友好 的输入输 出人机交 互和覆盖率统 计功能 ,能有效提高单元测试 的测试效率。
单元测试重点考虑的测试类型有 : (1)接 El测试 。接 口测 试主要检 查实参 与形参的数 目是否相等 、实参与形参 的属性是 否匹配 、实参 与形参 的单 位是 否一致 、传 到被调 用模 块 的实参 的属性是 否与形参 的属性匹配 、是 否把常量 当作 变量传递等 内容。 (2)功能测试 。功能测试 主要是对 照软件单元 的设计说明 ,验证软件是否完成了所需的功 能。 (3)重要执行路径测试 。应设计测试用例 以发现错误 的计 算 、不正确 的 比较和不正 常的控制 流向等错误 。在计算 中 比较 常见 的错误是:误解 或错误处理算术运算的优先次序 、 混 用不 同类 的操作 、计算 精度不够 等。另外在控 制软件执 行 流程 的 比较 操作 中比较常见 的错 误有 :不 同数 据类型 的 比较 、不正确 的逻辑操作符 或不正确 的优先 次序 、因精度 不够 使本应相等的数不相等 (如浮点数 )等 。 (4)软件单 元 的局部数据 结构测试 。软件单元 的局 部数据结 构是一个 主要 的错误来 源 ,应设计测 试用例来发 现不正确 的或不一 致 的数据说明 、初 始化有错或没有赋初值 、不正确的变量名 、 不一致 的数据类型 、上溢 /下溢或引用错误等类 型的错误 。
(下转 第 73页 )
影 响分析 出,无 机钙对水煤 浆的影 响没 有钙剂 的影 响低很 多 。因为分子量 小 ,不容 易和水融合 的物质是做 固硫 剂 的 材料 。唐海香等对 CaCO 、CaO、Ca(OH):三种钙基 固硫 剂进 行 了固硫 实验对 比,研究 发现 ,三种 钙基 固硫剂 固硫 效 率 的次 序 为 CaO<Ca(OH),>CaCO 。作 为 钙 的同种 族 元 素钡 也具 有 固硫 作用 ,陈 占文 等对 BaCO CaCO 两 种 固 硫剂 进行 了 周硫 实验 ,发 现 BaCO,、与 CaCO 都能起 到 固 硫 作 用 ,BaCO 固硫 效果 要 优 于 CaCO ,但 考虑 到 BaCO 的价格 昂贵 ,不适 用大量 工业 应用 ,CaCO 却原料 易得 , 性 价 比高 .NaOH 高温 分解生 成 的 NaO 能 与燃烧 产物 SO 反应 ,但其 固硫产物分解 温度低 ,周硫 效果差 霍永春等 研究 Ca(OH),与 NaOH的对 比阎硫实验时 认为 ,NaOH在 高温下 分解 为 NaO ,NaO 在燃 烧 中变成 了气 态 ,能 够跟 烟气 飘走 ,这 时候进行管 道冷却 ,其中的一部分硫 就能够 从 烟气 中脱 离 ,粘附在冷却 的管壁 上,这就很容易堵塞管壁 。 :其固硫 产物分解 温度 低 、固硫效果差 等 因素都导致 NaOH 不宜单独作 为 同硫剂 使用 。但是 NaOH却可 与CaCO 同时 使用 ,作为助剂 ,NaOH可提高 CaCO 的固硫效果 。 2.3 固硫 助 剂 研 究现 状
摘要 :文章针 对嵌入 式软件单元测试 ,开展 了一定的工程 实践 ,明确 了单元测试的要 求及 重点 ,介 绍 了测试 结合
测试 工具Testbed/Tbrun的方法 ,有利 于提 高单元测试的有效性和减 少单元测试的时间。
关键 词 :Testbed/Tbrun;软件单元测试 ;嵌入式软件
中 图分 类 号 :TP311
2 Testbed在 单元测试 中的应用
使用 Testbed/TBrun的基本方法是 :设计测试 用例 ;在 Testbed/TBrun中加载被测单元文件 ,通过 Testbed/TBrun对 被测软件进 行源程序 自动插装 ;根据测试用 例设定输入 和 预期 的输 出 ,执行插装 好的源程序单元 ;分 析输入数据 、 预期输 出和实 际输 出 ;得到被测软件在 当前 的测试用例执 行过程 中代码 的覆 盖率 。需要注意 的是 ,每执行一个测试 用例就需 要重新编译 并执行 。Testbed/TBrun的覆盖率统计 只具有 累加 的功能 ,因此 不能查询每一测试 用例执行后 的 覆盖率信 息。在执行完 所有的测试用例 后会 生成一个 总的 覆盖率 文件 ,TestbedfI'Brun通过对覆盖率 文件的分析得 出 软件单元 相应语句 的覆 盖情况 ,根据这 些覆盖情况可 以较 快确定冗余 的测试数据 并增补遗漏 的测 试数 据 ,从而指导 新 的测试 用例设 计 。在实 际应用 Testbed单元测试 时 ,需 注意 以下三个方面 : (1)数组和指针类型的变量的输入 。 数组可以通过在 Testbed/TBrun插装后 的源代码 中插人数组 的初 始化语句对数 组赋值或者在 Testbed]TBmn环境中对数
文献 标 识 码 :A
文章 编 号 :101")9-2374(2013)18—0027—02
嵌入 式软件作 为嵌入式 系统 的重要 组成部分 ,嵌 入式 软件 质量 问题 可能会带来设 备的损坏 和人员 的伤 亡 ,因而 用户 对其质量有 较高 的要求 。软件测试是 对软件质量 检验 的一个非常重 要的手段 。而软件测试 中动态测试 最基础 的 测试 就是单元 测试 。如何 开展单元测试 以及如何 提高单元 测试 的效率是一个值得研究 的问题 。
2013年第 18期 (总 第 261期 )
技 术 应 用
l
丽蕊
中l 高靳技术金I业
} {{
j “ E
“ r《 pபைடு நூலகம் {§£s
NO.18.2013 (CumulativetyNO.261)
Testbed在嵌入 式软件单元测试 中的应用
李 博
(江南机 电设计研 究所 ,贵 州 贵 阳 550009)
1 软件 单元测试 的要求及重 点
软件单元测试 是对软件 基本组成单 元进行测 试 ,测试 软件 单元是否 正确地实 现规定 的功 能 ,是否满足 软件性能 和接 口要求 。并 验证程序 与详细设计说 明的一致 性。 因此 在单元测试 时 ,需要模拟被测单元与其他模块之间 的交互 , 开发 驱动模块 和桩模块 两种辅助模块 ,构建一个 可执行 的 环境 ,驱动模块 用于模 拟被测单元 的上层模块 ,测试执行 时 由驱动模块 调用被测单 元使其运行 ;桩模块用 于模拟被 测单元在执行过程 中所调用 的模块 。