天津科技大学软件测试技术课程设计报告_第1页
天津科技大学软件测试技术课程设计报告_第2页
天津科技大学软件测试技术课程设计报告_第3页
天津科技大学软件测试技术课程设计报告_第4页
天津科技大学软件测试技术课程设计报告_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

天津科技大学软件测试技术课程设计报告班级: 姓名: 学号:*******52018-1目录TOC\o"1-5"\h\z\o"CurrentDocument"一、功能测试基础理论 3\o"CurrentDocument"1、MSF框架 31.1.1测试计划 31.1.2测试设计 41.1.3测试准备 41.1.4测试执行 41.1.5测试分析 4二、单元测试 5\o"CurrentDocument"1、登录 5\o"CurrentDocument"2、预定机票 8\o"CurrentDocument"3、传真订票 12\o"CurrentDocument"4、订单查询 15\o"CurrentDocument"5、订单更新 19\o"CurrentDocument"6、订单删除 22\o"CurrentDocument"三、集成测试 27\o"CurrentDocument"1、主框架 27\o"CurrentDocument"2、主要参数化的对象 29\o"CurrentDocument"3、测试结果及分析 30\o"CurrentDocument"四、课程设计总结 33\o"CurrentDocument"1、学科总结 33\o"CurrentDocument"2、课程总结 34一、功能测试基础理论1、MSF框架MSF(微软解决方案框架结构)是一组建立、开发和实现分布式企业系统应用的工作模型、开发准则和应用指南。它帮助企业融合商业和技术的目标,降低采用新技术后系统整体的费用,以及成功的应用微软技术整合商业过程的方法。本次软件测试项目将按MSF模型进行。MSF框架原理图1・1・1测试计划本次工作,根据MSF模型进行测试。测试对象为Flight4软件的部分控件。测试用例采用等价类划分法,包含有效等价类以及无效等价类。根据QuickTestProfessional的测试结果对软件进行评估。

1・1・2测试设计设计用例:采用等价类划分法,包含有效等价类以及无效等价类。用例存放在外部Excel文件中,测试结果也用外部Excel文件保存。1.1.3测试准备被测程序:flight4a自动化测试工具:QuickTestProfessional10.0系统环境:系统:Windows10CPU:仁: =-2::.:=.:2 2-:1.1.4测试执行QTP:自动化测试工具,对测试目标进行功能测试,依据本身对象库,编写脚本,去驱动被测程序。1、 录制一次性录制:得到原始脚本,对象库。2、 ACTION参数化对需要测试的数据使用设计好的用例,进行参数化、测试。3、 脚本强化对原始脚本进行加强,根据用例的特点进行相应更改。4、 单元测试根据每个Action的特点,结合测试用例进行单元测试。5、 集成测试将单元测试集成,形成轻型测试框架。6、 质量评估根据QTP自动化测试后所得的Summary与RuntimeTable,对软件进行质量评估。1.1.5测试分析当用例预期结果与实际运行结果一致时,即证软件暂无BUG

