一、实验目的

   1) 学习QTP工具的使用

   2)了解黑盒自动化测试

二、实验要求

(1)对被测程序进行黑盒测试用例设计

(2)对QTP的飞机订票系统的任一界面或控件实现自动化测试。(测试的具体自选)

(3)写出该程序的缺陷。

三、实验内容

 1、对QTP的样例小程序飞机订票系统,实现自动化测试。(学号被3整除,测3a;余1,测3b;余2,测4a)

2、要求:

     1)写出飞机订票系统的被测需求。

         自行选择需要测试的部分,根据自己的能力,可大,可小。

         描述,被测程序,与被测部分的功能。

     2)设计测试用例。写出测试用例表。

     3)编写测试脚本,实现自动化测试。

     4)写测试小结。该程序的缺陷,和测试结果。

3、最后写实验总结。

 

测试需求:航班日期

需求描述:设置需要购买机票的日期,进行航班查询。

需求限制条件:日期必须比当前日期晚、输入的是正常的日期、当输入的日期不正确或比当前日期早的时候给出相对应的错误提示。

 

测试方法:边界值法

日期>当前日期

年>=当前年份

当前月<=月(年=当前年份)<=12
01<=月(年>当前年份)<=12

当前日<日(日期=当前日期)
01<=日(月份:4、6、9、11)<=30
01<=日(月份为:1、3、5、7、8、10、12)<=31
01<=日(月份:2 年份:闰年)<=29
01<=日(月份:2 年份:平年)<=28

测试用例设计(用例设计、执行日期:06/23/2017):

用例编号 输入 预期结果 实际结果 是否通过
yjoo1

062217

提示不能比当前日期早  提示:Valid flight dates are after 06/23/17  是
yjoo2

062317

提示不能比当前日期早  提示:Valid flight dates are after 06/23/17  是
yjoo3

062616

提示不能比当前日期早  提示:Valid flight dates are after 06/23/17  是
yj004

032617

提示不能比当前日期早  提示:Valid flight dates are after 06/23/17  是
yjoo5

072317

可以查询航班  可以查询航班  是
yjoo6

061618

可以查询航班  可以查询航班  是
yjoo7

000118

提示月份不正确  提示:Invalid month Entered.The month must be greater than 01 and less than 12.  是
yjoo8

130118

提示月份不正确  提示:Invalid month Entered.The month must be greater than 01 and less than 12.  是
yjoo9

010118

可以查询航班  可以查询航班  是
yjo10

120118

可以查询航班  可以查询航班  是
yjo11

060018

提示日期不正确  提示:Valid flight dates are after 06/23/17  否
yjo12

090118

可以查询航班  可以查询航班  是
yjo13

043018

可以查询航班  可以查询航班  是
yjo14

113118

提示日期不正确  提示:Invalid day Entered. The date should be valid for the given month.  是
yjo15

010018

提示日期不正确  提示:Valid flight dates are after 06/23/17  否
yjo16

030118

可以查询航班  可以查询航班  是
yjo17

053118

可以查询航班  可以查询航班  是
yjo18

073218

提示日期不正确  提示:Invalid day Entered. The date should be valid for the given month.  是
yjo19

020020

提示日期不正确  提示:Valid flight dates are after 06/23/17  否
yjo20

020120

可以查询航班  可以查询航班  是
yjo21

022920

可以查询航班  可以查询航班  是
yjo22

023020

提示日期不正确  提示:Invalid day Entered. The date should be valid for the given month.  是
yjo23

020019

提示日期不正确  提示:Valid flight dates are after 06/23/17  否
yjo24

020119

可以查询航班  可以查询航班  是
yjo25

022819

可以查询航班  可以查询航班  是
yjo26

022919

提示日期不正确  提示:Invalid day Entered. The date should be valid for the given month.  是

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

用例数据:

   

   

errDay

脚本代码:

SystemUtil.Run "C:/Program Files (x86)/HP/QuickTest Professional/samples/flight/app/flight3a.exe"
Dialog("Login").WinEdit("Agent Name:").Set "quite"
Dialog("Login").WinEdit("Password:").SetSecure "594bcbb5b342075824ba8910548f2659b0b60a71"
Dialog("Login").WinButton("OK").Click
Call DataTable.ImportSheet("C:/Users/MTLin/Desktop/errDay.xls","Global","Global")
Data = DataTable.Value("errDay","Global")
Window("Flight Reservation").WinObject("Date of Flight:").Type Data
Window("Flight Reservation").WinComboBox("Fly From:").Select "Frankfurt"
errMsg=Window("Flight Reservation").Dialog("Flight Reservations").Static("nativeclass:=Static","window id:=65535").GetROProperty("text")
If Instr(errMsg,"Invalid day Entered. The date should be valid for the given month.") > 0 Then
Reporter.ReportEvent micPass,"check error message","Invalid day Entered. The date should be valid for the given month."
else
Reporter.ReportEvent micFail,"check error message","提示信息不是:Invalid day Entered. The date should be valid for the given month."
end if
Window("Flight Reservation").Dialog("Flight Reservations").WinButton("确定").Click
Window("Flight Reservation").Close

