目录一、前言(课设目的及内容) (1)1.1 课设目的 (1)1.2 课设内容 (1)二、测试计划及测试需求 (2)2.1 测试原理分析 (2)2.2 测试思想设计 (2)2.3 测试计划设计 (3)2.4 测试环境搭建 (4)三、测试用例的设计 (5)3.1 登陆测试用例设计 (5)3.2 订票测试用例设计 (8)四、测试过程 (9)4.1 登陆测试过程 (9)4.2 订票测试过程 (10)五、测试结果分析 (16)5.1 测试结果 (16)5.2 测试结果分析 (20)六、课设小结及心得体会 (23)七、参考文献 (24)一、前言(课设目的及内容)1.1 课设目的(1) 使学生能掌握网站功能测试的基本思路和方法,学会使用自动化测试工具QTP进行功能测试;(2) 培养学生分析、解决问题的能力;(3) 提高学生的科技论文写作能力。
1.2 课设内容(1) 对默认环境和条件(要求详细记录环境条件)下,构造正确的输入进行正常功能需求的测试,使用常见的检查点测试,并将输入进行参数化;(2) 测试系统在异常环境下的功能需求变化,并对测试的结果进行分析和汇总;(3) 相应驱动的编写;(4) 在基本要求达到后,可对被测系统进行探索性测试。
二、测试计划及测试需求2.1 测试原理分析QTP主要采用的是使用GUI模拟人的操作。
它在模拟人的操作时会记录操作的对象及所做的操作和顺序,然后在回放时按记录顺序操作这些对象。
而在这个模拟的过程中,最重要的莫过于界面对象(控件)的识别。
首先,QTP会通过“用户名输入框”这个名字到对象库的对象名中查找;然后通过找到的对象名,找到对象名映射的属性包;接着QTP就会通过这个属性包来匹配页面上的控件的属性,如果在页面上找到一个唯一与此属性包匹配的控件,那QTP就会认为此控件为要找的控件;最后QTP根据“WebEdit”来确定控件的类型,并调用QTP对于此类控件内置的操作方法“Set”把“**值”赋予了控件。
至于其他控件的识别和操作,基本原理和上面一样。
2.2 测试思想设计根据测试原理的分析以及QTP测试的基本步骤可以设计如图2.2.1的测试思想流程图。
该流程图使用Microsoft Visio 2003绘制。
图2.2.1 测试思想流程图2.3 测试计划设计根据测试原理分析与测试思想设计,使用Microsoft Visio 2003设计如图2.3.1所示的测试过程计划流程图。
图2.3.1 测试过程计划流程图2.4 测试环境搭建操作系统:Windows7浏览器:Internet Explorer软件:QuickTest Professional 9.2其他软件需求:Microsoft Visio 2003和Microsoft Word 2010三、测试用例的设计3.1 登陆测试用例设计针对登录模块的输入条件:用户名和密码,有以下几种情况:1. 当用户什么也没输入,直接点OK按钮,是否提示请输入用户名;2. 当用户输入正确的用户名,没输入密码,直接点击OK按钮,是否提示请输入密码;3. 对密码进行验证看是否设置输入密码的长度;4. 当输入正确的用户名和密码时,点击OK按钮是否进入操作界面;对登陆模块进行测试时,尽可能全面的测试登陆功能的正常和异常情况:只要用户名大于或等于4个字符,密码是“mercury”,即可登陆。
为了测试异常登陆,准备了异常登陆的测试数据,系统会弹出如下表(3.1.1)所示的提示信息。
表 3.1.1正常登陆,启动程序根据上面的分析,设计了如下表(3.1.2)的测试用例:表 3.1.23.2 订票测试用例设计订票实例的前提是登录订票系统成功,该实例是在订票系统中进行订票操作:输入航班日期、选择起飞地、选择目的地、选择航班、输入顾客姓名、输入票的张数、选择航班级别、单击订票按钮,完成订票功能。
表 3.2.1四、测试过程4.1 登陆测试过程第一步:用QTP自动打开Flight Reservation系统的登陆界面,输入用户名和密码,确定当前的操作,将订票系统打开,登陆界面如图(4.1.1);图 4.1.1第二步:在QTP主界面中单击“Record”,在登陆界面的文本框中,输入正确的用户名和密码,单击“OK”按钮,进入飞机订票系统界面。
在QTP主界面,单击“Stop”按钮,结束当前的录制,如图(4.1.2);图 4.1.2录制的脚本为:Dialog("Login").ActivateDialog("Login").ActivateDialog("Login").WinEdit("Agent Name:").Set "admin"Dialog("Login").WinEdit("Agent Name:").Type micTabDialog("Login").ActivateDialog("Login").WinEdit("Password:").SetSecure"51d27b3189e7127ee662fac17b2b30ee5835e77f"Dialog("Login").WinButton("OK").ClickWindow("Flight Reservation").Activate第三步:在QTP主界面的工具栏中单击“Run”按钮,回访脚本,测试报告的结果如下图(4.1.3);图 4.1.34.2 订票测试过程第一步:录制脚本,选择“Record”如图(4.2.1);图 4.2.1第二步:在Agent Nname和Password中输入admin和mercury,点击“OK”按钮,如图(4.2.2);图 4.2.2第三步:输入飞机的时间、出发地、目的地,然后选择“Flights”选择航班,如图(4.2.3);第四步:选择要乘坐飞机的航班,然后点击确定,如图(4.2.4);图 4.2.4第五步:输入顾客的姓名、票数、票的类型、点击“insert Order”,如图(4.2.5);第六步:点击“Stop”结束录制过程,脚本录制成功,如图(4.2.6);图 4.2.6第七步:在容易出错的点上右击鼠标,选择“Insert StandardCheckpoint”,如图(4.2.7);图 4.2.7 第八步:点击“确定”,如图(4.2.8);图 4.2.8检查点如下图(4.2.9);图 4.2.9脚本如下:Dialog("Login").WinEdit("Agent Name:").Set "admin"Dialog("Login").WinEdit("Password:").SetSecure"51d2be3064eb1ca28b559aa50fac11e1fd9eee60"Dialog("Login").WinButton("OK").Check CheckPoint("OK")Dialog("Login").WinButton("OK").ClickWindow("Flight Reservation").WinObject("Date of Flight:").Type "070713"第九步:在QTP主界面的工具栏中单击“Run”按钮,回访脚本,测试报告的结果如下图(4.2.10);图 4.2.10五、测试结果分析5.1 测试结果通过运用QTP对飞机订票系统的测试,将已设计好的测试用例添加到QTP中,通过脚本的参数化设置,对测试用例进行自动化循环测试,如下图(5.1.1);图 5.1.1结果运行发现问题如下:图 5.1.2Summary如下:图 5.1.3经过思考发现问题可能出现在以下方面,所以在专家视图中添加了如下图(5.1.4)所示的代码之后问题就解决了。
图 5.1.4(1)QTP对测试用例的自动化测试后,分别将可以登陆成功和不能登陆成功的测试用例进行测试,运行结果如图(5.1.5);图 5.1.5(2)不可以登录飞机订票系统的测试用例,QTP在测试后会显示登录失败,并且会说明错误的信息,如下图(5.1.6);图 5.1.6(3)修改错误之后,可以登录飞机订票系统,QTP在测试后会显示登陆成功,如下图(5.1.7、5.1.8);图 5.1.7图 5.1.8(4)订票成功之后还可以退订,如下图(5.1.9、5.1.10);图 5.1.9图 5.1.105.2 测试结果分析(1)测试中在insert order之后update order之前需要插入一个同步点以保证程序正常运行不出现问题,如下所示:图 5.2.1图 5.2.2(2)测试中order No文本框的内容需要进行检验,以防止插入数据库异常,特做了对文本框text的处理,对其值用正则表达式(“[0-9]+”)进行检查之后,如果符合要求则正常运行,否则报错。
图 5.2.3(3)对于增强脚本第一次回放时,因为使用了脚本的参数化设置,对测试用例进行自动化循环测试,结果出现的问题是可以理解的。
因为在data table第一行数据做完处理后,立即进行第二行的访问,对象库查询出现问题,可能需要给点等待时间,以便对对象库进行检索,于是就添加代码(“wait 2”),让程序在访问完data table第一行数据后,等待2s再对第二行进行访问处理。
六、课设小结及心得体会通过本次课程设计实验让我更加深刻的领会了自动化测试技术的内涵,同时掌握了QTP工具的使用。
对QTP测试流程更加熟练,同时在测试时编写测试用例同样让我掌握了用例设计的方法和步骤。
还有对QTP测试使用时遇到的各种问题通过各种方法一一解决。
测试时还使用了屏幕录制专家进行录制屏幕,这也无形中让我学会了使用屏幕录制专家这款优秀软件!总的来说通过本次课程设计提高了分析问题,解决问题和动手操作能力,同时也提高了创新能力,是一次很有价值,很有用的实验,为今后学习打下了更加牢固的基础。
然而,通过这次实验,我也发现了自己的一些不足,由于原来上课没有把握机会问老师问题,导致很多问题不理解,虽然课后有视频教程,但缺乏互动性,远远没有达到应有的程度,只能靠自己慢慢的摸索,但难免走了好多弯路。