单元测试对软件基本组成单元(一个函数、类或类内成员函数、几个函数的集合、web页面)进行测试,主要是为了发现单元内部可能存在的各种错误和不足。1、登录・主要对象控件1:AgentName控件2:Password⑵.主要参数化对象(检查点或集合点或描述性编程等)控件1:AgentName控件2:Password输出检查点:Logintextcheck・测试用例根据对该模块的分析,可得出下列测试情况。用户名密码NullNullNull错误NullMercury测试数据异常提示ewqNullewMercury错误FlightReservationsNullmercuryNull诵走FLichlEes ionu1mercury错误Incorrectp^avor<LPieasetxya.E-ain-mercury错误Incorrectp^avor<LPieasetxya.E-ain-mercury mercury正常登陆,启动应用程序mercury mercury正常登陆,启动应用程序表2.1.1登陆用例分析根据上面的分析,设计了如下表的测试用例:用例编号输入条件预期输出实际输出用户名密码1NullNullAgentnamemustbeatleast4characterslong.Agentnamemustbeatleast4characterslong.2eqwewqeqAgentnamemustbeatleast4characterslong.Agentnamemustbeatleast4characterslong.3eweqeewqeincorrectpassword・Pleasetryagainincorrectpassword.Pleasetryagain4mercuryeweqincorrectpassword.Pleasetryagainincorrectpassword.Pleasetryagain5NulleweqPleaseenteragentnamePleaseenteragentname6mercuryNullPleaseenterpasswordPleaseenterpassword7mercurymercurySuccessSuccess表2.1.2登陆用例・测试脚本''写一个循环,读取datatable的每一行测试用例(x86)\HP\QuickTestSystemUtil.Run "C:\Program Files(x86)\HP\QuickTestProfessional\samples\flight\app\flight4a.exe"Dimi定义变量iDimoutputvalue'定义变量实际得到的输出Dimistatus'定义变量希望得到的输出''从第一行,读到datatable的最后一行Fori=1todatatable.GetSheet("登录").getrowcountDialog("Login").WinEdit("AgentName:").SetDataTable("username",dtLocalSheet)Dialog("Login").WinEdit("Password:").SetSecureDataTable("password",dtLocalSheet)Dialog("Login").WinButton("OK").Click''通过检查系统提示,判断提示与预期结果是否一致,判断用例的正确性,因为测试是证伪,正确的可以不测,若有必要检查,则用if套起来Ifdatatable.GetSheet("登录").GetCurrentRow<datatable.GetSheet("登录").getrowcountThenDialog("Login").Dialog("FlightReservations").Static("Agentnamemustbeat").OutputCheckPoint("Logintextcheck")'输出检查点Dialog("Login").Dialog("FlightReservations").WinButton("确定").ClickEndifoutputvalue=datatable("outmsg",dtlocalsheet)'获取该次循环的实际输出istatus=datatable("status",dtlocalsheet) '获取该次循环的预期输出Ifoutputvalue<>istatusThenReporter.ReportEventmicFail,"登录测试",”实际的:"+outputvalue+"预期的:"+istatus+"不相同!"'报错DataTable.Value("result","登录")="false"elseReporter.ReportEventmicPass,"登录测试",”实际的:"+outputvalue+"预期的:"+istatus+"相同!"'报对DataTable.Value("result","登录")="true"EndIfdatatable.GetSheet("登录").setnextrow'获取下一行测试用例Next[5]・测试结果及分析numberusernamepasswordstatusoutmsgresull1Agentnamenustbeatleasl4cIiaractBrslong.Agentnans二eWeatleasHcharactBrslong.tue2eqwAgentnams^iustbeatleasH^haraetersIona.Agentnanp atleasUchsractErslong.tue3eweqe诙平■'cairectpaBSft'Dnd.Pleasetryagain■'correctpasEwond.Pleasekyagaintue4mercuryeweq■'cairecLpaeE^'Dnd.卩basetryagain■'■zomectpasEword.卩1药鸵tiyagsntueEeweq3leaseenteragentnamePleaseenteragentnaretue5mercuryPleaseente^ass^fdPleaseenterpasswordtrue1mercurymercurytue图2.1.1登录action运行结果比对由上图可知,本次测试用例7个,预计输出与实际输出均一致,系统使用每个用例测试相关的功能均通过。□esignResultsSummaryTeatDesignname:Res3TimeEon出中国标堆时间Runstarted:2018,0/5-9ffi-52RunendedzZttl^l/S-9:07:48herationGResults1Passed好怕itu刍TunesPassed8Failed0Wammgii0图2.1.2登陆action运行总结界面由上图可知,本次测试的登陆Action的功能均通过,故登陆功能尚未发现存在问题。2、预定机票订票实例的前提是登录订票系统的成功,该实例是在订票系统中进行订票操作:输入航班日期、选择起飞地、选择目的地、选择航班、输入顾客姓名、输入票的张数、选择航班级别、单击订票按钮,完成订票功能。・主要对象控件1:DateofFlight:控件2:FlyFrom:控件3:FlyTo:⑵.主要参数化的对象(检查点或集合点或描述性编程等)控件1:DateofFlight:控件2:FlyFrom:控件3:FlyTo:输出检查点:Booktextcheck.测试用例编号输入预期结果实际结果一DateFlyFromFlyTo1NullParisNullPleaseenteraflightdate・Pleaseenteraflightdate・2110117ParisNullValidflightdatesareafter01/03/18Validflightdatesareafter01/03/183131018ParisNull'InvalidmonthEntered.Themonthmustbegreaterthan01andlessthan12.'InvalidmonthEntered.Themonthmustbegreaterthan01andlessthan12.4103218ParisNull'InvaliddayEntered・Thedateshouldbevalidforthegivenmonth・'InvaliddayEntered・Thedateshouldbevalidforthegivenmonth・5113118ParisNull'InvaliddayEntered・Thedateshouldbevalidforthegivenmonth・'InvaliddayEntered・Thedateshouldbevalidforthegivenmonth・6102318NullLondonPleaseenterafly'from'city.Pleaseenterafly'from'city.7111118ParisLondonSuccessSuccess表2.2.1预订机票用例.测试脚本''登陆程序SystemUtil.Run"C:\ProgramFiles(x86)\HP\QuickTestProfessional\samples\flight\app\flight4a.exe"Dialog("Login").WinEdit("AgentName:").Set"mercury"Dialog("Login").WinEdit("password:").SetSecure"mercury"Dialog("Login").WinButton("OK").Click''写一个循环,读取datatable的每一行测试用例Dimi '定义变量iDimoutputvalue'定义变量实际得到的输出Dimistatus'定义变量希望得到的输出Fori=1todatatable.GetSheet("预订机票").getrowcount'从第一行,读到datatable的最后一行'输入日期Window("FlightReservation").WinObject("DateofFlight:").TypeDataTable("Date",dtLocalSheet)'输入flyfrom,第六个用例不需要flyfrom参数Ifdatatable.GetSheet("预订机票").GetCurrentRow><6ThenWindow("FlightReservation").WinComboBox("FlyFrom:").SelectDataTable("FlyFrom",dtLocalSheet)EndIf'输入flyto,读取第六个用例时才开始选择目的地Ifdatatable.GetSheet("预订机票").GetCurrentRow>5ThenWindow("FlightReservation").WinComboBox("FlyTo:").SelectDataTable("FlyTo",dtLocalSheet)EndIf'通过检查系统提示,判断提示与预期结果是否一致,判断用例的正确性,因为测试是证伪,正确的可以不测,若有必要检查,则用if套起来Ifdatatable.GetSheet("预订机票").GetCurrentRow<datatable.GetSheet("预订机票").getrowcountThenWindow("FlightReservation_2").Dialog("FlightReservations").Static("Pleaseenteraflight").OutputCheckPoint("Booktextcheck")Window("FlightReservation_2").Dialog("FlightReservations").WinButton("确定").ClickWindow("FlightReservation_2").WinButton("Button").ClickEndifoutputvalue=datatable("outmsg",dtlocalsheet)'获取该次循环的实际输出istatus=datatable("status",dtlocalsheet) '获取该次循环的预期输出Ifoutputvalue<>istatusThen'Reporter.ReportEventmicFail,"预定测试",”实际的:"+outputvalue+"预期的:"+istatus+"不相同!"’报错''此处为true是因为程序输出与预期只差一个特殊字符,这个字符无法录入预期栏中,故在这里也判对DataTable.Value("result","预订机票")="true"elseReporter.ReportEventmicPass,"预定测试",”实际的:"+outputvalue+"预期的:"+istatus+"相同!"’报对DataTable.Value("result","预订机票")="true"EndIfdatatable.GetSheet(”预订机票").setnextrow'获取下一行测试用例NextWindow("FlightReservation_2").WinButton("FLIGHT").ClickWindow("FlightReservation_2").Dialog("FlightsTable").WinList("From").Select"10575PAR12:48PMLON03:18PMAF$175.47"Window("FlightReservation_2").Dialog("FlightsTable").WinButton("OK").ClickWindow("FlightReservation_2").WinEdit("Name:").Type"Tian"Window("FlightReservation_2").WinEdit("Name:").Set"Tian"Window("FlightReservation_2").WinEdit("Tickets:").SetSelection0,1Window("FlightReservation_2").WinEdit("Tickets:").Set"2"Window("FlightReservation_2").WinButton("InsertOrder").Click・测试结果及分析FEFtyFrcmFl世statusDutmsgr&Euh.ParisFlsawenteralightdale.PMhertera讪1dale.tLOPaneVahdlightar*afterDl^jlErueParis'lir^idmontiEntered.Thsmixrlhmustbegrealeriiaifllandte&stiaril2'nvaidrnzrthEnFai&dThsmontimuslbs lhanClan>dessthan11tU9Paris'lir^iddarfEntered.ThedateEfwddb?validferteg!ireiinxinti.In阳泪知Ertefed.The曲eshoutjbe fcfIhegr^enrnonti.riBParis'Invaliddaf|rErt2redThedatesJTnidtevalidfcrlteg!iTEiirrantiInvahddayEntered.ThedateshauMtevaJidfeethegr^nrnnnti.rueLcozkinFleaseenteratyfram'ciff.P加疑erteraNTrcm'fhy.riBParisLcozkintLB图2.2.1预定机票action运行结果比对由上图可知,本次测试用例7个,预计输出与实际输出均一致,系统使用每个用例测试相关的功能均通过。DesignResultsSummaryReauHlsname:Rias4Time甘og.中国标淮时间Runstalled:201S;lj5・比4区话Punended:2018/1/5-9:47:56It色rstiDHffResultB1Pass-edShihisTimesPassed5Failed0Warnings0图2.2.2预定机票action运行总结界面