执行结果:

errMonth

脚本代码:

SystemUtil.Run "C:/Program Files (x86)/HP/QuickTest Professional/samples/flight/app/flight3a.exe"
Dialog("Login").WinEdit("Agent Name:").Set "quite"
Dialog("Login").WinEdit("Password:").SetSecure "594bcbb5b342075824ba8910548f2659b0b60a71"
Dialog("Login").WinButton("OK").Click
Call DataTable.ImportSheet("C:/Users/MTLin/Desktop/errMonth.xls","Global","Global")
Data = DataTable.Value("errMonth","Global")
Window("Flight Reservation").WinObject("Date of Flight:").Type Data
Window("Flight Reservation").WinComboBox("Fly From:").Select "Frankfurt"
errMsg=Window("Flight Reservation").Dialog("Flight Reservations").Static("nativeclass:=Static","window id:=65535").GetROProperty("text")
If Instr(errMsg,"Invalid month Entered.The month must be greater than 01 and less than 12.") > 0 Then
Reporter.ReportEvent micPass,"check error message","Invalid month Entered.The month must be greater than 01 and less than 12."
else
Reporter.ReportEvent micFail,"check error message","提示信息不是:Invalid month Entered.The month must be greater than 01 and less than 12."
end if
Window("Flight Reservation").Dialog("Flight Reservations").WinButton("确定").Click
Window("Flight Reservation").Close

执行结果:

beforeNow

脚本代码:

SystemUtil.Run "C:/Program Files (x86)/HP/QuickTest Professional/samples/flight/app/flight3a.exe"
Dialog("Login").WinEdit("Agent Name:").Set "quite"
Dialog("Login").WinEdit("Password:").SetSecure "594bcbb5b342075824ba8910548f2659b0b60a71"
Dialog("Login").WinButton("OK").Click
Call DataTable.ImportSheet("C:/Users/MTLin/Desktop/beforeNow.xls","Global","Global")
Data = DataTable.Value("beforeNow","Global")
Window("Flight Reservation").WinObject("Date of Flight:").Type Data
Window("Flight Reservation").WinComboBox("Fly From:").Select "Frankfurt"
errMsg=Window("Flight Reservation").Dialog("Flight Reservations").Static("nativeclass:=Static","window id:=65535").GetROProperty("text")
If Instr(errMsg,"Valid flight dates are after 06/23/17") > 0 Then
Reporter.ReportEvent micPass,"check error message","Valid flight dates are after 06/23/17"
else
Reporter.ReportEvent micFail,"check error message","提示信息不是:Valid flight dates are after 06/23/17"
end if
Window("Flight Reservation").Dialog("Flight Reservations").WinButton("确定").Click
Window("Flight Reservation").Close

执行结果:

rightData

 脚本代码:

SystemUtil.Run "C:/Program Files (x86)/HP/QuickTest Professional/samples/flight/app/flight3a.exe"
Dialog("Login").WinEdit("Agent Name:").Set "quite"
Dialog("Login").WinEdit("Password:").SetSecure "594bcbb5b342075824ba8910548f2659b0b60a71"
Dialog("Login").WinButton("OK").Click
Call DataTable.ImportSheet("C:/Users/MTLin/Desktop/rightData.xls","Global","Global")
Data = DataTable.Value("rightData","Global")
Window("Flight Reservation").WinObject("Date of Flight:").Type Data
Window("Flight Reservation").WinComboBox("Fly From:").Select "Frankfurt"
Window("Flight Reservation").WinComboBox("Fly To:").Select "Paris"
Window("Flight Reservation").WinButton("FLIGHT").Click
Window("Flight Reservation").Dialog("Flights Table").WinButton("Cancel").Click
Window("Flight Reservation").Close

执行结果:

 

测试小结:设置日期查询该日期的航班的功能还是可以满足基本需求的,但是在输入错误的日期时,提示的错误信息不够准确,当输入的日为00时提示信息应该是日不符合该月份的限制,但是提示信息是不能比当前日期早。

实验总结:

使用自动化的测试方法可以方便管理测试数据;可以管理所有测试用到的Object;在执行测试之后方便查看哪些测试用例没有通过;减少人工管理的麻烦和提高测试的执行效率;可以反复执行测试用例,减少偶然发生的情况。

一个功能的测试应该是写一个测试脚本,因为对QTP的VB测试脚本的编写不够了解,只好在执行自动化测试之前可以先对测试数据进行分类,根据不同类的测试数据编写相对应的测试脚本。

 

posted on 2017-06-23 09:50  VioletGlass  阅读(409)  评论(0编辑  收藏  举报