

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1使用使用 LDRATestbed 对代码进行单元测试对代码进行单元测试单元测试的主要操作:单元测试的主要操作:被测对象选择被测对象选择编译器的确认与切换编译器的确认与切换单元测试模块单元测试模块 TbrunTbrun 的打开的打开测试序列测试序列( (SequenceSequence) )的创建的创建测试用例的创建测试用例的创建测试用例的测试用例的 IOIO 值设定值设定测试用例中桩的设定测试用例中桩的设定测试用例的执行测试用例的执行测试结果的查看测试结果的查看测试用例的保存测试用例的保存QDQD 测试用例中增加用户全局变量测试用例中增加用户全局变量测试用例创建向导中对全局数组和指针的处理测
2、试用例创建向导中对全局数组和指针的处理详细操作如下:一、测试对象的选择一、测试对象的选择在 Testbed 中 C 码中的“单元”就是一个函数, 每次对一个函数的代码进行测试, 测试时每次打开一个源文件。打开程序 LDRATestbed,点击 Testbed 的菜单 Fileselectfile 通过文件浏览窗口打开文件要分析的文件, 如 C:LDRA_WorkareaExamplesC_testbed_examplesTestrianTestrian.c。C/C+LDRATestbedVcrsicn9.Elit2点击 select 之后,可以在工具快捷按钮栏的下方看见目前选择的文件二、编译器
3、的确认与切换二、编译器的确认与切换在使用 TBrun 进行单元测试前需要先确认当前使用的编译器是否是正确的,如果不是正确的编译器可以切换为正确的编译器,其操作如下:1.确认编译器是否为目标编译器在 Testbed 中右上角的OptionsWindow”中要确认CurrentCompiler”和”DefaultCompiler”所显示的内容,需要注意两点,Current”和Default”是否是目标编译器Current”和Default”是否是一样的,应该相同才可以Ini13tliLiE4nE4fi-nirhi-iCnEtiDDLi-u.t30iBrandiHoy141tiNlLlLiHtrii
4、i8.2ti:?tiiesulSKWFIS):MOFi-fcLur-ifl3n_C/C+4_Ii.Lhi-li.nJTc-tiliccnwsI.LE-U3T4Ml口QL四営LL0I1DptL:JSSCirrentC豐E、卫呼J匕讥iir-CitTiatCcgiLir-fli.crMf*.hi) )Di-fnli匸巴pi:L ir:jji空ir&zaEtntlStndi4ULHLai-oliERAOKLLCO?ACILEI510TIlL24ri44drxTlTWMiti-iEiII-E,prpr-3drcii-lAaLiljaixELDLCLX-ILSEiTLkiricoilLB55LB
5、?G5LQ14EttTFiirlhLstirySl-MrltriLDC:thss&ircecsJeEanrc4filiD:LD1A_V-3X-axLLIEXnj-lxDe_hc-ui_mvcilu,Ll3c-c-uLcaLuLF*L “YLELJLC-I4JX( (1-3UI-S-IfjIsCUiW_VJi-fta.i.Eo( (-5plesSC_:tsiwc1KSVSOeerS.丈finished2.切换编译器如果编译器不是用户想要的目标编译器需要切换,切换方法如下:点击 Testbed 菜单 ConfigureSwitchCompiler,在弹出窗口的编译器列表中选择目标编译器,然
6、后点击 Select 按钮即可。Uxiibliioci-rack-ratlLcrrS4forOMWtR,皿:LiaKiii-TWVWEfEiMdi-icstroppEoriEffrL-Ltxr-b.FLLur-R3n_C/C+-l_nBJBaB3如果编译器选项中的”CurrentCompiler”和”DefaultCompiler”不一致,也需要设置为一致的,車Optimsfind阳Canfapirhtaon.Dpi:i.-KCurrwTitCpMifi11上.1功悶J呼1皿讪出蚀凹.迪_.一-_ICartratCaripilr-NicrosaftYisnal5tndja.-jlgr-lorn
7、doE.01-L-Hjoric)GLHRKU1LER.p口ILInryTCcLLVBTSvi拄LonlLcuLCwdDuttnunattdfilesTftprcessdAnaljrsL-ncLTiClildtfilts2uumn召artdsnvndLdgjLligon.SiitsLtt-uidFiMstaryShortmanth*sourcecod设置方式为点击 Testbed 菜单 ConfigureSwitchCompiler,在弹出窗口中点击ResetCurrentSet 按钮来设置。Carr4ntDoEault:IornAdjo2.0(ViEiomia)UtherCoripi1ersC
8、28XXCodeComposerSudioiyisionmc)MlinGWGCCC/C+v4.5-4.7C6XCodeComposerStudio(ViEionmc)KeiluVision2CSKVisionmcJKeiluVision3CAFtM(Visionme)CodeWarriorMPC83XKSirniyisionnic)Micr-ochipMClB(Vi&ionmcMicrosoftVisualStudio.NET2008JARA/RfVisionm口CodeWarriorHC12(Vidonmc)/Irn1三、单元测试模块三、单元测试模块 TbrunTbrun 的打开的打
9、开由 Testbed 进入 Tbrun 有三种模式,每种模式对应不同的测试类型,三种模式分别为:IntegrationUnit/ModuleTest、IsolationUnit/ModuleTest”和”UnitTestOnly”。C 代码的单元测试使用UnitTestOnlf 模式,CPP 的单元测试使用另外两种模式皆可。3003J&v/itchSelectKesetCiLrrentjetCsnceLCur3rn.tIkfauli:MizrosifiSindie.S1ET2008DlkerCcmpiLer3ResettingTBrun.AddCompiler.在 Testbed 菜单
10、 TBrunTUnitTestOnly 点击,即可进入 Tbrun 模块。C/C+LDRATestbedVeiion94.61975-2014LDRALtd.CuitomerID4InvokeTBrunForMultiplefilesinSetSelectMultipleFilesforTBruninvocation.,.CorinectiontimeoutZOsecornfsNOIITIalhosti1LMinimumuserinzcitivitFtimeoutfeecondEll:900!?*+,-*r1r-i-i-四、测试序列四、测试序列(Sequence)(Sequence)的创建的创
11、建在 Tbrun 中是使用测试序列(sequence)来容纳测试用例和测试数据的,进入 Tbrun 后第一步需要做的就是创建测试序列。建议每一个函数对应一个测试序列,便于用例管理在 Tbrun 的菜单 Sequence-TNew 点击,弹出测试序列创建窗口,在 Sequencename”下面需要用户写入 Sequence 的名字;窗体下面的选项卡设置如下,在CodeCoverage”选项卡中把选择框CodeCoverage”选上,此项可自动计算覆盖率信息,在TestEnviroment”选项卡中把选择框CreateDicitoary”、CreateUserGlobals”、CreateStub
12、s,注意Testbuild选择框不要选,其他保持默认设置即可;然后点击Continue按钮即可。FileetAnalysisFilt!iTLilertmt:Ggi-u:LagWirLiioivIrntialisingLiizenseUnablfitachbckout1ReS3cn:LiciiseFeature:,i,i,rL_C/Cl-+_Li:EiTBrunTEevolveIndividualRjesultsSetRes:uItsConfigureSDSDIritugirationUnit/hl口dulsTestIolatiDnUnitfModuleFestUnitTestonlyGener
13、ateInterface1ReporcERunTBrunRegressio-nAnalysisWhiteBoxInstrumentationInvokeTBrunFarAllFilesinSetInvokeTErunFarSelectedIndividualFile在 Testbed 菜单 TBrunTUnitTestOnly 点击,即可进入 Tbrun 模块。C/C+LDRATestbedVeiion94.61975-2014LDRALtd.CuitomerID5五、测试用例的创建五、测试用例的创建6在Tbrun窗体的右上角FileView窗口中, 点击文件名能够展开显示文件中所包含的函数,
14、把鼠标放到某个函数名上,右键弹出菜单点击CreateNewTestCasg,File丫临*deme后1Ggroceirs.c:GlobalVariables::醐initi呂Iise_customer-voidl|::謝customer_cash_injection-double:節get_number_of_pence-int:節convertjsence-doublelbuy_frurt-intlchar_to_fruit-int会弹出测试用例创建向导窗口NewTes1CaseWirardforProce-ure:buy_uiLtxISr:JTiLS.bouitacreate也testcu
15、e召亡d.IKPtnikesnterfoctshtnrrihlow.Duririgthe爭nasralLonofitu:loEtQQEthanscfnoybeprcnptcdforthebastr4Epan.ECtocanmousiiu-a.tiODEEastcuse:.SelectedProcedureJ;Ggrocers,cP警GobmlVeriehles-JVbuy_fruit_SK-intReturnType-intl()ParannstsinEL|警GlobalVariablesDynamicCarersgeMetrics出民Calls莖char_ta_fruit亡:
16、bu/_fTUitSLJEEffectAnalysis(Besatire7eatancjEua.blgSideEf亡匚i.sfartheclobalsintEeiLeQEllxeOTInjcorpcitfat*Fu&ndtArSub-FiaidsAd.dAdditionolForajnclSufarFisidetothaUUT匚an.tiiujA|Car)cA!离buy.ruitex-irtl鄭chan0%CQICLTcCreateNevTestCaseRunStandardExtremeTestCallsViewRunTiabularExtremeleEtProcedureCalls
17、mainbuy_fruitbuyjruiltexbuy_healthi&stViewReformatiedPro匚巳duriCodeViewFlcwgraphfilters7在此窗口中会显示函数的基本信息,可不用关注,直接点击按钮”Continue”向下进行,这样一个用例创建完成,可在用例管理窗口”TestCaseView”中显示已经创建的用例,以数字编号用例,在”VariableI/OView”窗口中会显示此函数的输入输出参数。TestCaseVix|AfestCaseRegessionP/FProcedureObject囲1buyjFruit_exVariableI/OViewVa
18、lueNameTyppUse-0QDouble-clicktoaccessManagedStubsStubsfestCasePITopertyIfirst_charcharInputparameterappliedthrougTcustomencashdoubleTnputglobalgfruit_pricesOdoubleInputglobalfruitjpricesldoubleInputglobal彳匚ppr六、测试用例的输入输出参数六、测试用例的输入输出参数 IOIO 值设定值设定测试用例的输入输出参数值的设定是测试的核心,在这一步决定了有什么样的输入和用例运行之后应该有什么样的输出(
19、预期输出),从而实现了函数功能的验证。对于函数的输入输出不只有函数的参数,还包含函数内部使用的全局变量。在VariableI/OView”窗口中工具会显示出函数的参数和内部使用的全局变量,并会显示每个参数是输入还是输出,用户给每个参数赋值即可,注意输入以I标示的,输出是以O标示的,此处的输出是指预期的输出值。Vai-iableI/OViewaxValueNameTypeUs&12fruiVpnces.2JdoubleInputglobal2fruiVpnce&3doubleInputglobal2fruitpnce&4doubleInputglobal4.3jstome
20、r;匚自HidoubleOutputglobal%intFunctionresultTHf卜对于标示为I”的变量一定要有一个确定的值,要不让用例无法执行。七、测试用例中桩的设定七、测试用例中桩的设定桩使用一个函数原型相同的空函数来代替原函数如果被测函数中调用了其他函数,则被调用函数会被打桩,如果被调用函数的返回值影响了被测函数的分支流程,或被调用函数的动作影响了被测函数的分支流程,则需要对桩进行设置,一般设置桩的返回值即可满足。在 Tbrun 的“VariableI/OView”中, 双击”MDouble-clicktoaccess”图标即可打开桩的属性设置其返回值等u-i&LLe:I
21、/OVitf&X8仙NameUseBDoubl-cliLk.toaccessManagedStubs宝UtTestCasePrQpwty1 Efira_dnarcharInputparameisfappliedthrouglI4,3customtrcashdoubleInputglobalfrurt_pricrsOdoubleGnput1口占门1UI2fruitPTTECKIIIdoubleDnputqlfaal在桩函数右键,弹出菜单,选择”SetReturnValueOnExit”,弹出返回值设定窗口在途中的Value设定返回值,点击OK。八、测试用例的执行八、测试用例的执行测试用例
22、的 IO 设置和桩的设定之后, 此用例就算构造完成了, 接下来要做的就是执行用例,有两种运行方式,操作方法如下:a.一键式运行用例;在测试用例管理窗口中的空白处右键可弹出菜单,点击RunTest9CaseDriver”即可运行用例。b.分步式执行用例;在测试用例管理窗口中的空白处右键可弹出菜单,按顺序点击“GenerateDriver”、”BuildDriver”、”ExecuteDriver”、(“SplitRegressionDriverOutput”)、ProcessRegressionDriverOutput”, 每执行一步如果执行成功则会在旁边以“厂提示,如果不成功则没有“厂,请排查
23、原因。L-ilLLxry_mi七_。囂l!ocptiontHj-Lpn-tforauEtsnfir.uwh二4SOOCODa-l-OCClPASSOutputfor%=0FAS5SeqaeKceroutputfilefoundOutputfilen:=fTie:C:LBEA_WorksreatliwrkfLsdaExecutingsequeueerprogranfiILjshed.TestCasei討lest匚Regress-ionP/F同1irrClearNe-wfesiC3scRunfes-fCeDriverRunTest匚aceDriverxvithTest匚aseCoverageGen
24、.eratsDriverB,uildDriverEecufc&DiriveSplitIRjegressiD-nDinverOutputProcessRjcgressionDriverOutputVie/tf/EditOTiverProgramView/EditDriverHostProgram?rHelp,pres-sFl九、测试结果的查看九、测试结果的查看单元测试其测试结果由两部分构成:函数功能验证和函数覆盖率信息;函数功能的验证是通过用例的执行之后的用例确认对话框中的 Pass/Fail 结果反映的。ATe-stCastRjc-gressionP丿F匝1=Output1TL10W.
25、匚learNev/lest匚aseRunTestCaceDrivertualYalu.eInjutvalueGenerateDrijerBuildDriverExeculieDriverSpirtRrgressionDriverOutputPlrocesEReiqreBBioHDrivEMrOuutView/EditDriverProgramWiew/EditDriverHostProgram10函 数 的 覆 盖 率 信 息 可 通 过 动 态 覆 盖 率 分 析 报 告 来 查 看 , 在 Tbrun 的 菜 单ResultDynamicCoverageAnalysisReport 点击即
26、可, 此报告中包含整个文件中所有函数的语句、分支 MC/DC 覆盖率信息。还有一种图形化的方式显示函数的覆盖率信息,在 Tbrun的用例管理窗口, 选中用例然后右键在弹出的菜单中选择”ViewFlowgraph”即可打开覆盖率图形化显示窗体,图中绿色的代表已经覆盖了的,红色的代码未覆盖的在弹出窗体中可通过菜单选择为图形添加分支跳转条件注释LDFWCoveragePasiyF-aEIFlowqraphofprocedure:buy_fruit_GFADHVic-rubay_fruit_exOptionsSele-ctWtbsiteLinksIHrlpFileD-veirui&wOverl
27、ayLCGAJCoverageViewprocedurepenaHiesHighlightIXSAJsHighlightNextLCSAJHighlightPr&viousLCSAJRemovehighlighting哲R&moveAnnotadonsCtrl4CtrltJCtrl+CCtrl+ESPVcompressPVde-compresERestoretooriginalgraph11十十、测试用例的保存测试用例的保存通过设计多个测试用例执行,函数的功能全部验证通过,并且覆盖率的值也达到了测试规范中的要求的值,此函数的测试就可以结束了,以便于以后对此函数进行回归测试,需要
28、用户把用例保存起来,保存的操作如下:在 Tbrun 的菜单 SequenseExprotTestCase(TCF)点击,通过文件浏览窗体选择一个目录来保存对应的 TCF 文件。QC+-TBrunVersionS4.Gg2014LDRALtd.至此单元测试的主要操作流程结束,下面介绍在测试用例创建过程中会常用到的几个重要的操作处理。、测试用例中增加用户全局变量测试用例中增加用户全局变量单元测试每次通过 Testbed 来选择一个文件,而我们每个用例是针对一个函数的,所以在编译的时候只编译用户代码中的一个函数,如果此函数中使用了全局变量,且恰好此变量是用”extern”声明的,即全局变量身体的声明
29、(定义)不在此文件内部,就需要用户自己在 Tbrun 中添加此全局变量的声明(定义)。操作如下:在 Tbrun 的菜单 GlobalVariablesCreateUserGlobal 点击即可弹出用户全局变量定义窗口,在窗口中添入”Name”和”DeclarationType”点击 finish 即可。0 0New.Ctrl+NNewfromICF.Open.Ctrl+OKSelectfiles-forNewSequence.,同1ExportlestCases-(TCFQ,Cirl+EOLjiCt:SQUFceSequenceIeslLCaseRunDriverStub聞白门臼g日mentl
30、o-Te-stCse-le-mplaSe-IIRaleG呵fiax-UnrtTeeing.一JT1.-Ic!l_E_.Cus-tooierIi37iliSE心IlACfbL12tubManaqemgntOlDfaalVariablesDictionaryExtreme1tResuhsbdLTictheeltntnisintoth亡t亡itcciLlwswLJILILilorexpectedv-ilictobe3tItrcyL&tLI:temare如(pi町el亡toF亡411thr-eleritTitsfirenth亡its!cscinihiveiaiticlvninesTsiUx 屯Im匸心oxDQI&Jtiibl4IOCHIZIOJU.p|r4|xrj.i4*xLiabutUaUdutrriLJiti:hovtliAofILAit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防盗围墙施工方案
- 农业技术培训
- 河南轻质隔墙施工方案
- 球墨铸铁管 施工方案
- 越野车批发企业数字化转型与智慧升级战略研究报告
- 锦纶纱线企业ESG实践与创新战略研究报告
- 机场绿化与生态行业跨境出海战略研究报告
- 智能烟雾探测灯企业制定与实施新质生产力战略研究报告
- 西装企业ESG实践与创新战略研究报告
- 棉籽批发企业县域市场拓展与下沉战略研究报告
- 2025年内蒙古呼和浩特市属国企业纪检监察机构招聘工作人员80人高频重点模拟试卷提升(共500题附带答案详解)
- 社会工作行政(第三版)课件汇 时立荣 第6-11章 项目管理- 社会工作行政的挑战、变革与数字化发展
- 全过程工程咨询文件管理标准
- 模特摄影及肖像使用合同协议范本
- 2025年湘潭医卫职业技术学院高职单招职业适应性测试近5年常考版参考题库含答案解析
- 《预制高强混凝土风电塔筒生产技术规程》文本附编制说明
- 2025福建福州地铁集团限公司运营分公司校园招聘高频重点提升(共500题)附带答案详解
- 儿童睡眠障碍治疗
- 四川省建筑行业调研报告
- 北京市丰台区2024-2025学年高三上学期期末英语试题
- 2025上海市嘉定工业区农村青年干部招聘22人历年高频重点提升(共500题)附带答案详解
评论
0/150
提交评论