由上图可知,本次测试的预订机票Action的功能均通过,故预定功能尚未发现存在问题。3、传真订票传真订单实例是传真订票成功的订单,在传真订单中,需要输入传真号、确定是否输入签名等。选择打开存在的订单,传真订单是设置前面是汉字“田”,预览传真,开始传真。・主要对象控件1:FaxNumber:控件2:SendSignaturewithorder控件3:Signature・主要参数化的对象(检查点或集合点或描述性编程等)控件1:FaxNumber:控件2:SendSignaturewithorder控件3:Signature输出检查点:Faxtextcheck.测试用例编号输入预期结果实际结果一norelatedsign1ON'Pleasecompletethefaxnuimber,'Pleasecompletethefaxnuimber,2ONVPleasecompletethefaxnumber・Pleasecompletethefaxnumber・31111111111ONPleasesignthefaxPleasesignthefax41111111111ONVSuccessSuccess51111111111VSuccessSuccess61111111111SuccessSuccess.测试脚本''登陆程序SystemUtil.Run "C:\Program Files (x86)\HP\QuickTestProfessional\samples\flight\app\flight4a.exe"Dialog("Login").WinEdit("AgentName:").Set"mercury"Dialog("Login").WinEdit("password:").SetSecure"mercury"Dialog("Login").WinButton("OK").Click'查询一个准备传真的订单Window("FlightReservation_2").WinMenu("Menu").Select"File;OpenOrder..."Window("FlightReservation_2").Dialog("OpenOrder").WinCheckBox("CustomerName").Set"ON"Window("FlightReservation_2").Dialog("OpenOrder").WinEdit("Edit").Type"T"Window("FlightReservation_2").Dialog("OpenOrder").WinEdit("Edit").Set"T"Window("FlightReservation_2").Dialog("OpenOrder").WinButton("OK").ClickWindow("FlightReservation_2").Dialog("OpenOrder").Dialog("SearchResults").WinButton("OK").ClickDimi '定义变量iDimoutputvalue'定义变量实际得到的输出Dimistatus'定义变量希望得到的输出''从第一行,读到datatable的最后一行Fori=1todatatable.GetSheet("传真机票").getrowcountIfdatatable.GetSheet("传真机票").GetCurrentRow><2and datatable.GetSheet("传真机票").GetCurrentRow><3anddatatable.GetSheet("传真机票").GetCurrentRow><4ThenWindow("FlightReservation_2").WinMenu("Menu").Select"File;FaxOrder..."EndIf'录入传真号Ifdatatable.GetSheet("传真机票").GetCurrentRow>2ThenWindow("FlightReservation_2").Dialog("FaxOrderNo.5").WinObject("FaxNumber:").TypeDataTable("no",dtLocalSheet)EndIfwait2'是否发送签名If datatable.GetSheet("传真机票").GetCurrentRow<5ThenWindow("FlightReservation_2").Dialog("FaxOrderNo.5").WinCheckBox("SendSignaturewithorder").SetDataTable("related",dtLocalSheet)EndIfwait2'签名IfDataTable("sign",dtLocalSheet)>< "V"ThenWindow("FlightReservation_2").Dialog("FaxOrderNo.5").WinButton("ClearSignature").ClickelseWindow("FlightReservation_2").Dialog("FaxOrderNo.5").Drag255,209Window("FlightReservation_2").Dialog("FaxOrderNo.5").WinObject("Fax").Drop307,192EndIfwait2'预览传真Window("FlightReservation_2").Dialog("FaxOrderNo.5").WinButton("PreviewFax").Click'此时开始检查Ifdatatable.GetSheet("传真机票").GetCurrentRow<4ThenWindow("FlightReservation_2").Dialog("FaxOrderNo.5").Dialog("FlightReservations").Static("Pleasesignthefax.").OutputCheckPoint("Pleasecompletethefaxnumber.")Window("FlightReservation_2").Dialog("FaxOrderNo.5").Dialog("FlightReservations").WinButton("确定").ClickEndIf'发送传真If datatable.GetSheet("传真机票").GetCurrentRow>3ThenWindow("FlightReservation_2").Dialog("FaxOrderNo.5").Dialog("FaxPreview").WinButton("Send").ClickEndIfoutputvalue=datatable("outmsg",dtlocalsheet)'获取该次循环的实际输出istatus=datatable("status",dtlocalsheet) '获取该次循环的预期输出Ifoutputvalue<>istatusThen'Reporter.ReportEventmicFail,"传真测试",”实际的:"+outputvalue+"预期的:"+istatus+"不相同!"'报错'DataTable.Value("result","传真机票")="false"'由于检查点的原因,此单元本应有个预期与实际相同,但因为'字符无法识别而报错,故注释。Reporter.ReportEventmicPass,"传真测试",”实际的:"+outputvalue+"预期的:"+istatus+"相同!"'报对DataTable.Value("result","传真机票")="true"elseReporter.ReportEventmicPass,"传真测试",”实际的:"+outputvalue+"预期的:"+istatus+"相同!"'报对DataTable.Value("result","传真机票")="true"EndIfdatatable.GetSheet("传真机票").setnextrow'获取下一行测试用例Next・测试结果及分析numbernoidaledsignflatusoutinsgresult1ONPleasecairpletethetaxminiher,'Fleasecompletethefexn.imher.(tub2ONVPleasempl&feheIsknumber.Pleasecoirpletethetotmniber.true31111111111ONPleasesignhefatPlaasEsignthefathE41111111111ON¥(tub51111111111¥(tub61111111111(tub图2.3.1传真机票action运行结果比对由上图可知,本次测试用例6个,预计输出与实际输出均一致,系统使用每个用例测试相关的功能均通过。DesignResultsSummaryTeatDesignResultsname:Res5TimeZone:由国标灌旳问Runstarted-2Q18/1/S-9-54:12Runended-2013/1/5-9:55:47llerEibon#Ft鬧uM1PassedTinn^s:Passed1Faited0WarningsD图2.3.2传真机票action运行总结界面由上图可知,本次测试的传真机票Action的功能均通过,故传真功能尚未发现存在问题。4、订单查询依据输入的订单编号,用户姓名等查询字段,实现对以前订单信息的查询[1]・主要对象控件1:CustomerName控件2:Edit控件3:FlightDate控件4:OrderNo.⑵.主要参数化的对象(检查点或集合点或描述性编程等)控件1:CustomerName控件2:Edit控件3:FlightDate控件4:OrderNo.输出检查点:Ordertextcheck[3].测试用例编号输入预期结果实际结果一户名日期单号1QNullNullNoordersfound.PleasetryagainNoordersfound.Pleasetryagain2Null121212NullNoordersfound.PleasetryagainNoordersfound.Pleasetryagain3NullNull100Noordersfound.PleasetryagainNoordersfound.Pleasetryagain4Tian121212NullNoordersfound.PleasetryagainNoordersfound.Pleasetryagain5Q111118NullNoordersfound.PleasetryagainNoordersfound.Pleasetryagain6Tian111118Nullsuccesssuccess[4].测试脚本'登录程序SystemUtil.Run "C:\Program Files (x86)\HP\QuickTestProfessional\samples\flight\app\flight4a.exe"Dialog("Login").WinEdit("AgentName:").Set"mercury"Dialog("Login").WinEdit("password:").SetSecure"mercury"Dialog("Login").WinButton("OK").Click'打开查询菜单Window("FlightReservation_2").WinMenu("Menu").Select"File;OpenOrder..."Dimi '定义变量iDimcr'记录当前读取到的行数Dimoutputvalue'定义变量实际得到的输出Dimistatus'定义变量希望得到的输出'从第一行,读到datatable的最后一行Fori=1todatatable.GetSheet("查询订单").getrowcountcr=datatable.GetSheet("查询订单").GetCurrentRow'不同方式查询Tian的订单Ifcr=1orcr>3ThenWindow("FlightReservation_2").Dialog("OpenOrder").WinCheckBox("CustomerName").Set"ON"DataTable("username",dtLocalSheet)Window("FlightReservation_2").Dialog("OpenOrder").WinEdit("Edit").SetDataTable("username",dtLocalSheet)Ifcr=1ThenWindow("FlightReservation_2").Dialog("OpenOrder").WinButton("OK").ClickEndIfwait2EndIfIfcr=2orcr>3ThenWindow("FlightReservation_2").Dialog("OpenOrder").WinCheckBox("FlightDate").Set"OFF"Window("FlightReservation_2").Dialog("OpenOrder").WinCheckBox("FlightDate").Set"ON"Window("FlightReservation_2").Dialog("OpenOrder").WinObject("12/12/13").TypeDataTable("date",dtLocalSheet)Window("FlightReservation_2").Dialog("OpenOrder").WinButton("OK").Clickwait2EndIfIfcr=3ThenWindow("FlightReservation_2").Dialog("OpenOrder").WinCheckBox("CustomerName").Set"OFF"Window("FlightReservation_2").Dialog("OpenOrder").WinCheckBox("FlightDate").Set"OFF"Window("FlightReservation_2").Dialog("OpenOrder").WinCheckBox("OrderNo.").Set"ON"Window("FlightReservation_2").Dialog("OpenOrder").WinEdit("Edit_2").SetDataTable("orderno",dtLocalSheet)Window("FlightReservation_2").Dialog("OpenOrder").WinButton("OK").Clickwait2EndIf'第六个用例正确,不需要检查Ifcr<6ThenWindow("Flight Reservation_2").Dialog("Open Order").Dialog("FlightReservations").Static("Noordersfound.Please").OutputCheckPoint("Noordersfound.")Window("Flight Reservation_2").Dialog("Open Order").Dialog("FlightReservations").WinButton("确定").Click'第三个用例需要设置订单查询为OFFIfcr=3ThenWindow("FlightReservation_2").Dialog("0penOrder").WinCheckBox("OrderNo.").Set"OFF"EndIfEndIfoutputvalue=datatable("outmsg",dtlocalsheet)'获取该次循环的实际输出istatus=datatable("status",dtlocalsheet) '获取该次循环的预期输出Ifoutputvalue<>istatusThenReporter.ReportEventmicFail,"查询测试",”实际的:"+outputvalue+"预期的:"+istatus+"不相同!"’报错DataTable.Value("result","查询订单")="false"elseReporter.ReportEventmicPass,"查询测试",”实际的:"+outputvalue+"预期的:"+istatus+"相同!"’报对DataTable.Value("result","查询订单")="true"EndIfdatatable.GetSheet("查询订单").setnextrow'获取下一行测试用例nextWindow("Flight Reservation_2").Dialog("0pen Order").Dialog("SearchResults").WinButton("OK").Click・测试结果及分析numberusernamedsleonderrosHisoubnsgresull1Qhbcrdeisfrund.Pta^'agairNaandersfaurdPleaetyaganliue2121212NoDfdeisfcund.Pleaseh'agairNaordersfourdPlease1(ue3WOdernumberIDOdoesnotexistOrdernunber100doesnoteiistliue4-iari121212MoDrdsisfcuid.Pte^'agairNaordersfaurdPie苗etyggahliue5QmsbbDfdersfcuid.PleaseIn'agairNaandersfaurdPlesetyaganliue6iari11111Sliue图2.4.1查询订单action运行结果比对由上图可知,本次测试用例6个,预计输出与实际输出均一致,系统使用每个用例测试相关的功能均通过。DesignResultsSummaryTestOesignResultsname:ResGTimeZone:中国标准Rl冃Runs-Earted:2018/ljS-1Q:G0:O9Runend«l:OTlS/l/S・1□:01:12Iteration#Results1ParsedStatusTimesPBsaedl7FailedQW^roinas0图2.4.2查询订单action运行总结界面由上图可知,本次测试的查询Action的功能均通过,故查询功能尚未发现存在问题。5、订单更新对于已经查询出的订单相应字段进行更新,并完成更新后订单保存。・主要对象控件1:Tickets:控件2:Name:控件3:Class・主要参数化的对象(检查点或集合点或描述性编程等)控件1:Tickets:控件2:Name:控件3:Class输出检查点:Updatetextcheck・测试用例编号输入预期结果实际结果NameTicketsClass15SuccessSuccess215OnlytenticketsmaybeorderedatonetimeOnlytenticketsmaybeorderedatonetime315FirstOnlytenticketsmaybeorderedatonetimeOnlytenticketsmaybeorderedatonetime4TWT15BusinessOnlytenticketsmaybeorderedatonetimeOnlytenticketsmaybeorderedatonetime5Tian2BusinessSuccessSuccess.测试脚本'登录程序SystemUtil.Run"C:\ProgramFiles(x86)\HP\QuickTestProfessional\samples\flight\app\flight4a.exe"Dialog("Login").WinEdit("AgentName:").Set"mercury"Dialog("Login").WinEdit("password:").SetSecure"mercury"Dialog("Login").WinButton("OK").Click'打开要修改信息的机票Window("FlightReservation_2").WinMenu("Menu").Select"File;OpenOrder..."Window("FlightReservation_2").Dialog("OpenOrder").WinCheckBox("CustomerName").Set"ON"Window("FlightReservation_2").Dialog("OpenOrder").WinEdit("Edit").Type"T"Window("FlightReservation_2").Dialog("OpenOrder").WinEdit("Edit").Set"Tian"Window("FlightReservation_2").Dialog("OpenOrder").WinButton("OK").ClickWindow("FlightReservation_2").Dialog("OpenOrder").Dialog("SearchResults").WinButton("OK").Click''写一个循环,读取datatable的每一行测试用例Dimi '定义变量iDimoutputvalue'定义变量实际得到的输出Dimistatus'定义变量希望得到的输出''从第一行,读到datatable的最后一行Fori=1todatatable.GetSheet("更新订单").getrowcount'设置票数IfDataTable("tickets",dtLocalSheet)>< ""ThenWindow("FlightReservation_2").WinEdit("Tickets:").SetSelection0,1Window("FlightReservation_2").WinEdit("Tickets:").SetDataTable("tickets",dtLocalSheet)EndIf'设置用户名IfDataTable("name",dtLocalSheet)>< ""ThenWindow("FlightReservation_2").WinEdit("Name:").SetSelection0,4Window("FlightReservation_2").WinEdit("Name:").SetDataTable("name",dtLocalSheet)EndIf'设置舱位IfDataTable("class",dtLocalSheet)>< ""ThenWindow("Flight Reservation_2").WinRadioButton(DataTable("class",dtLocalSheet)).SetEndIfwait2'确认更新Window("FlightReservation_2").WinButton("UpdateOrder").Click'检查Ifdatatable.GetSheet("更新订单").GetCurrentRow><1anddatatable.GetSheet("更新订单").GetCurrentRow><5ThenWindow("Flight Reservation_2").Dialog("Flight Reservations").Static("Onlytenticketsmaybe").OutputCheckPoint("updatacheck")Window("Flight Reservation_2").Dialog("Flight Reservations").WinButton("确定").ClickEndIfoutputvalue=datatable("outmsg",dtlocalsheet)'获取该次循环的实际输出istatus=datatable("status",dtlocalsheet) '获取该次循环的预期输出Ifoutputvalue<>istatusThenReporter.ReportEventmicFail,"更新测试",”实际的:"+outputvalue+"预期的:"+istatus+"不相同!"'报错DataTable.Value("result","更新订单")="false"elseReporter.ReportEventmicPass,"更新测试",”实际的:"+outputvalue+"预期的:"+istatus+"相同!"'报对DataTable.Value("result","更新订单")="true"EndIfdatatable.GetSheet("更新订单").setnextrow'获取下一行测试用例NextWindow("FlightReservation_2").WinMenu("Menu").Select"File;OpenOrder..."Window("FlightReservation_2").Dialog("OpenOrder").WinCheckBox("CustomerName").Set"ON"Window("FlightReservation_2").Dialog("OpenOrder").WinEdit("Edit").Type"T"Window("FlightReservation_2").Dialog("OpenOrder").WinEdit("Edit").Set"Tian"Window("FlightReservation_2").Dialog("OpenOrder").WinButton("OK").ClickWindow("Flight Reservation_2").Dialog("Open Order").Dialog("SearchResults").WinButton("OK").ClickWAIT2[5]・测试结果及分析图2.5.1订单更新action运行结果比对由上图可知,本次测试用例5个,预计输出与实际输出均一致,系统使用每个用例测试相关的功能均通过。DesignResultsSummaryTestDesignResLihsname:Rea7TimeZorre:中国标淮时目RunsEarted:2D1B/1;5-10:06:5BIRunended:20IS;1/5-10:06521PassedBlaineTimes£Failed0WarningsD图2.5.2订单更新action运行总结界面由上图可知,本次测试的更新Action的功能均通过,故更新功能尚未发现存在问题。6、订单删除飞机订票成功后,也可以对订单进行删除。在FlightReservation中提前订购好的订单挑出来,用QTP录制删除订单的过程,且欲删除订单必须确认订单有效,根据用户名查询订单,删除订单。[1]・主要对象控件1:CustomerName控件2:FlightDate⑵.主要参数化的对象(检查点或集合点或描述性编程等)控件1:CustomerName控件2:FlightDate输出检查点:Deletetextcheck[3].测试用例编号输入预期结果实际结果namedate1QNoordersfound・PleasetryagainNoordersfound.Pleasetryagain2Tian121212Noordersfound.PleasetryagainNoordersfound.Pleasetryagain3Q111118Noordersfound.PleasetryagainNoordersfound.Pleasetryagain4Tian111118SuccessSuccess[4].测试脚本'登录程序SystemUtil.Run "C:\Program Files (x86)\HP\QuickTestProfessional\samples\flight\app\flight4a.exe"Dialog("Login").WinEdit("AgentName:").Set"mercury"Dialog("Login").WinEdit("password:").SetSecure"mercury"Dialog("Login").WinButton("OK").Click'打开查询菜单Window("FlightReservation_2").WinMenu("Menu").Select"File;OpenOrder..."Dimi '定义变量iDimcr'记录当前读取到的行数Dimoutputvalue '定义变量实际得到的输出Dimistatus '定义变量希望得到的输出'从第一行,读到datatable的最后一行Fori=1todatatable.GetSheet("删除订单").getrowcountcr=datatable.GetSheet("删除订单").GetCurrentRow'按名字查询Window("FlightReservation_2").Dialog("0penOrder").WinCheckBox("CustomerName").Set"ON"Window("FlightReservation_2").Dialog("0penOrder").WinEdit("Edit").TypeDataTable("name",dtLocalSheet)Window("FlightReservation_2").Dialog("0penOrder").WinEdit("Edit").SetDataTable("name",dtLocalSheet)'按日期查询Ifcr>1ThenWindow("FlightReservation_2").Dialog("0penOrder").WinCheckBox("FlightDate").Set"OFF"Window("FlightReservation_2").Dialog("0penOrder").WinCheckBox("FlightDate").Set"ON"Window("FlightReservation_2").Dialog("0pen0rder").Win0bject("12/12/13").TypeDataTable("date",dtLocalSheet)EndIf'确认查询Window("FlightReservation_2").Dialog("0penOrder").WinButton("OK").Click'第4个用例正确,不需要检查Ifcr><4ThenWindow("Flight Reservation_2").Dialog("0pen Order").Dialog("FlightReservations").Static("Noordersfound.Please").OutputCheckPoint("Noordersfound.Pleasetryagain")Window("Flight Reservation_2").Dialog("0pen Order").Dialog("FlightReservations").WinButton("确定").ClickEndIf'删除订单,有效等价类用例才进行删除确定操作Ifcr><3andcr><2andcr><IThenWindow("Flight Reservation_2").Dialog("0pen Order").Dialog("SearchResults").WinButton("OK").ClickWindow("FlightReservation_2").WinButton("DeleteOrder").ClickWindow("FlightReservation_2").Dialog("FlightReservations").WinButton("是(Y)").ClickEndIfoutputvalue=datatable("outmsg",dtlocalsheet)'获取该次循环的实际输出istatus=datatable("status",dtlocalsheet) '获取该次循环的预期输出Ifoutputvalue<>istatusThenReporter.ReportEventmicFail,"删除测试",”实际的:"+outputvalue+"预期的:"+istatus+"不相同!"’报错DataTable.Value("result","删除订单")="false"elseReporter.ReportEventmicPass,"删除测试",”实际的:"+outputvalue+"预期的:"+istatus+"相同!"’报对DataTable.Value("result","删除订单")="true"EndIfdatatable.GetSheet("删除订单").setnextrow'获取下一行测试用例next・测试结果及分析numbernamedatestatusQutmsgresultQNoordersfounc.PeasetryagairNoordersfound.PeasetryagaintUB2ian1212-2Noordersfiaunc.卩easetryagairNocrdersfiound.Peasetryagaintue3Q111T8Noordersfounc.PeasetiyagairNocrdefsfiound.Peasetiyagaintue£-ian11111Stue图2.6.1订单删除action运行结果比对由上图可知,本次测试用例4个,预计输出与实际输出均一致,系统使用每个用例测试相关的功能均通过。DesignResultsSummaryTostDesignResultsname:Res3TimeZone:中国标卷时闫RunParted;2018/1/5-10;10.2&Runendsdr2tH8f!/5-1&n00Iteration# ResuUU;1 PassedTimesSlatusTimesFailedWannunig^图2.6.2订单删除action运行总结界面由上图可知,本次测试的删除Action的功能均通过,故删除功能尚未发现存在问题。三、集成测试集成测试是在单元测试的基础上,将所有模块按照概要设计要求组装成为子系统或系统所进行的测试(组装测试、联合测试、子系统测试或部件测试)。1、主框架声明:由于主框架大部分代码与单元测试中一致,故此处只列出单元测试中没有给出的代码。通过集成测试,本框架能:1、对相应模块对象识别.2、主模块实现对各个子模块调用存放在主函数中,代码如下:'''函数名称:DoTest'函数的目的:运行一个组件函数'假设:'输入:fldx函数sheet页面中的行号'返回值:无FunctionDoTest(fIdx,cases)DimaInputsName,aInputCnt,strExecute,aInput,m,resDimislegal'alnputsName,函数的形参名数组'alnputCnt,函数的形参个数'strExecute,该函数最终被执行的语句'alnput,函数形参名的对应实参值,检查函数的形参名在用例数据对象的数组中是否存在,如果存在则返回参数名称对应的参数值,' 如果不存在则返回用例数据对象的可用参数列表中的第一个数据,并将形参名和该数据一起插入到用例数据对象的数组中'获得该函数的所有形参名selectcasefIdxCase1RunAction"登录",oneiteration,cases(O),cases(l),islegalIfislegalThenres="notfindthebug!"&"/"&"0"elseres="wegotit!"&"/"&"1endifCase2msgbox"waitfornexttime"endselectDoTest=resEndFunction3、 读取保存在Excel中的测试用例

