




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
天津科技大學(xué)軟件測試技術(shù)課程設(shè)計報告班級: 姓名: 學(xué)號:*******52018-1目錄TOC\o"1-5"\h\z\o"CurrentDocument"一、功能測試基礎(chǔ)理論 3\o"CurrentDocument"1、MSF框架 31.1.1測試計劃 31.1.2測試設(shè)計 41.1.3測試準備 41.1.4測試執(zhí)行 41.1.5測試分析 4二、單元測試 5\o"CurrentDocument"1、登錄 5\o"CurrentDocument"2、預(yù)定機票 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、主要參數(shù)化的對象 29\o"CurrentDocument"3、測試結(jié)果及分析 30\o"CurrentDocument"四、課程設(shè)計總結(jié) 33\o"CurrentDocument"1、學(xué)科總結(jié) 33\o"CurrentDocument"2、課程總結(jié) 34一、功能測試基礎(chǔ)理論1、MSF框架MSF(微軟解決方案框架結(jié)構(gòu))是一組建立、開發(fā)和實現(xiàn)分布式企業(yè)系統(tǒng)應(yīng)用的工作模型、開發(fā)準則和應(yīng)用指南。它幫助企業(yè)融合商業(yè)和技術(shù)的目標,降低采用新技術(shù)后系統(tǒng)整體的費用,以及成功的應(yīng)用微軟技術(shù)整合商業(yè)過程的方法。本次軟件測試項目將按MSF模型進行。MSF框架原理圖1?1?1測試計劃本次工作,根據(jù)MSF模型進行測試。測試對象為Flight4軟件的部分控件。測試用例采用等價類劃分法,包含有效等價類以及無效等價類。根據(jù)QuickTestProfessional的測試結(jié)果對軟件進行評估。
1?1?2測試設(shè)計設(shè)計用例:采用等價類劃分法,包含有效等價類以及無效等價類。用例存放在外部Excel文件中,測試結(jié)果也用外部Excel文件保存。1.1.3測試準備被測程序:flight4a自動化測試工具:QuickTestProfessional10.0系統(tǒng)環(huán)境:系統(tǒng):Windows10CPU:仁: =-2::.:=.:2 2-:1.1.4測試執(zhí)行QTP:自動化測試工具,對測試目標進行功能測試,依據(jù)本身對象庫,編寫腳本,去驅(qū)動被測程序。1、 錄制一次性錄制:得到原始腳本,對象庫。2、 ACTION參數(shù)化對需要測試的數(shù)據(jù)使用設(shè)計好的用例,進行參數(shù)化、測試。3、 腳本強化對原始腳本進行加強,根據(jù)用例的特點進行相應(yīng)更改。4、 單元測試根據(jù)每個Action的特點,結(jié)合測試用例進行單元測試。5、 集成測試將單元測試集成,形成輕型測試框架。6、 質(zhì)量評估根據(jù)QTP自動化測試后所得的Summary與RuntimeTable,對軟件進行質(zhì)量評估。1.1.5測試分析當(dāng)用例預(yù)期結(jié)果與實際運行結(jié)果一致時,即證軟件暫無BUG
單元測試對軟件基本組成單元(一個函數(shù)、類或類內(nèi)成員函數(shù)、幾個函數(shù)的集合、web頁面)進行測試,主要是為了發(fā)現(xiàn)單元內(nèi)部可能存在的各種錯誤和不足。1、登錄?主要對象控件1:AgentName控件2:Password⑵.主要參數(shù)化對象(檢查點或集合點或描述性編程等)控件1:AgentName控件2:Password輸出檢查點:Logintextcheck?測試用例根據(jù)對該模塊的分析,可得出下列測試情況。用戶名密碼NullNullNull錯誤NullMercury測試數(shù)據(jù)異常提示ewqNullewMercury錯誤FlightReservationsNullmercuryNull誦走FLichlEes ionu1mercury錯誤Incorrectp^avor<LPieasetxya.E-ain-mercury錯誤Incorrectp^avor<LPieasetxya.E-ain-mercury mercury正常登陸,啟動應(yīng)用程序mercury mercury正常登陸,啟動應(yīng)用程序表2.1.1登陸用例分析根據(jù)上面的分析,設(shè)計了如下表的測試用例:用例編號輸入條件預(yù)期輸出實際輸出用戶名密碼1NullNullAgentnamemustbeatleast4characterslong.Agentnamemustbeatleast4characterslong.2eqwewqeqAgentnamemustbeatleast4characterslong.Agentnamemustbeatleast4characterslong.3eweqeewqeincorrectpassword?Pleasetryagainincorrectpassword.Pleasetryagain4mercuryeweqincorrectpassword.Pleasetryagainincorrectpassword.Pleasetryagain5NulleweqPleaseenteragentnamePleaseenteragentname6mercuryNullPleaseenterpasswordPleaseenterpassword7mercurymercurySuccessSuccess表2.1.2登陸用例?測試腳本''寫一個循環(huán),讀取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''通過檢查系統(tǒng)提示,判斷提示與預(yù)期結(jié)果是否一致,判斷用例的正確性,因為測試是證偽,正確的可以不測,若有必要檢查,則用if套起來Ifdatatable.GetSheet("登錄").GetCurrentRow<datatable.GetSheet("登錄").getrowcountThenDialog("Login").Dialog("FlightReservations").Static("Agentnamemustbeat").OutputCheckPoint("Logintextcheck")'輸出檢查點Dialog("Login").Dialog("FlightReservations").WinButton("確定").ClickEndifoutputvalue=datatable("outmsg",dtlocalsheet)'獲取該次循環(huán)的實際輸出istatus=datatable("status",dtlocalsheet) '獲取該次循環(huán)的預(yù)期輸出Ifoutputvalue<>istatusThenReporter.ReportEventmicFail,"登錄測試",”實際的:"+outputvalue+"預(yù)期的:"+istatus+"不相同!"'報錯DataTable.Value("result","登錄")="false"elseReporter.ReportEventmicPass,"登錄測試",”實際的:"+outputvalue+"預(yù)期的:"+istatus+"相同!"'報對DataTable.Value("result","登錄")="true"EndIfdatatable.GetSheet("登錄").setnextrow'獲取下一行測試用例Next[5]?測試結(jié)果及分析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運行結(jié)果比對由上圖可知,本次測試用例7個,預(yù)計輸出與實際輸出均一致,系統(tǒng)使用每個用例測試相關(guān)的功能均通過?!鮡signResultsSummaryTeatDesignname:Res3TimeEon出中國標堆時間Runstarted:2018,0/5-9ffi-52RunendedzZttl^l/S-9:07:48herationGResults1Passed好怕itu芻TunesPassed8Failed0Wammgii0圖2.1.2登陸action運行總結(jié)界面由上圖可知,本次測試的登陸Action的功能均通過,故登陸功能尚未發(fā)現(xiàn)存在問題。2、預(yù)定機票訂票實例的前提是登錄訂票系統(tǒng)的成功,該實例是在訂票系統(tǒng)中進行訂票操作:輸入航班日期、選擇起飛地、選擇目的地、選擇航班、輸入顧客姓名、輸入票的張數(shù)、選擇航班級別、單擊訂票按鈕,完成訂票功能。?主要對象控件1:DateofFlight:控件2:FlyFrom:控件3:FlyTo:⑵.主要參數(shù)化的對象(檢查點或集合點或描述性編程等)控件1:DateofFlight:控件2:FlyFrom:控件3:FlyTo:輸出檢查點:Booktextcheck.測試用例編號輸入預(yù)期結(jié)果實際結(jié)果一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預(yù)訂機票用例.測試腳本''登陸程序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''寫一個循環(huán),讀取datatable的每一行測試用例Dimi '定義變量iDimoutputvalue'定義變量實際得到的輸出Dimistatus'定義變量希望得到的輸出Fori=1todatatable.GetSheet("預(yù)訂機票").getrowcount'從第一行,讀到datatable的最后一行'輸入日期Window("FlightReservation").WinObject("DateofFlight:").TypeDataTable("Date",dtLocalSheet)'輸入flyfrom,第六個用例不需要flyfrom參數(shù)Ifdatatable.GetSheet("預(yù)訂機票").GetCurrentRow><6ThenWindow("FlightReservation").WinComboBox("FlyFrom:").SelectDataTable("FlyFrom",dtLocalSheet)EndIf'輸入flyto,讀取第六個用例時才開始選擇目的地Ifdatatable.GetSheet("預(yù)訂機票").GetCurrentRow>5ThenWindow("FlightReservation").WinComboBox("FlyTo:").SelectDataTable("FlyTo",dtLocalSheet)EndIf'通過檢查系統(tǒng)提示,判斷提示與預(yù)期結(jié)果是否一致,判斷用例的正確性,因為測試是證偽,正確的可以不測,若有必要檢查,則用if套起來Ifdatatable.GetSheet("預(yù)訂機票").GetCurrentRow<datatable.GetSheet("預(yù)訂機票").getrowcountThenWindow("FlightReservation_2").Dialog("FlightReservations").Static("Pleaseenteraflight").OutputCheckPoint("Booktextcheck")Window("FlightReservation_2").Dialog("FlightReservations").WinButton("確定").ClickWindow("FlightReservation_2").WinButton("Button").ClickEndifoutputvalue=datatable("outmsg",dtlocalsheet)'獲取該次循環(huán)的實際輸出istatus=datatable("status",dtlocalsheet) '獲取該次循環(huán)的預(yù)期輸出Ifoutputvalue<>istatusThen'Reporter.ReportEventmicFail,"預(yù)定測試",”實際的:"+outputvalue+"預(yù)期的:"+istatus+"不相同!"’報錯''此處為true是因為程序輸出與預(yù)期只差一個特殊字符,這個字符無法錄入預(yù)期欄中,故在這里也判對DataTable.Value("result","預(yù)訂機票")="true"elseReporter.ReportEventmicPass,"預(yù)定測試",”實際的:"+outputvalue+"預(yù)期的:"+istatus+"相同!"’報對DataTable.Value("result","預(yù)訂機票")="true"EndIfdatatable.GetSheet(”預(yù)訂機票").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?測試結(jié)果及分析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預(yù)定機票action運行結(jié)果比對由上圖可知,本次測試用例7個,預(yù)計輸出與實際輸出均一致,系統(tǒng)使用每個用例測試相關(guān)的功能均通過。DesignResultsSummaryReauHlsname:Rias4Time甘og.中國標淮時間Runstalled:201S;lj5?比4區(qū)話Punended:2018/1/5-9:47:56It色rstiDHffResultB1Pass-edShihisTimesPassed5Failed0Warnings0圖2.2.2預(yù)定機票action運行總結(jié)界面
由上圖可知,本次測試的預(yù)訂機票Action的功能均通過,故預(yù)定功能尚未發(fā)現(xiàn)存在問題。3、傳真訂票傳真訂單實例是傳真訂票成功的訂單,在傳真訂單中,需要輸入傳真號、確定是否輸入簽名等。選擇打開存在的訂單,傳真訂單是設(shè)置前面是漢字“田”,預(yù)覽傳真,開始傳真。?主要對象控件1:FaxNumber:控件2:SendSignaturewithorder控件3:Signature?主要參數(shù)化的對象(檢查點或集合點或描述性編程等)控件1:FaxNumber:控件2:SendSignaturewithorder控件3:Signature輸出檢查點:Faxtextcheck.測試用例編號輸入預(yù)期結(jié)果實際結(jié)果一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'是否發(fā)送簽名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'預(yù)覽傳真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'發(fā)送傳真If datatable.GetSheet("傳真機票").GetCurrentRow>3ThenWindow("FlightReservation_2").Dialog("FaxOrderNo.5").Dialog("FaxPreview").WinButton("Send").ClickEndIfoutputvalue=datatable("outmsg",dtlocalsheet)'獲取該次循環(huán)的實際輸出istatus=datatable("status",dtlocalsheet) '獲取該次循環(huán)的預(yù)期輸出Ifoutputvalue<>istatusThen'Reporter.ReportEventmicFail,"傳真測試",”實際的:"+outputvalue+"預(yù)期的:"+istatus+"不相同!"'報錯'DataTable.Value("result","傳真機票")="false"'由于檢查點的原因,此單元本應(yīng)有個預(yù)期與實際相同,但因為'字符無法識別而報錯,故注釋。Reporter.ReportEventmicPass,"傳真測試",”實際的:"+outputvalue+"預(yù)期的:"+istatus+"相同!"'報對DataTable.Value("result","傳真機票")="true"elseReporter.ReportEventmicPass,"傳真測試",”實際的:"+outputvalue+"預(yù)期的:"+istatus+"相同!"'報對DataTable.Value("result","傳真機票")="true"EndIfdatatable.GetSheet("傳真機票").setnextrow'獲取下一行測試用例Next?測試結(jié)果及分析numbernoidaledsignflatusoutinsgresult1ONPleasecairpletethetaxminiher,'Fleasecompletethefexn.imher.(tub2ONVPleasempl&feheIsknumber.Pleasecoirpletethetotmniber.true31111111111ONPleasesignhefatPlaasEsignthefathE41111111111ON¥(tub51111111111¥(tub61111111111(tub圖2.3.1傳真機票action運行結(jié)果比對由上圖可知,本次測試用例6個,預(yù)計輸出與實際輸出均一致,系統(tǒng)使用每個用例測試相關(guān)的功能均通過。DesignResultsSummaryTeatDesignResultsname:Res5TimeZone:由國標灌旳問Runstarted-2Q18/1/S-9-54:12Runended-2013/1/5-9:55:47llerEibon#Ft鬧uM1PassedTinn^s:Passed1Faited0WarningsD圖2.3.2傳真機票action運行總結(jié)界面由上圖可知,本次測試的傳真機票Action的功能均通過,故傳真功能尚未發(fā)現(xiàn)存在問題。4、訂單查詢依據(jù)輸入的訂單編號,用戶姓名等查詢字段,實現(xiàn)對以前訂單信息的查詢[1]?主要對象控件1:CustomerName控件2:Edit控件3:FlightDate控件4:OrderNo.⑵.主要參數(shù)化的對象(檢查點或集合點或描述性編程等)控件1:CustomerName控件2:Edit控件3:FlightDate控件4:OrderNo.輸出檢查點:Ordertextcheck[3].測試用例編號輸入預(yù)期結(jié)果實際結(jié)果一戶名日期單號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'記錄當(dāng)前讀取到的行數(shù)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'第三個用例需要設(shè)置訂單查詢?yōu)镺FFIfcr=3ThenWindow("FlightReservation_2").Dialog("0penOrder").WinCheckBox("OrderNo.").Set"OFF"EndIfEndIfoutputvalue=datatable("outmsg",dtlocalsheet)'獲取該次循環(huán)的實際輸出istatus=datatable("status",dtlocalsheet) '獲取該次循環(huán)的預(yù)期輸出Ifoutputvalue<>istatusThenReporter.ReportEventmicFail,"查詢測試",”實際的:"+outputvalue+"預(yù)期的:"+istatus+"不相同!"’報錯DataTable.Value("result","查詢訂單")="false"elseReporter.ReportEventmicPass,"查詢測試",”實際的:"+outputvalue+"預(yù)期的:"+istatus+"相同!"’報對DataTable.Value("result","查詢訂單")="true"EndIfdatatable.GetSheet("查詢訂單").setnextrow'獲取下一行測試用例nextWindow("Flight Reservation_2").Dialog("0pen Order").Dialog("SearchResults").WinButton("OK").Click?測試結(jié)果及分析numberusernamedsleonderrosHisoubnsgresull1Qhbcrdeisfrund.Pta^'agairNaandersfaurdPleaetyaganliue2121212NoDfdeisfcund.Pleaseh'agairNaordersfourdPlease1(ue3WOdernumberIDOdoesnotexistOrdernunber100doesnoteiistliue4-iari121212MoDrdsisfcuid.Pte^'agairNaordersfaurdPie苗etyggahliue5QmsbbDfdersfcuid.PleaseIn'agairNaandersfaurdPlesetyaganliue6iari11111Sliue圖2.4.1查詢訂單action運行結(jié)果比對由上圖可知,本次測試用例6個,預(yù)計輸出與實際輸出均一致,系統(tǒng)使用每個用例測試相關(guān)的功能均通過。DesignResultsSummaryTestOesignResultsname:ResGTimeZone:中國標準Rl冃Runs-Earted:2018/ljS-1Q:G0:O9Runend?l:OTlS/l/S?1□:01:12Iteration#Results1ParsedStatusTimesPBsaedl7FailedQW^roinas0圖2.4.2查詢訂單action運行總結(jié)界面由上圖可知,本次測試的查詢Action的功能均通過,故查詢功能尚未發(fā)現(xiàn)存在問題。5、訂單更新對于已經(jīng)查詢出的訂單相應(yīng)字段進行更新,并完成更新后訂單保存。?主要對象控件1:Tickets:控件2:Name:控件3:Class?主要參數(shù)化的對象(檢查點或集合點或描述性編程等)控件1:Tickets:控件2:Name:控件3:Class輸出檢查點:Updatetextcheck?測試用例編號輸入預(yù)期結(jié)果實際結(jié)果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''寫一個循環(huán),讀取datatable的每一行測試用例Dimi '定義變量iDimoutputvalue'定義變量實際得到的輸出Dimistatus'定義變量希望得到的輸出''從第一行,讀到datatable的最后一行Fori=1todatatable.GetSheet("更新訂單").getrowcount'設(shè)置票數(shù)IfDataTable("tickets",dtLocalSheet)>< ""ThenWindow("FlightReservation_2").WinEdit("Tickets:").SetSelection0,1Window("FlightReservation_2").WinEdit("Tickets:").SetDataTable("tickets",dtLocalSheet)EndIf'設(shè)置用戶名IfDataTable("name",dtLocalSheet)>< ""ThenWindow("FlightReservation_2").WinEdit("Name:").SetSelection0,4Window("FlightReservation_2").WinEdit("Name:").SetDataTable("name",dtLocalSheet)EndIf'設(shè)置艙位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)'獲取該次循環(huán)的實際輸出istatus=datatable("status",dtlocalsheet) '獲取該次循環(huán)的預(yù)期輸出Ifoutputvalue<>istatusThenReporter.ReportEventmicFail,"更新測試",”實際的:"+outputvalue+"預(yù)期的:"+istatus+"不相同!"'報錯DataTable.Value("result","更新訂單")="false"elseReporter.ReportEventmicPass,"更新測試",”實際的:"+outputvalue+"預(yù)期的:"+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]?測試結(jié)果及分析圖2.5.1訂單更新action運行結(jié)果比對由上圖可知,本次測試用例5個,預(yù)計輸出與實際輸出均一致,系統(tǒng)使用每個用例測試相關(guān)的功能均通過。DesignResultsSummaryTestDesignResLihsname:Rea7TimeZorre:中國標淮時目RunsEarted:2D1B/1;5-10:06:5BIRunended:20IS;1/5-10:06521PassedBlaineTimes£Failed0WarningsD圖2.5.2訂單更新action運行總結(jié)界面由上圖可知,本次測試的更新Action的功能均通過,故更新功能尚未發(fā)現(xiàn)存在問題。6、訂單刪除飛機訂票成功后,也可以對訂單進行刪除。在FlightReservation中提前訂購好的訂單挑出來,用QTP錄制刪除訂單的過程,且欲刪除訂單必須確認訂單有效,根據(jù)用戶名查詢訂單,刪除訂單。[1]?主要對象控件1:CustomerName控件2:FlightDate⑵.主要參數(shù)化的對象(檢查點或集合點或描述性編程等)控件1:CustomerName控件2:FlightDate輸出檢查點:Deletetextcheck[3].測試用例編號輸入預(yù)期結(jié)果實際結(jié)果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'記錄當(dāng)前讀取到的行數(shù)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)'獲取該次循環(huán)的實際輸出istatus=datatable("status",dtlocalsheet) '獲取該次循環(huán)的預(yù)期輸出Ifoutputvalue<>istatusThenReporter.ReportEventmicFail,"刪除測試",”實際的:"+outputvalue+"預(yù)期的:"+istatus+"不相同!"’報錯DataTable.Value("result","刪除訂單")="false"elseReporter.ReportEventmicPass,"刪除測試",”實際的:"+outputvalue+"預(yù)期的:"+istatus+"相同!"’報對DataTable.Value("result","刪除訂單")="true"EndIfdatatable.GetSheet("刪除訂單").setnextrow'獲取下一行測試用例next?測試結(jié)果及分析numbernamedatestatusQutmsgresultQNoordersfounc.PeasetryagairNoordersfound.PeasetryagaintUB2ian1212-2Noordersfiaunc.卩easetryagairNocrdersfiound.Peasetryagaintue3Q111T8Noordersfounc.PeasetiyagairNocrdefsfiound.Peasetiyagaintue£-ian11111Stue圖2.6.1訂單刪除action運行結(jié)果比對由上圖可知,本次測試用例4個,預(yù)計輸出與實際輸出均一致,系統(tǒng)使用每個用例測試相關(guān)的功能均通過。DesignResultsSummaryTostDesignResultsname:Res3TimeZone:中國標卷時閆RunParted;2018/1/5-10;10.2&Runendsdr2tH8f!/5-1&n00Iteration# ResuUU;1 PassedTimesSlatusTimesFailedWannunig^圖2.6.2訂單刪除action運行總結(jié)界面由上圖可知,本次測試的刪除Action的功能均通過,故刪除功能尚未發(fā)現(xiàn)存在問題。三、集成測試集成測試是在單元測試的基礎(chǔ)上,將所有模塊按照概要設(shè)計要求組裝成為子系統(tǒng)或系統(tǒng)所進行的測試(組裝測試、聯(lián)合測試、子系統(tǒng)測試或部件測試)。1、主框架聲明:由于主框架大部分代碼與單元測試中一致,故此處只列出單元測試中沒有給出的代碼。通過集成測試,本框架能:1、對相應(yīng)模塊對象識別.2、主模塊實現(xiàn)對各個子模塊調(diào)用存放在主函數(shù)中,代碼如下:'''函數(shù)名稱:DoTest'函數(shù)的目的:運行一個組件函數(shù)'假設(shè):'輸入:fldx函數(shù)sheet頁面中的行號'返回值:無FunctionDoTest(fIdx,cases)DimaInputsName,aInputCnt,strExecute,aInput,m,resDimislegal'alnputsName,函數(shù)的形參名數(shù)組'alnputCnt,函數(shù)的形參個數(shù)'strExecute,該函數(shù)最終被執(zhí)行的語句'alnput,函數(shù)形參名的對應(yīng)實參值,檢查函數(shù)的形參名在用例數(shù)據(jù)對象的數(shù)組中是否存在,如果存在則返回參數(shù)名稱對應(yīng)的參數(shù)值,' 如果不存在則返回用例數(shù)據(jù)對象的可用參數(shù)列表中的第一個數(shù)據(jù),并將形參名和該數(shù)據(jù)一起插入到用例數(shù)據(jù)對象的數(shù)組中'獲得該函數(shù)的所有形參名selectcasefIdxCase1RunAction"登錄",oneiteration,cases(O),cases(l),islegalIfislegalThenres="notfindthebug!"&"/"&"0"elseres="wegotit!"&"/"&"1endifCase2msgbox"waitfornexttime"endselectDoTest=resEndFunction3、 讀取保存在Excel中的測試用例
存放在主函數(shù)中,代碼如下:'Datatble.importsheet方法,importsheet不支持excel2007版本,僅支持后綴名為.xls的文件類型。'逐一讀取需要用到的sheetDatatable.ImportSheet"F:\aa\Design\i-examples.xls","登錄","登錄"Datatable.ImportSheet"F:\aa\Design\i-examples.xls","預(yù)訂機票",”預(yù)訂機票"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、 將測試結(jié)果保存在Excel文中或doc格式的文件中。存放在退出action中,代碼如下:Window("FlightReservation").Close'導(dǎo)出所有表單DataTable.Export"F:\aa\Design\i-result.xls"'按需導(dǎo)出表單'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”參數(shù)的值寫入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("預(yù)訂機票").UsedRange'RowCount=datatable.GetSheet("預(yù)訂機票").GetRowCount'Fori=1toRowCount' ExcelShe.Cells(i,0+1)=i'將' ExcelShe.Cells(i,l+l)=datatable.Value("Date","預(yù)訂機票")'將datatable中”username”參數(shù)的值寫入Excel中第一個單元格' ExcelShe.Cells(i,2+l)=datatable.Value("FlyFrom","預(yù)訂機票")' ExcelShe.Cells(i,3+l)=datatable.Value("FlyTo","預(yù)訂機票")' ExcelShe.Cells(i,4+l)=datatable.Value("status","預(yù)訂機票")' ExcelShe.Cells(i,5+l)=datatable.Value("outmsg","預(yù)訂機票")' datatable.GetSheet("預(yù)訂機票").SetNextRow'Next'ExcelApp.DisplayAlerts=True '彈出的警告,點yes'SetExcelShe=Nothing'ExcelWor.Close(True) '保存修改的值'ExcelApp.Quit2、主要參數(shù)化的對象控件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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家具托管協(xié)議書范本
- 餐飲加盟店選址評估合同范本
- 環(huán)保產(chǎn)業(yè)項目投資與運營合作協(xié)議范本
- 倉儲物流倉儲管理員及貨物保險合同
- 瓷磚設(shè)計與生產(chǎn)定制服務(wù)協(xié)議
- 餐飲加盟店加盟店品牌管理與市場拓展合同
- 擔(dān)保合同法律風(fēng)險及應(yīng)對措施
- 草原草原土地流轉(zhuǎn)及承包經(jīng)營合同樣本
- 峽谷橋梁風(fēng)振響應(yīng)監(jiān)測
- ERAS快速康復(fù)之護理運用
- 2024年上海高中學(xué)業(yè)水平合格性考試歷史試卷真題(含答案)
- 2025年人教版七年級數(shù)學(xué)下冊期末測試卷
- 2025至2030年中國汽車輪轂軸承行業(yè)市場全景評估及發(fā)展趨勢研判報告
- 2025年《安全生產(chǎn)月》活動總結(jié)報告
- 2025年江蘇高考真題化學(xué)試題(解析版)
- 小學(xué)一年級數(shù)學(xué)下冊應(yīng)用題100道
- 2024協(xié)警輔警考試公安基礎(chǔ)知識考試速記輔導(dǎo)資料
- 安徽省馬鞍山市2023-2024學(xué)年高一下學(xué)期期末教學(xué)質(zhì)量監(jiān)測化學(xué)試卷(含解析)
- 初三化學(xué)最后一課-主題班會【課件】
- 反詐騙(企業(yè)員工)講座培訓(xùn)課件
- 中國強軍之路課件
評論
0/150
提交評論