测试实例报告(GB8567——88) 1引言
1.1编写目的
为测试高校师生交流平台的实用提供参考的数据。
1.2背景
说明:
测试项目名称:高校师生交流平台;
用户:高校
项目测试的前:完成项目程序的各个功能和执行此项目测试的软件工具。 2测试实例
2.1软件说明
设计了一份图表,并逐项说明被测软件的功能、输入和输出等质量指标,作为叙述测试计划的提纲,其中主要的组成部分如下:
系统操作人员有三类:管理员、学生和教师,现在分别说明。
管理员:1.登录后进行管理工作,对学生信息进行增加、修改、删除、查询的操作。
2.对教师信息、课程信息也可进行上述操作。
3.具有删除“信息反馈平台”中的垃圾信息的功能。
学生:1.选课,将自己的选课信息入库,教师能顺利看到并接受;
2.查询个人成绩。
3.修改个人信息,只是有限项。
3.进入信息反馈平台,查看所有反馈的信息,也能反馈自己的意见。
4.进入“师生互动平台”后可以选择教师留言,相应教师登录后即 可看到留言,并做回复。
5.看到教师留言后可进行回复,不能看到教师对其他学生的留言。
6.进入“学术交流平台”,选择任一课题发表意见,可查看已发表的意见。
教师:1.录入学生成绩,以便学生进行查询。
2.修改个人信息,只是有限项。
3.查看学生的选课信息,并接受,不支持拒绝链接。
4.进入“师生互动平台”,查看学生对自己的留言,不可以看到对其他教师 的留言
5.可回复学生的留言。
2.2测试内容
测试实例编号列表
2.3.2条件
本项测试工作对资源的要求,包括: JDK版本:JDK5.0
Web服务器版本:Tomcat6.0
开发软件:Eclipse3.3+MyEclipse6.0 使用数据库:SQL Server 2000
。
3测试设计说明
3.1测试1
3.1.1控制
说明本测试的控制方式,如输入是人工输入的控制操作的顺序
3.1.2输入
本项测试中所使用的输入数据及选择这些输入数据的在测试实例中出现。
3.1.3输出
预期的输出数据如测试结果及可能产生的中间结果或运行信息。
3.1.4过程
完成此项测试的一个个步骤和控制命令,包括测试的准备软件的要求、初始化登录、中间步聚和运行结束方式都为手工操作。
4评价准则
4.1数据整理
为了把测试数据加工成便于评价的适当形式,使得测试结果可以同,已知结果进行比较而要用到的转换处理技术,手工方式或自动方式;如果是用自动方式整理数据,说明为进行处理而要用到的硬件、软件资源等。
第二篇:自动化测试实例报告
欢迎访问51testing软件测试网
自动化测试实例报告
(制度报表生成子系统)
―――测试部 王攀攀
一、 概述
1. 1测试目的
本次测试通过三个简单实例来描述TestComplete完成制度报表生成子系统自动化测试过程。
1. 2测试方法
● 测试工具及脚本
应用TestComplete工具作为测试工具,对应用系统进行功能测试,并通过脚本进行管理等等。
● 测试方法
通过工具TestComplete录制并回放,增加脚本编写,使其回放值与期望值一致。
1. 3测试工具介绍
TestComplete——自动测试管理工具,全面支持工程层面上的测试,包括个体单元、性能测试、功能测试、回归测试、分布式测试以及HTTP性能测试等。
作为Aqtest的后继产品,TestComplete提供系统化、自动化和结构化的测试功能,支持Visual Studio .NET, Java, Visual Basic, C++ (Visual C++ and C++Builder), Delphi和Web程序。
二、 自动化测试实例一
2.1测试实例特征
本测试实例包括,用户登录,通过对指标集的维护进行自动化测试,包括指标的录入,删除,修改及保存功能。并对成功和异常操作分别记录操作日志和异常日志。
欢迎访问51testing软件测试网
2.2测试过程
1装载应用
点选菜单File—Launch Applications,打开如下界面:
点击Add按钮加载应用,可加载多个,并可设置参数。本实例只加载单个应用,无参数(默认为NotOpenApp).
2.创建工程
点击File—New-Progect,出现图示界面:
选取脚本编码语言。
欢迎访问51testing软件测试网
本工程主要包括两个unit.unit1中有main,主要是应用启动脚本编写.unit2中有三个test,分别是各功能维护操作录制。各功能罗列如下图所示:
3.启动应用脚本编写
uses unit2;
var
p, app : OleVariant;
procedure Main;
begin
//******** begin 启动应用 ********
app := TestedApps.Items[0];
TestedApps.Items[0].Parameters := 'NotOpenApp';
//******** end 启动应用 ********
p := app.Run;
//******** 执行测试 ********
try
Test1;
test2;
test3;
except
欢迎访问51testing软件测试网
//******** 获取异常并记录日志********
end;
app.Close;
//******** begin 延时1秒钟至应用关闭 ********
//******** end 延时1秒钟至应用关闭 ********
if p.Exists then
//******** 如果应用仍然启用,强行终止 ********
app.Terminate;
end;
●本应用启动编码较为简单,加载应用后判断是否成功并做不同处理,详见脚本注释。这里涉及两个基本的方法处理:log.error()和Delay.
▲ 通过Error事件记录系统异常操作,便于测试脚本的维护
▲ 如果测试的应用要进行一些费时的操作,一般用Delay事件一来延迟施行,
例如:装载数据库或连接到系统计算机
4.录制功能
本实例功能分三个TEST录制。
TEST1录制用户登录及指标集创建部分;
TEST2录制指标集子项的录入及保存;
TEST3录制指标项的删除,修改功能维护操作,并对所作操作保存。
I. TEST1脚本编写
procedure Test1;
var
p, w,u: OleVariant;
begin
//******** begin 启动登录进程,打开用户登录窗口frmLogin ********
p := Sys.Process('NNSLogin');
w := p.frmLogin;
w.Activate;
Sys.Keys('admin[Tab]123456'); //键入用户及密码
w.btnLogin.Click(36, 3);
//******** end 启动登录进程,打开用户登录窗口frmLogin ********
//********begin重启进程,打开南宁市政府决策支持与分析系统窗口MainLogin********
欢迎访问51testing软件测试网
p := Sys.Process('NNSLogin'); ①
//延时1秒钟等待打开窗口
Sys.Delay(1000);
w := p.MainLogin('WindowsForms10.Window.8.app3','*');②
//******** end 重启进程,打开南宁市政府决策支持与分析系统窗口MainLogin********
w.Activate;
Sys.Keys('[Enter]');
//******** begin 启动客户端进程,打开主窗口MainForm ********
p := Sys.Process('NNS.SYS.Client');
w := p.MainForm;
w.Activate;
//******** end 启动客户端进程,打开主窗口MainForm ********
//******** begin 切换TAB页至指标页并打开新增指标集弹出窗口 ******** w.tabStrip1.Click(54, 14);
w.trvGuidLine.HScroll.Pos := 0;
w.trvGuidLine.Click('|指标集');
w.trvGuidLine.ClickR('|指标集');
w.PopupMenu.Click('新增指标集');
//******** end 切换TAB页至指标页并打开新增指标集弹出窗口 ********
//******** begin 创建指标集 ********
p := Sys.Process('NNS.SYS.Client'); //切换WINDOW时,重启进程,否则窗口找不到
w := p.frm_NewItem_2;
w.Activate;
w.Object_2.Click(27, 13);
Sys.Keys('wp001[Tab]namewpp001');
w.btnOK.Click(19, 17);
//******** end 创建指标集 ********
//******** 记录操作日志 ********
log.message('创建指标集成功',DateToStr(Now) + ' ' + TimeToStr(Now));③ end;
●本TEST主要方法应用:
▲ 进程的重启(见上红色标注①)。启动一个进程,如果打开多个窗口,回
放时因为窗口都开启,容易找不到窗口。此时可以重启一下窗口所在的进
程,则可以很快的找到窗口。
▲ 打开窗口的参数设置(见上红色标注②)。加入窗口参数设置,
process.window()有三个参数(WndClass, WndCaption, WndIndex).参数获
取方法:找开设置窗口,切换TAB页至ObjectBrowser页面,Sys下第一
欢迎访问51testing软件测试网
个即为应用,展开相应的应用,找到设置窗口,则其属性右视窗相应显示,
上三个参数可以找到,如下图。
▲ log.message()的记载(见上红色标注③)。记录相应的操作日志,便于以后
的脚本维护。
II. TEST2脚本编写
procedure Test2;
var
p, w: OleVariant;
begin
p := Sys.Process('NNS.SYS.Client');
w := p.MainForm;
w.Activate;
//******** begin 切换TAB页面至指标TAB页,并选中指标集打开新增指标集弹出窗口********
w.trvGuidLine.HScroll.Pos := 0;
w.trvGuidLine.Click('|指标集|namewpp001');
w.trvGuidLine.HScroll.Pos := 0;
w.trvGuidLine.DblClick('|指标集|namewpp001');
//******** end 切换TAB页面至指标TAB页,并选中指标集打开新增指标集弹出窗口********
w.toolBar.Click(15, 15); //点击toolBar新增按钮
欢迎访问51testing软件测试网
//******** begin 新增指标集子项,新增三条记录 ********
w.grdControl.Click(27, 30);
Sys.Keys('wp01[Tab]name1[Tab][Tab]20[Tab][Tab]unit[Tab]comment[Tab][Enter]wp02[Tab]name2[Tab][Tab]20[Tab][Tab]unit[Tab]comment[Enter]wp03[Tab]name3[Tab][Tab]20[Tab][Tab]unit[Tab]comment');
//******** end 新增指标集子项,新增三条记录 ********
w.Object_9.Click(1, 5);
w.toolBar.Click(59, 14); //点击toolBar保存按钮
//以下是对弹出窗口保存对话框的特殊处理,将鼠标点击确定按钮转换为ENTER键 w := p.MainForm_2;
w.Activate;
//w.MainForm.Click;//录制时记录鼠标轨迹
Sys.Keys('[Enter]');//转换为ENTER键
//记录操作日志
Log.Message('新增三条指标项记录', DateToStr(Now) + ' ' + TimeToStr(Now));
end;
● 本实例主要方法应用:
▲ 对弹出窗口的特殊处理,当打开多个窗口,如主窗口上弹出一个窗口,点
击弹出窗口的确定按钮,对其鼠标轨迹TestComplete只能录制到主窗口,
此时可用Enter键等同于“确定”按钮。
▲ 在功能确定的情况下,录制时鼠标只作必要的点击,关闭无关的页面,按
规范操作,否则会录到赘余代码。
▲ 使用sys.keys()事件做键盘输入时,输入错误重新错误后,编码中要过滤错
误输入。
III. TEST3脚本编写
procedure Test3;
var
p, w: OleVariant;
begin
p := Sys.Process('NNS.SYS.Client');
w := p.MainForm;
w.Activate;
//******** begin 删除指标记录行并保存所作操作 ********
w.toolBar.Click(41, 14);
w.toolBar.Click(61, 15);
w := p.MainForm_2;
w.Activate;
Sys.Keys('[Enter]');
//******** end 删除指标记录行并保存所作操作 ********
欢迎访问51testing软件测试网
//记录操作日志
Log.Message('删除一行记录', DateToStr(Now) + ' ' + TimeToStr(Now)); //******** begin 改变指标记录行并保存所作操作 ******** w := p.MainForm;
w.Activate;
w.grdControl.Click(112, 50);
Sys.Keys('name3[Tab][Tab]40[Tab]');
w.toolBar.Click(61, 17);
Sys.Keys('[Enter]');
//******** begin 改变指标记录行并保存所作操作 ********
//记录操作日志
Log.Message('修改一条指标记录', DateToStr(Now) + ' ' + TimeToStr(Now)); end;
● 本实例中主要方法应用
▲ 实例中有两个功能维护操作,删除和修改,详见上述编码。
▲ 每一步操作都作日志记录。
最后作回放操作,选中主Main,点击右键,选择“run main”.如下所示:
回放各功能操作,成功后可点击Test Log查看操作日志,如下所示:
欢迎访问51testing软件测试网
三、自动化测试实例二
3.1测试实例特征
本测试实例通过分组的系列维护功能操作来重现自动化测试过程。本测试实例功能包括app,addfz,addfa_childitem等脚本编写。并对成功和异常操作分别记录操作日志和异常日志。
3.2测试过程
1.装载应用
略。(与实例一方法实现类似,请参阅)
2.创建工程
略。(与实例一方法实现类似,请参阅)
欢迎访问51testing软件测试网
3.启动应用脚本编写
略。(与实例一方法实现类似,请参阅)
4.录制功能
I.Addfz脚本编写
procedure addfz;
var
p, w: OleVariant;
begin
//******** 启动进程 ********
p := Sys.Process('NNSLogin');
//******** 进入'用户登录'窗口frmLogin ********
w := p.frmLogin;
w.Activate;
//******** 键盘输入用户名及密码 ********
Sys.Keys('admin[Tab]123456');
w.btnLogin.Click(55, 19);
//******** WINDOW切换,进入'南宁市决策支持与分析系统'窗口mainlogin, ******** //********所以重新获取进程,此获取很重要,有时会找不到窗口,如果重新 ******** //********获取一下进程则可 ********
p := Sys.Process('NNSLogin');
// Sys.Delay(1000);
w := p.MainLogin_2;
w.Activate;
w.btnOK.Click(48, 6);
//******** 进程改变,重新获取 ********
p := Sys.Process('NNS.SYS.Client');
//******** WINDOW切换,进入主窗口mainform ********
w := p.MainForm;
w.Activate;
//******** 进入主窗口后,默认为报表界面,以下语法是报表TAB界面转 ******** //******** 为分组TAB界面********
w.tabStrip1.Click(88, 17);
w.trvGroup.HScroll.Pos := 0; //记录分组时鼠标轨迹
w.trvGroup.Click('|分组'); //选中分组
//w.trvGroup.Click('|分组'); //点击分组
w.trvGroup.ClickR('|分组'); //点击右键作弹出窗口鼠标仍停留在分组TAB界面 //******** 弹出窗口 ********
w.PopupMenu.Click('新建文件夹');
欢迎访问51testing软件测试网
//********begin WINDOW切换,进入新增文件夹窗口frm_InputBox_2 ******** p := Sys.Process('NNS.SYS.Client');
w := p.frm_InputBox_2;
w.Activate;
w.Object.Click(51, 7);
//********end WINDOW切换,进入新增文件夹窗口frm_InputBox_2 ********
//保持测试环境输入法按CTRL+SHIFT转换一次即切换到五笔环境
// sys.keys('^!');
//Sys.Keys('wv xeg imyag ');
w.txtvalue.Text:='分组测试项一';
w.btnOK.Click(49, 7);
w := p.MainForm;
w.Activate;
w.trvGroup.HScroll.Pos := 0;
w.trvGroup.ClickR('|分组|分组测试项一');
//******** 弹出窗口 ********
w.PopupMenu.Click('新建分组');
//********begin WINDOW切换,进入新增分组窗口frm_NewItem ******** w := p.frm_NewItem;
w.Activate;
w.Object_2.Click(37, 6);
w.Object_2.Click(30, 8);
w.btnOK.Click(25, 4);
//********end WINDOW切换,进入新增分组窗口frm_NewItem ******** end;
● 本TEST主要方法应用:
▲ 赋值部分,可用控件直接赋值来代替键盘输入,尤其对于同时找开多个窗
口时,这个方法可以很快地找到所在的窗口并赋值。
▲ 其它方法如窗口切换,输入法切换请参考上述脚本注释。
II.Addfz_childitem脚本编写
procedure addfz_childitem;
var
p, w: OleVariant;
begin
p := Sys.Process('NNS.SYS.Client');
w := p.MainForm;
w.Activate;
w.toolBar2.Click(8, 15);
欢迎访问51testing软件测试网
sys.delay(1000);
//********录制过程中可能会录入脚本如下类似对象Object_8,此为一个整体对 ********
Sys.Keys('01[Tab]od gajfg [Tab]wh [Tab][Enter][Caps]02[Tab][Caps]od gajffg [Tab]wh
[Tab][Enter][Caps]03[Caps][Tab]od gajfdg [Tab]wh [Tab]');
//w.Object_8.Click(21, 9);
w.toolBar2.Click(68, 15);
Sys.Keys('[Enter]');
end;
● 本TEST方法主要应用:
▲ 基类与子类的录制。这只是工作中的经验之谈,还不知是否完全正确。我
在录制经常会录到一些脚本运行时,会出现‘object not found’信息。如果
定位到对象浏览器时(object browser),对象名称并未错误。后来我发现,
原来对象名称并未错误,只是它录制了基类,如果上红色标注①。
▲ 现在说明检查脚本时运用object browser的一个方法:当想查询一个窗口相
应地参数设置信息时,可以打看相应窗口,然后进入testcomplete的object
browser页面,然后双击其窗口名称,如下所示:
可以引用相应的参数。
欢迎访问51testing软件测试网
▲ 其它相关方法请参考脚本注释。
四、 自动化测试实例三
4.1.测试实例特征
本测试实例是包括对报表的维护功能操作,包括新建报表,设计报表(拖放分组,拖放指标等)。并对成功和异常操作分别记录操作日志和异常日志。
4.2测试过程
1.装载应用
略。(与实例一方法实现类似,请参阅)
2.创建工程
略。(与实例一方法实现类似,请参阅)
3.启动应用脚本编写
略。(与实例一方法实现类似,请参阅)
4.录制功能
I.Addbb脚本编写
//测试配置环境前提:数据库中存在分组边境贸易进出口总额
//及指标批发零售业商品销售情况
procedure addbb;
var
p, w: OleVariant;
begin
p := Sys.Process('NNSLogin');
w := p.frmLogin;
w.Activate;
Sys.Keys('admin[Tab]123456');
w.btnLogin.Click(23, 7);
欢迎访问51testing软件测试网
p := Sys.Process('NNSLogin');
w := p.MainLogin;
w.Activate;
w.btnOK.Click(45, 8);
// ******** begin 重启进程,打开新增报表窗口frmEditTable_2 ********
p := Sys.Process('NNS.SYS.Client');
w := p.MainForm;
w.Activate;
w.trvBaseTable.VScroll.Pos := 0;
w.trvBaseTable.HScroll.Pos := 0;
w.trvBaseTable.ClickR('|报表');
w.PopupMenu.Click('新建报表');
// ******** end 重启进程,打开新增报表窗口frmEditTable_2 ********
// ******** begin 获得窗口frmEditTable_2并找到控件 ********
p := Sys.Process('NNS.SYS.Client');
w := p.frmEditTable_2;
w.Activate;
w.Object_2.Click(28, 14);
// ******** end 获得窗口frmEditTable_2并找到控件 ********
// ******** begin 通过控件赋值 ********
// ******** 附记,因五笔输入法现键盘切换还未找到解决方法,现用控件赋值******** w.Object_2.wtext := 'csbbdm01';
w.Object.wtext := '测试报表名称01';
w.cbxObject.text := '季报';
// ******** end 通过控件赋值 ********
// ******** begin 点击确定按钮,保存赋值数据 ********
p := Sys.Process('NNS.SYS.Client');
w := p.frmEditTable_2;
w.Activate;
w.btnOK.Click(24, 15);
// ******** end 点击确定按钮,保存赋值数据 ********
// ******** begin 点击保存按钮,保存报表初始分数据 ********
p := Sys.Process('NNS.SYS.Client');
w := p.MainForm;
w.Activate;
w.toolBar.Click(14, 15);
Sys.Keys('[Enter]');
// ******** end 点击保存按钮,保存报表初始分数据 ********
// ******** begin 点击解锁按钮,使toolBar各按钮可用 ********
欢迎访问51testing软件测试网
p := Sys.Process('NNS.SYS.Client');
w := p.MainForm;
w.Activate;
w.toolBar.Click(80, 15);
// ******** end 点击解锁按钮,使toolBar各按钮可用 ********
end;
●本TEST方法操作报表新建及TOOLBAR菜单按钮录制的各功能操作。可见每操作步骤脚本注释。
II.bbdesign脚本编写
procedure bbdesign;
var
p, w: OleVariant;
begin
p := Sys.Process('NNS.SYS.Client');
w := p.MainForm;
w.Activate;
//******** begin 拖入分组'边增贸易进出口总额' ********
w.tabStrip1_2.Click(94, 9);
w.trvGroup.HScroll.Pos := 0;
w.trvGroup.Click('|分组|边增贸易进出口总额');
w.trvGroup.Drag(118, 309, 398, 22);
w := p.frmInutDialog;
w.Activate;
//******** end 拖入分组'边增贸易进出口总额' ********
//******** begin输入分组表名称 ********
w.txtTableName.Click(27, 11);
Sys.Keys('888');
w.btnOK.Click(36, 5);
//******** end 输入分组表名称 ********
//******** begin 保存所做修改 ********
// p := Sys.Process('NNS.SYS.Client');
// w := p.MainForm;
// w.Activate;
// w.toolBar.Click(7, 14);
// Sys.Keys('[Enter]');
//******** end 保存所做修改 ********
//******** begin 调整分组位置 ********
p := Sys.Process('NNS.SYS.Client');
欢迎访问51testing软件测试网
w := p.MainForm;
w.Activate;
w.Object_6.Click(59, 9);
//******** end 调整分组位置 ********
//******** begin 切换TAB页至指标页 ********
p := Sys.Process('NNS.SYS.Client');
w := p.MainForm;
w.Activate;
w.tabStrip1_2.Click(50, 12);
//******** end 切换TAB页至指标页 ********
//******** begin 展开指定指标集并加入相应分组 ********
p := Sys.Process('NNS.SYS.Client');
w := p.MainForm;
w.Activate;
w.trvGuidLine.HScroll.Pos := 0;
w.trvGuidLine.Expand('|指标集|批发零售业商品销售情况');
w.trvGuidLine.HScroll.Pos := 0;
w.trvGuidLine.Click('|指标集|批发零售业商品销售情况|代码');
//******** end 展开指定指标集并加入相应分组 ********
end;
● 本TEST主要方法实现:
▲obj.Drag(ClientX, ClientY, toX, toY, Shift),此事件可记录一个轨迹的起始点至终结点的位置座标,可以展现动作的轨迹。
III.Addzbitem脚本编写
procedure addzbitem;
var
p, w: OleVariant;
begin
p := Sys.Process('NNS.SYS.Client');
w := p.MainForm;
w.Activate;
w.tabStrip1_2.Click(49, 13);
//w.trvGuidLine.HScroll.Pos := 0;
w.trvGuidLine.wSelection := '|指标集|批发零售业商品销售情况';
//w.trvGuidLine.Expand('|指标集|批发零售业商品销售情况');
w.trvGuidLine.Click('|指标集|批发零售业商品销售情况|代码');
w.trvGuidLine.Drag(88, 55, 456, 214);
欢迎访问51testing软件测试网
end;
● 本TEST主要方法实现:
▲ obj.expand()事件。
▲ 现在说明可以引用Object Properties的方法检查对象属性。当定位对象时,
可以点选View?Object Properties,然后点选Finder Tool,拖动鼠标至相应对象,可更改其属性值来检查录制点是否正确。如下图所示:
这样就可以通过其属性值来确定录制时代码是否正确。
五、测试小结
对TestComplete熟悉使用的过程中发现其功能非常丰富,虽然现在可以借荐的参阅资料还是很少,另外它有很多帮助写测试脚本的页面工具,比如,object browser,object propertites及components palette等。相信如果可以熟练驾奴它后,它将会成为一个很得力的测试助手。
六、附录
欢迎访问51testing软件测试网