• 5.68 MB
  • 38页

软件测试教学资源学生作品_飞机订票系统的功能测试_项目报告

  • 38页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸《软件测试》课程项目库学生作品项目名称飞机订票系统的功能测试院系计算机与软件学院专业软件技术(测试)班级软件0931学号0902343241学生姓名仲媛媛 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸摘要以一个飞行订票网站为测试背景,使用QTP对该系统进行了功能测试,规划测试计划、搭建测试环境、设计及执行测试用例以及进行测试总结,建立了一个完整的网上飞行订票系统的功能测试方案。关键词:飞行订票系统;功能测试;缺陷 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸目录第一章测试计划11.1概述11.1.1产品简介11.1.2测试范围11.1.3限制条件11.2约定11.2.1测试目标11.2.3资源和工具11.2.4送测要求21.2.5编号规则21.3测试种类及测试标准21.3.1测试种类31.3.2测试方法及标准31.4测试风险31.5测试任务和进度41.6测试提交物4第二章测试用例及执行52.1登陆实例52.1.1测试用例的设计52.1.2测试用例的执行52.2订票实例112.2.1主要实现的功能112.2.2脚本代码162.2.3判断订票是否成功172.3传真和删除订单功能232.3.1主要实现的功能242.3.2代码回放262.2.3判断订票是否成功...................................................................272.4报告订单功能27第三章测试总结293.1测试小结293.2测试结果303.2.1登录测试运行结果303.2.2订票测试运行结果31 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸3.2.3传真和删除订单测试运行结果313.3改进33参考文献34 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸第一章测试计划1.1概述1.1.1产品简介本次开发的是网上订购飞机票系统,真实显现出现实生活中的飞机订票全过程。其主要功能是实现用户的登录、订购机票、传真和删除订单等操作。比如,用户登录之后,可通过传递一些信息,经过选择,订购到自己所需的飞机票。本系统操作简单,易于掌握,可以最大限度的为一些工作繁忙的人员提供便捷。1.1.2测试范围本测试计划是针对《网上订购飞机票系统》和《程序测试规范》和《QTP从实践到精通》中规定的内容来制定的,包括:用户登录、订购机票、传真订单、删除订单。1.1.3限制条件本次测试计划,与产品开发人员提交测试的内容和提交时间有关。根据开发人员提交模块的实际情况,本计划会做出相应的修改。1.2约定1.2.1测试目标通过测试,达到以下目标:I)测试已实现的功能是否达到设计的要求,包括:各个功能是否已实现,业务流程是否正确。II)测试是否运行稳定,系统性能是否在可接受范围。III)Bug数和缺陷率是否控制在可接受的范围之内,产品是否发布。1.2.2接收标准本节所述的接收标准是指可测试的标准,这个标准以测试组接收测试为限。单元测试接收标准的详细规定参见文档《网上订购飞机票系统》。其余各阶段接收标准,以经过审核后的上一阶段测试报告为准,每一个阶段停止标准的详细规定参见文档《程序测试规范》。1.2.3资源和工具共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸1.2.3.1资源测试服务器硬件配置:软件配置:数据库平台人员:测试审核人员1名测试实施人员1名测试地点:教四4161.2.3.2工具自动化性能功能测试工具:QuickTestProfessional(QTP)1.2.4送测要求提交的测试产品按下图1-1要求进行:步骤动作负责人相关文档或记录要求1审核并提交测试测试负责人审核报告测试负责人审核并签字2接受测试测试负责人接受任务单确认产品有无重大缺陷,是否可以继续测试3执行测试测试负责人Bug记录、测试总结报告对产品质量作出评价图1-1测试产品要求说明1.2.5编号规则与本测试计划相关的编号规则如下:•测试用例中的编号,功能名+界面名(每个字第一个汉语拼音大写)+编号例如:用户登录第一个界面——YHDL0001•测试用例文件命名规则,模块名+测试用例例如:用户登录模块——用户登录测试用例1.3测试种类及测试标准共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸1.3.1测试种类计划完成以下类型测试:功能测试1.3.2测试方法及标准1.3.2.1功能测试1.3.2.1.1功能系统能按照设计要求实现模块的各个功能,数据硬完整、界面美观、操作方便1.3.2.1.2界面测试详细的界面测试可以参考相关文档1.3.2.1.3数据项测试•字母数字数据项是否能够正确回显,并输入到系统中?•图形模式的数据项是否正常工作?•是否能够识别非法数据?•数据输入消息是否可理解1.3.2.1.4帮助文档测试•文档是否精确描述了如何使用各种使用模式?•交互顺序的描述是否精确?•例子是否精确?•术语、菜单描述和系统响应是否与实际程序一致?•是否能够很方便地在文档中定位指南?•是否能够很方便地使用文档排除错误?•文档的内容和索引是否精确完整?•文档的设计(布局、缩进和图形)是否便于信息的理解?•显示给用户的错误信息是否有更详细的文档解释?•如果使用超级链接,超级链接是否精确完整?1.4测试风险本次测试过程,受以下条件制约:•Bug的修复情况•模块功能的实现情况•系统整体功能的实现情况共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸•代码编写的质量•人员经验以及对软件的熟悉度•人员调整导致研发周期延迟•测试时间的缩短导致某些测试计划无法执行1.5测试任务和进度测试阶段测试任务工作量计算人员分配起始时间第一阶段功能测试2日1人第二阶段界面测试1日1人第三阶段链接测试1日1人第四阶段兼容性测试1日1人第五阶段性能测试2日1人第六阶段测试总结1日测试负责人图1-2测试进度和进度表1.6测试提交物本次测试需要提交:测试计划测试用例测试Bug单缺陷记录测试总结共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸测试用例及执行2.1登陆实例登录实例是指登陆FlightReservation应用程序,该实例是操作飞机订票系统的入口程序。只有登陆成功方能订票。登录模块的界面如图所示。由图可知,在该登陆实例中,有两个变量:AgentName(用户名)和Password(密码)。因此,在设计测试用例时,需要加以考虑。图2-1登陆2.1.1测试用例的设计用户名和密码参数异常时,如何捕捉动态信息呢??在参数化的过程中,要尽可能全面的测试登录功能的正常和异常情况。在此,设计五种类型的测试用例,如下:A:用户名、密码为空,点击登录,期望系统提示:请输入用户名,测试数据无。B:输入用户名、密码为空,点击登录,期望系统提示:请输入密码,测试数据tianyanqin,空。C:输入错误的用户名、密码,点击登录,期望系统提示:用户名不存在,测试数据test,test。D:输入正确的用户名、错误的密码,点击登录,期望系统提示::密码不正确,测试用例:tianyanqin,test。E:输入正确的用户名、密码,点击登录,通过系统验证,进入系统,测试数据:tianyanqin,mercury。2.1.2测试用例的执行共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸2.1.2.1测试环境硬件:笔记本软件:Windows2000和QuickTestProfessional(QTP)2.1.2.2测试用例的执行l.录制脚本(1)双击桌面QuickTestProfessional快捷图标,出现如图2-2所示窗口。点击“ok”按钮。图2-2QTP界面(2)出现的窗口中,点击“BlankeTest“如图2-3所示,建立一个新的测试。共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸图2-3QTP主界面(3)打开Window应用程序中自带的FlightReservation,打开飞机订票系统的登陆界面,如图2-4所示。图2-4Login界面测试用例的执行情况:测试数据应用程序弹出的系统提示AgentNamePasswordwrongmercurytyqtyqmercury共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸tyqwrongtianyanqintianyanqinwrongTianyanqinmercury(3)强化脚本1、密码的密文改为明文密码从密文改成明文有如下两种方法:在ExpertView中更改和在KeywordView中更改Ø在ExpertView中修改密文为明文在KeywordView中的“Password”行,将“Operation”值由“SetSecure”改为“Set”,将其Value值改为“mercury”,具体如图2-5所示:共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸图2-5修改密文界面Ø在ExpertView中修改密文为明文,具体如图2-6所示:图2-6明文界面QTP使用VBScript脚本语言,上面提到的KeywordView和ExpertView代表两种试图,其中,KeywordView是关键字试图,显示了每一步的信息,父对象和子对象之间按照阶梯次序显示。ExpertView是专家试图,显示了录制的相关VB脚本,父对象和子对象之间以分隔符分开。为了简单明了的查看测试结果,可以修改脚本添加判断。脚本如下所示:Dialog("Login").WinEdit("AgentName:").Set"yuanyuan"Dialog("Login").WinEdit("Password:").Set"mercury"Dialog("Login").WinButton("OK").ClickIfWindow("FlightReservation").ExistThen共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸Reporter.ReportEventmicPass,"登录验证","登陆成功"Window("FlightReservation").CloseElseReporter.ReportEventmicFail,"登录验证","登录失败"EndIf在QTP主界面的工具栏中单击“Run”,回放脚本,测试报告的结果如下图2-7所示:图2-7成功界面2、参数化实例对用户名、密码分别进行参数化,将参数写到数据表对应的“username”,“password”列中,并且数据表是当前的Action所使用的数据表,不是全局数据表,如图2-8所示。共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸图2-8DataTable其多人登陆的测试效果如图2-9所示:图2-9多人登陆结果界面2.2订票实例订票实例的前提是登陆订票系统的成功。该实例是在订票系统中进行订票操作:输入航班日期、选择起飞地、选择目的地、选择航班、输入顾客姓名、输入票的张数、选择航班级别、单击订票系统。2.2.1主要实现的功能共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸1、在输入正确的日期、出发地、目的地后点击Flights按钮会出现相应的航班列表,截图2-10如下:图2-10FlightTable2、当输入日期时输入错误,点击flights按钮会出现相应错误,截图2-11如下:图2-11错误界面共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸3、在点击航班按钮成功出现航班列表后,选择相应的航班,点击ok按钮,在订单页面会显示相应的航班信息,截图2-12如下:图2-12FlightReservation4、在第三个测试点之后,正确填写相应姓名,点击InsertOrder按钮会把你选择的航班信息与你的姓名结合形成一份订单插入到订单列表中,并生成编号。截图2-13如下:图2-13订票成功共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸订票测试用例的设计与实施测试编号输入预期结果实际结果YL_01_001空在Fly中选择一个地点,弹出警告信息不能为空的警告YL_01_00209/01/10在Fly中选择一个地点,弹出警告信息日期要在今天之后YL_01_00313/10/13在Fly中选择一个地点,弹出警告信息月份要小于13YL_01_00410/32/13在Fly中选择一个地点,弹出警告信息天要在1-31之间YL_01_00511/31/13在Fly中选择一个地点,弹出警告信息天要在1-30之间YL_01_00610/23/13正确YL_01_007空在Flyto中选择一个地点,弹出警告信息Ff不能为空的警告YL_01_008LosAngeles正确成功YL_01_009空Flights按钮不可用成功YL_01_0010DenverFlights按钮可用成功YL_01_0011单击,选择6696航班在窗口显示航班信息出发点为LosAngeles,目的地为DenverYL_01_012在Ft中改选Frankfurt清空航班信息出发点为LosAngelesYL_01_013在Ff中改选Paris清空航班信息,Flights按钮不可用,Ft自动清空成功YL_01_014zhangs,1,EconomyPrice:170.47Total:170.47出发点为LosAngeles,目的地为Denver,选择6696航班YL_01_015zhang,2,EconomyPrice:170.47Total:340.94成功共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸YL_01_016zhang,0,Economy自动改为1,Price:170.47Total:170.47成功YL_01_017zhang,99,EconomyPrice:170.47Total:16876.53成功YL_01_018zhang,100,Economy自动改为10,Price:170.47Total:1704.7成功YL_01_019zhang,1,FirstPrice:511.41Total:511.41成功YL_01_020zhang,2,FirstPrice:511.41Total:1022.82成功YL_01_021zhang,1,BusinessPrice:340.94Total:340.94成功YL_01_022zhang,2,BusinessPrice:340.94Total:681.88成功YL_01_023在Ff中改选ParisFt,Flights,航班信息,Price,Total,Class全部清空成功YL_01_024在Ft中改选Paris航班信息,Price,Total,Class全部清空出发点为LosAngeles,目的地为Denver,选择6696航班,zhang,1张票,EconomyYL_01_02510/30/13LosAngelesDenver6696陈国强insert按钮可用,update,Delete按钮不可用,单击,进程条工作,OrderNo:13,insert按钮不可用update,Delete按钮可用OrderNo:原来是空的,insert后改为具体数字。YL_01_026姓名为空Insert,update,Delete按钮不可用10/30/10LosAngelesDenver6696zhangEconomy共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸YL_01_027改变航班8855Insert,update,Delete按钮不可用姓名清空,原来的信息:10/30/13LosAngelesDenver6696zhangEconomyYL_01_028改变Ft为London航班信息,price,Total,Class清空Insert,update,Delete按钮不可用原来的信息:10/30/13LosAngelesDenver6696zhang,1EconomyYL_01_029改变Ff为Paris航班信息,Ft,Price,Total,Class清空,Flights,Insert,update,Delete按钮不可用原来的信息:10/30/13LosAngelesDenver6696zhang,1EconomyYL_01_030单击insert进程条工作,OrderNo:原来是空的,现改为具体数字。例:OrderNo:13,insert按钮不可用,update,Delete按钮可用10/30/13LosAngelesDenver6696zhang,1Economy2.2.2脚本代码Window("FlightReservation").ActivateWindow("FlightReservation").WinObject("DateofFlight:").Type"121212"Window("FlightReservation").WinComboBox("FlyFrom:").Select"LosAngeles"Window("FlightReservation").WinComboBox("FlyTo:").Select"London"Window("FlightReservation").WinButton("FLIGHT").Click共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸Window("FlightReservation").Dialog("FlightsTable").WinList("From").Select"16805LAX12:48PMLON01:33PMSR$161.70"Window("FlightReservation").Dialog("FlightsTable").WinButton("OK").ClickWindow("FlightReservation").WinEdit("Name:").Set"yuanyuan"Window("FlightReservation").WinRadioButton("First").SetWindow("FlightReservation").WinButton("InsertOrder").ClickWindow("FlightReservation").Activate2.2.3判断订票是否成功判断订票是否成功,可以结合对象识别器,文本值进行判断。现在,详细介绍两种方法。l结合对象识别器判断1.根据“UpdateOrder”按钮判断选择Tools——>objectSpy——.>小手——>选择Update对象然后在仓库中添加正确的情况图2-14ObjectSpy根据“UpdateOrder”按钮判断的代码如下:Window("FlightReservation").Move535,283Window("FlightReservation").WinObject("DateofFlight:").Type"121231"共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸Window("FlightReservation").WinComboBox("FlyFrom:").Select"Frankfurt"Window("FlightReservation").WinComboBox("FlyTo:").Select"London"Window("FlightReservation").WinButton("FLIGHT").ClickWindow("FlightReservation").Dialog("FlightsTable").WinList("From").Select"13536FRA08:00AMLON08:45AMSR$163.00"Window("FlightReservation").Dialog("FlightsTable").WinButton("OK").ClickWindow("FlightReservation").WinEdit("Name:").Set"qwe"Window("FlightReservation").WinRadioButton("First").SetWindow("FlightReservation").WinButton("InsertOrder").ClickWindow("FlightReservation").ActivateDimUpdate_Order_EnableUpdate_Order_Enable=Window("FlightReservation").WinButton("UpdateOrder").GetROProperty("enabled")IfUpdate_Order_Enable=trueThenReporter.ReportEventmicPass,"订票成功","根据Update_Order按钮判断订票成功"elseReporter.ReportEventmicFail,"订票失败","根据Update_Order按钮判断订票失败"EndIf2.根据“DeleteOrder”按钮判断选择Tools——>objectSpy——.>小手——>选择Delete对象然后在仓库中添加正确的情况根据“DeleteOrder”按钮判断的代码如下:Window("FlightReservation").Move535,283Window("FlightReservation").WinObject("DateofFlight:").Type"121231"Window("FlightReservation").WinComboBox("FlyFrom:").Select"Frankfurt"Window("FlightReservation").WinComboBox("FlyTo:").Select"London"Window("FlightReservation").WinButton("FLIGHT").ClickWindow("FlightReservation").Dialog("FlightsTable").WinList("From").Select共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸"13536FRA08:00AMLON08:45AMSR$163.00"Window("FlightReservation").Dialog("FlightsTable").WinButton("OK").ClickWindow("FlightReservation").WinEdit("Name:").Set"qwe"Window("FlightReservation").WinRadioButton("First").SetWindow("FlightReservation").WinButton("InsertOrder").ClickWindow("FlightReservation").ActivateDimDelete_Order_EnableDelete_Order_Enable=Window("FlightReservation").WinButton("DeleteOrder").GetROProperty("enabled")IfDelete_Order_Enable=trueThenReporter.ReportEventmicPass,"订票成功","根据DeleteOrder按钮判断订票成功"elseReporter.ReportEventmicFail,"订票失败","根据DeleteOrder按钮判断订票失败"EndIf3.根据“InsertDone”按钮判断选择Tools——>objectSpy——.>小手——>选择InsertDone对象然后在仓库中添加正确的情况图2-15添加对象根据“InsertDone”按钮判断的代码如下:共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸Window("FlightReservation").Move535,283Window("FlightReservation").WinObject("DateofFlight:").Type"121231"Window("FlightReservation").WinComboBox("FlyFrom:").Select"Frankfurt"Window("FlightReservation").WinComboBox("FlyTo:").Select"London"Window("FlightReservation").WinButton("FLIGHT").ClickWindow("FlightReservation").Dialog("FlightsTable").WinList("From").Select"13536FRA08:00AMLON08:45AMSR$163.00"Window("FlightReservation").Dialog("FlightsTable").WinButton("OK").ClickWindow("FlightReservation").WinEdit("Name:").Set"qwe"Window("FlightReservation").WinRadioButton("First").SetWindow("FlightReservation").WinButton("InsertOrder").ClickWindow("FlightReservation").ActivateDimInsert_Done_ExistInsert_Done_Exist=Window("FlightReservation").WinObject("InsertDone").ExistIfInsert_Done_Exist=trueThenReporter.ReportEventmicPass,"订票成功","根据InsertDone对象存在判断订票成功"elseReporter.ReportEventmicFail,"订票失败","根据InsertDone对象不存在判断订票失败"EndIfl根据文本值判断这里,主要介绍如何根据订单号对象是否可用,来判断订单是否成功。具体的实施步骤与上相同,在此不在介绍。根据文本值判断的代码:Window("FlightReservation").WinButton("Button").ClickWindow("FlightReservation").WinObject("DateofFlight:").Type"121231"Window("FlightReservation").WinComboBox("FlyFrom:").Select"London"Window("FlightReservation").WinComboBox("FlyTo:").Select"Frankfurt"共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸Window("FlightReservation").WinButton("FLIGHT").ClickWindow("FlightReservation").Dialog("FlightsTable").WinList("From").Select"12547LON03:12PMFRA04:42PMDL$173.47"Window("FlightReservation").Dialog("FlightsTable").WinButton("OK").ClickWindow("FlightReservation").WinEdit("Name:").Set"daddas"Window("FlightReservation").WinButton("InsertOrder").ClickWindow("FlightReservation").ActivateDimOrder_NoOrder_No=Window("FlightReservation").WinEdit("OrderNo:").GetROProperty("text")IfOrder_No<>""ThenReporter.ReportEventmicPass,"订票成功","根据Order_No属性不为空判断订票成功"Reporter.ReportEventmicPass,"订单号","订单号="&Cint(Order_No)elseReporter.ReportEventmicFail,"订票失败","根据Order_No属性为空判断订票失败"EndIfl设置标准检查点检查点是比较指定属性当前值和期望值的一个验证点。检查点能够帮助识别网站或应用程序的功能的正确性。在飞机订票系统实例中,通过添加检查点的方式,判断订票成功有下面几种:a.添加“UpdateOrder”按钮检查点b.添加“DeleteOrder”按钮检查点c.添加“InsertDone”按钮检查点d.添加“OrderNo”按钮检查点下面,以添加“UpdateOrder”按钮检查点为例,具体操作见下图:共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸图2-16选择对象图2-17添加对象图2-18设置检查点点击Ok键就出现如下代码:比录制的代码多一行共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸图2-19录制截图2.3传真和删除订单功能以下为订票系统的传真界面,订票系统传真界面包括了FaxOrderNo.、Name、Order、Flight、Date、From、Departure、To、Arrival、Class、#Tickets、TicketPrice、Total、FaxNumber、AgentSignature标签,FaxNumber、AgentSignature输入框,以及Preview、Send、Cancel、ClearSignature按钮,还有SendSignaturewithorder选项框。用户订票成功后传真传单时会跳转到此页面,该测试项目在这个基础上,对传真号、用户签名输入的各种情况进行测试,之后比较最后结果与预期结果,达到测试这个订票系统传真功能的目的。图2-20共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸图2-20传真界面2.3.1主要实现的功能1.当传真号、用户签名和选项框都选择正确时,会跳转到订票系统的页面但下面原本的InsertDone已经变为FaxSendSuccessfully,截图2-21如下:图2-21传真发送共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸2、当传真号输入错误或没有填写时,会弹出请填写传真号的对话框,截图2-22如下:图2-22填写传真3、当进行回放过程中,若在签名的标签中,没有录制过程中签名的回放,则表明订单录制失败,反之,成功。成功的截图如图2-23所示:共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸图2-23传真截图2.3.2代码回放Window("FlightReservation").ActivateWindow("FlightReservation").WinMenu("Menu").Select"File;NewOrder"Window("FlightReservation").WinObject("DateofFlight:").Type"111111"Window("FlightReservation").WinComboBox("FlyFrom:").Select"LosAngeles"Window("FlightReservation").WinComboBox("FlyTo:").Select"London"Window("Flight Reservation").WinButton("FLIGHT").ClickWindow("Flight Reservation").Dialog("Flights Table").WinList("From").Select"16841LAX03:12PMLON03:57PMSR$168.60"Window("Flight Reservation").Dialog("FlightsTable").WinButton("OK").ClickWindow("FlightReservation").WinEdit("Name:").Set"yuanyuan"Window("FlightReservation").WinRadioButton("First").SetWindow("FlightReservation").WinButton("InsertOrder").ClickWindow("FlightReservation").ActivateWindow("FlightReservation").WinMenu("Menu").Select"File;FaxOrder..."共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸Window("FlightReservation").Dialog("FaxOrderNo.13").WinObject("FaxNumber:").Type"0860103233"Desktop.RunAnalog"Track1"Window("FlightReservation").Dialog("FaxOrderNo.13").Drag284,226Window("FlightReservation").Dialog("FaxOrderNo.13").WinObject("Fax").Drop332,232Window("FlightReservation").Dialog("FaxOrderNo.13").Drag321,223Window("FlightReservation").Dialog("FaxOrderNo.13").WinObject("Fax").Drop341,223Window("FlightReservation").Dialog("FaxOrderNo.13").WinCheckBox("SendSignaturewithorder").Set"ON"Window("FlightReservation").Dialog("FaxOrderNo.13").WinButton("Send").ClickWindow("FlightReservation").Activate2.3.3成功的截图图2-24成功的界面2.4报告订单功能共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸以下为订票系统的报告订单界面,订票系统报告订单界面与传真订单界面大致相同,只不过报告订单是选择的是菜单栏中的Analysis选项,然后单击Reports..选项。用户订票成功后报告传单时会跳转到一个命名为report.txt的文档及订单的报告,该测试项目在这个基础上,对订单的报告的各种情况进行测试,之后比较最后结果与预期结果,达到测试这个订票系统报告订单功能的目的。图2-25。图2-25FlightReservation在单击Analysis选项后,再单击“Reporte”,如图2-25图2-25Report第一章共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸测试总结3.1测试小结本次测试对飞机订票系统软件进行了功能测试。测试工作分为三个部分:一部分是登陆的,一部分是订票的,一部分是有关传真的。登陆测试中,主要针对用户名、密码进行测试,对于登录中出现的各种情况,在本次测试中,都一一进行考虑和测试。订票系统中,针对订票时间、出发点、目的地、航班、用户姓名、机票等级等进行测试。传真实例中,对传真的编号、签名等进行测试。通过对各个功能的测试,更好的使用飞机订票系统。使用QTP的目的是想用它来执行重复的手动,主要是用于回归测试和测试同一软件的新版本。因此在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等。录制的时候,QTP将操作过的所有对象都记录下来,保存在对象库objectrepository中,记录的形式是一个逻辑名加上若干识别属性。运行脚本时,QTP分析该脚本要执行那个对象的操作,然后根据该语句中的逻辑名,在对象库中查找该对象的详细记录,然后在运行的真实披头散发软件中按图索骥,找到需要操作的对象,把语句规定的操作施加在该对象上.施加的主要动作就是把操作的相关消息时间放入到该对象窗口的消息循环队列中。3.1.1测试分析下面将对此次软件测试中的所有缺陷以及改进设计进行分析,以下,以登陆功能进行说明。用户名、密码为空用户名为空、密码错误用户名为空、密码正确用户名错误、密码为空用户名错误、密码正确共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸用户名、密码都错误用户名正确、密码为空用户名正确、密码错误用户名、密码都正确3.1.2测试记录a测试时间:2011年9月19日至2011年10月16日。b地点:教四机房416c硬件配置:P4CPU/2.0G,内存256M,硬盘1Gd软件配置:Wondows98,e被测软件版本号:V1.0,V1.01,V1.02f所有测试相关活动的日期和时间、测试操作人员等记录见软件测试记录文档。3.2测试结果3.2.1登录测试运行结果登录测试运行时,会出现如图3-1所示:图3-1登录测试运行结束后,测试报告的结果如图3-2所示:共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸图3-2登录脚本回放结果3.2.2订票测试运行结果回放订票测试时,会生成如图3-3所示的运行报告结果:图3-3订票测试报告3.2.3传真和删除订单测试运行结果1)回放录制传真订单测试运行时,会出现如图3-4所示:共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸图3-4传真订单测试运行结束后,测试报告的结果如图3-5所示:图3-5测试报告结果2)回放删除传真订单测试运行时,结果会出现如图3-6所示:共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸图3-6删除传真订单结果3.3改进1.在软件开发项目中全面实施软件工程化,加强软件开发的管理工作。2.进一步加强软件需求规格说明、软件设计文档编制以及编写代码的规范化。特别是应该将系统中的硬件研制和软件研制分别管理,软件文档编制的种类和规格按照相关标准执行。3.尽早开展软件测试工作。在软件研制计划安排上给软件测试留有必要的时间,在资源配置上给软件测试必要的支撑。4.结合系统联试,开展软件的确认和系统测试。共34页第34页 ┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸参考文献1田艳琴.《QTP从实践到精通》.北京:电子工业出版社,2010.42柳胜.《软件自动化测试框架设计与实践》.北京:人民邮电出版社,2009.113陈能技.《QTP自动化测试实践》.北京:电子工业出版社,2008.6共34页第34页'