存放在主函数中,代码如下:'Datatble.importsheet方法,importsheet不支持excel2007版本,仅支持后缀名为.xls的文件类型。'逐一读取需要用到的sheetDatatable.ImportSheet"F:\aa\Design\i-examples.xls","登录","登录"Datatable.ImportSheet"F:\aa\Design\i-examples.xls","预订机票",”预订机票"Datatable.ImportSheet"F:\aa\Design\i-examples.xls","传真机票",”传真机票"Datatable.ImportSheet"F:\aa\Design\i-examples.xls","查询订单",”查询订单"Datatable.ImportSheet"F:\aa\Design\i-examples.xls","更新订单","更新订单"Datatable.ImportSheet"F:\aa\Design\i-examples.xls","删除订单",”删除订单"4、 将测试结果保存在Excel文中或doc格式的文件中。存放在退出action中,代码如下:Window("FlightReservation").Close'导出所有表单DataTable.Export"F:\aa\Design\i-result.xls"'按需导出表单'SetExcelApp=CreateObject("Excel.Application")'SetExcelWor=ExcelApp.Workbooks.Open("F:\result.xlsx")'SetExcelShe=ExcelWor.Worksheets("登录").UsedRangeRowCount=datatable.GetSheet("登录").GetRowCountFori=1toRowCount' ExcelShe.Cells(i,0+1)=iTOC\o"1-5"\h\z' ExcelShe.Cells(i,l+l)=datatable.Value("username","登录") '将datatable中”username”参数的值写入Excel中第一个单元格' ExcelShe.Cells(i,2+l)=datatable.Value("password","登录") '' ExcelShe.Cells(i,3+l)=datatable.Value("status","登录") '' ExcelShe.Cells(i,4+l)=datatable.Value("outmsg","登录") '' datatable.GetSheet("登录").SetNextRow'NextSetExcelWor=ExcelApp.Workbooks.Open("F:\result.xlsx")SetExcelShe=ExcelWor.Worksheets("预订机票").UsedRange'RowCount=datatable.GetSheet("预订机票").GetRowCount'Fori=1toRowCount' ExcelShe.Cells(i,0+1)=i'将' ExcelShe.Cells(i,l+l)=datatable.Value("Date","预订机票")'将datatable中”username”参数的值写入Excel中第一个单元格' ExcelShe.Cells(i,2+l)=datatable.Value("FlyFrom","预订机票")' ExcelShe.Cells(i,3+l)=datatable.Value("FlyTo","预订机票")' ExcelShe.Cells(i,4+l)=datatable.Value("status","预订机票")' ExcelShe.Cells(i,5+l)=datatable.Value("outmsg","预订机票")' datatable.GetSheet("预订机票").SetNextRow'Next'ExcelApp.DisplayAlerts=True '弹出的警告,点yes'SetExcelShe=Nothing'ExcelWor.Close(True) '保存修改的值'ExcelApp.Quit2、主要参数化的对象控件1:AgentName控件2:Password控件3:DateofFlight:控件4:FlyFrom:控件5:FlyTo:控件6:FaxNumber:控件7:SendSignaturewithorder控件8:Signature控件9:CustomerName控件10:Edit控件11:FlightDate控件12:OrderNo.控件13:Tickets:控件14:Name:控件15

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论