软件测试技术实验报告.docx
- 文档编号:13470146
- 上传时间:2023-06-14
- 格式:DOCX
- 页数:43
- 大小:1.81MB
软件测试技术实验报告.docx
《软件测试技术实验报告.docx》由会员分享,可在线阅读,更多相关《软件测试技术实验报告.docx(43页珍藏版)》请在冰点文库上搜索。
软件测试技术实验报告
《软件测试技术》
实验报告
河北工业大学计算机科学与软件学院
2017年9月
软件说明
电话号码问题
某城市电话号码由三部分组成。
它们的名称和内容分别是:
地区码:
空白或三位数字;
前缀:
非'0'或'1'的三位数字;
后缀:
4位数字。
流程图
源代码
importjava.awt.*;
importjava.awt.event.*;
publicclassPhoneNumberextendsFrameimplementsActionListener{
/**
*
*/
privatestaticfinallongserialVersionUID=1L;
privatefinalString[]st={"Name","Local","Prefix","Suffix"};
staticintc_person=0;
TextFieldt_name,t_local,t_prefix,t_suffix;
RecordDialogd_record;
MessageDialogd_message;
persona[]=newperson[100];
publicPhoneNumber()
{
super("电话号码");
this.setSize(250,250);
this.setLocation(300,240);
Panelpanel1=newPanel(newGridLayout(4,1));
for(inti=0;i panel1.add(newLabel(st[i],0)); Panelpanel2=newPanel(newGridLayout(4,1)); t_name=newTextField("",20); t_local=newTextField(""); t_prefix=newTextField(""); t_suffix=newTextField(""); panel2.add(t_name); panel2.add(t_local); panel2.add(t_prefix); panel2.add(t_suffix); Panelpanel3=newPanel(newFlowLayout()); Buttonb_save=newButton("Save"); Buttonb_record=newButton("Record"); panel3.add(b_save); panel3.add(b_record); this.setLayout(newBorderLayout()); this.add("West",panel1); this.add("East",panel2); this.add("South",panel3); addWindowListener(newWindowCloser()); b_save.addActionListener(this); b_record.addActionListener(this); d_record=newRecordDialog(this); d_message=newMessageDialog(this); this.setVisible(true); } privateclassRecordDialogextendsDialog{ privatestaticfinallongserialVersionUID=1L; Frameframe;//对话框所依赖的框架窗口 TextAreat_show; RecordDialog(Frameframe){ super(frame,"记录",true); this.frame=frame; this.setSize(300,80); t_show=newTextArea(20,20); this.add(t_show); this.addWindowListener(newWindowCloser()); } publicvoidshow(Strings){ t_show.setText(s); this.setLocation(frame.getX()+100,frame.getY()+100); this.setVisible(true); } } privateclassMessageDialogextendsDialog { /** * */ privatestaticfinallongserialVersionUID=1L; Frameframe;//对话框所依赖的框架窗口 Labellabel;//对话框中显示信息 MessageDialog(Frameframe) { super(frame,"消息",true); this.frame=frame; this.setSize(300,80); label=newLabel("",Label.CENTER); this.add(label); this.addWindowListener(newWindowCloser()); } publicvoidshow(Stringstring) { label.setText(string); this.setLocation(frame.getX()+100,frame.getY()+100); this.setVisible(true); } } privateclassWindowCloserextendsWindowAdapter{ publicvoidwindowClosing(WindowEventwe){ Windowlabel=we.getWindow(); label.setVisible(false); } } privateclassperson{ Stringname,local,prefix,suffix; person(Stringname,Stringlocal,Stringprefix,Stringsuffix){ this.name=name; this.local=local; this.prefix=prefix; this.suffix=suffix; } publicStringgetname(){ returnname; } publicStringgetlocal(){ returnlocal; } publicStringgetprefix(){ returnprefix; } publicStringgetsuffix(){ returnsuffix; } publicStringtoString(){ returnthis.getname()+"\t"+this.getlocal()+"\t"+this.getprefix()+"\t"+this.getsuffix()+"\n"; } } publicbooleancheck(Stringlocal,Stringprefix,Stringsuffix) { if((local.equals("")||(local.length()==3&&local.matches("[0-9]+"))) &&(prefix.length()==3&&prefix.matches("[2-9]+")) &&(suffix.length()==4&&suffix.matches("[0-9]+"))) returntrue; returnfalse; } publicvoidactionPerformed(ActionEvente){ Stringlabel=e.getActionCommand(); if(label=="Save"){ Stringname=t_name.getText(); Stringlocal=t_local.getText(); Stringsuffix=t_suffix.getText(); Stringprefix=t_prefix.getText(); if(check(local,prefix,suffix)) { a[c_person]=newperson(name,local,prefix,suffix); c_person++; } else { Stringmessage=""; if(! local.equals("")&&(local.length()! =3||! local.matches("[0-9]+"))) message+="localiserror,"; if(prefix.length()! =3||! prefix.matches("[2-9]+")) message+="prefixiserror,"; if((suffix.length()! =4||! suffix.matches("[0-9]+"))) message+="suffixiserror"; message+="pleaseinputagain."; d_message.show(message); } t_name.setText(""); t_local.setText(""); t_prefix.setText(""); t_suffix.setText(""); } if(label=="Record"){ d_record.show(this.toshow()); } } publicStringtoshow(){ Strings="name\tlocal\tprefix\tsuffix\n"; for(inti=0;i s+=a[i].toString(); returns; } publicstaticvoidmain(Stringarg[]) { newPhoneNumber(); } } 界面 使用说明: name姓名接受: 任意个字符 有效: 任意个字符 local地区号接受: 任意个字符 有效: 三个数字(0-9) 不填,默认为空,可改进为默认值(当前地区) Prefix前缀接受: 任意个字符 有效: 非'0'或'1'的三位数字 Suffix后缀接受: 任意个字符 有效: 4位数字(0-9) Save保存保存当前记录,清空文本框内容 Record记录读取之前的记录 白盒测试实践 判定—条件覆盖 地区码空白取真为T1取假为F1 三位取真为T2取假为F2 数字0-9取真为T3取假为F3 前缀三位取真为T4取假为F4 数字2-9取真为T5取假为F5 后缀四位取真为T6取假为F6 数字0-9取真为T7取假为F7 测试用例 编号 测试用例 取值条件 具体取值 判定条件 1 8791234 F2F3 -3数字-4数字 T 2 3335556666 F1 3数字-3数字-4数字 T 3 33A5556666 F3 含字母-3数字-4数字 F 4 335556666 F2 2数字-3数字-4数字 F 5 3330006666 F5 3数字-000-4数字 F 6 333556666 F4 3数字-2数字-4数字 F 7 333555A666 F7 3数字-3数字-含字母 F 8 33355566 F6 3数字-3数字-2数字 F 测试报告 用例ID 地区码 前缀 后缀 预期输出 实际输出 测试结果 1 空白 879 1234 合法 合法 OK 2 333 555 6666 合法 合法 OK 3 33a 555 6666 不正确 合法 OK 4 33 555 6666 不正确 合法 OK 5 333 55 6666 不正确 合法 OK 6 333 55a 6666 不正确 合法 OK 7 333 555 a666 不正确 合法 OK 8 333 5555 66 不正确 合法 OK 黑盒测试实践 实验内容 针对实验一所设计并实现的程序,制定功能测试测试计划,并利用所学黑盒测试的基本理论,设计测试用例,并在所开发的软件中进行测试。 等价类划分: 电话号码等价类 有效等价类编号无效等价类编号 空白1有非数字字符的三位数5 地区码三位数字2少于三位数字6 多余三位数字7 有非数字字符的三位数8 小于三位数9 前缀200到999之间的数3大于三位数10 含0的三位数11 含1的三位数12 有非数字字符的四位13 后缀四位数字4少于四位数字14 多余四位的数字15 测试报告: 用例ID 地区码 前缀 后缀 预期输出 实际输出 测试结果 1 空白 879 1234 合法 合法 OK 2 333 555 6666 合法 合法 OK 3 33a 555 6666 不正确 合法 OK 4 33 555 6666 不正确 合法 OK 5 3333 555 6666 不正确 合法 OK 6 333 55a 6666 不正确 合法 OK 7 333 55 6666 不正确 合法 OK 8 333 5555 6666 不正确 合法 OK 9 333 55 6666 不正确 合法 OK 10 333 155 6666 不正确 合法 OK 11 333 555 a666 不正确 合法 OK 12 333 555 666 不正确 合法 OK 13 333 555 6666 不正确 合法 OK 自动化单元测试实践 实验内容 针对实验二所设计并实现的程序,本项目要求根据所设计测试用例,利用JUnit进行自动化单元测试,并给出代码覆盖情况。 白盒测试源程序: importjunit.framework.Assert; importjunit.framework.TestCase; publicclassex_1TestextendsTestCase{ ex_1pn=newex_1(); publicvoidtestCheck1(){ Assert.assertEquals("电话号码合法",true,pn.check("","879","1234")); } publicvoidtestCheckPhoneNumber2(){ Assert.assertEquals("电话号码合法",true,pn.check("333","555","6666")); } publicvoidtestCheckPhoneNumber3(){ Assert.assertEquals("电话号码不正确",false,pn.check("33a","555","6666")); } publicvoidtestCheckPhoneNumber4(){ Assert.assertEquals("电话号码不正确",false,pn.check("33","555","6666")); } publicvoidtestCheckPhoneNumber5(){ Assert.assertEquals("电话号码不正确",false,pn.check("333","55a","6666")); } publicvoidtestCheckPhoneNumber6(){ Assert.assertEquals("电话号码不正确",false,pn.check("333","55","6666")); } publicvoidtestCheckPhoneNumber7(){ Assert.assertEquals("电话号码不正确",false,pn.check("333","555","a666")); } publicvoidtestCheckPhoneNumber8(){ Assert.assertEquals("电话号码不正确",false,pn.check("333","555","66")); } } 黑盒测试代码: importjunit.framework.Assert; importjunit.framework.TestCase; publicclassex_1TestextendsTestCase{ ex_1pn=newex_1(); publicvoidtestCheck1(){ Assert.assertEquals("电话号码合法",true,pn.check("","879","1234")); } publicvoidtestCheckPhoneNumber2(){ Assert.assertEquals("电话号码合法",true,pn.check("333","555","6666")); } publicvoidtestCheckPhoneNumber3(){ Assert.assertEquals("电话号码不正确",false,pn.check("33a","555","6666")); } publicvoidtestCheckPhoneNumber4(){ Assert.assertEquals("电话号码不正确",false,pn.check("33","555","6666")); } publicvoidtestCheckPhoneNumber5(){ Assert.assertEquals("电话号码不正确",false,pn.check("3333","555","6666")); } publicvoidtestCheckPhoneNumber6(){ Assert.assertEquals("电话号码不正确",false,pn.check("333","55a","6666")); } publicvoidtestCheckPhoneNumber7(){ Assert.assertEquals("电话号码不正确",false,pn.check("333","55","6666")); } publicvoidtestCheckPhoneNumber8(){ Assert.assertEquals("电话号码不正确",false,pn.check("333","5555","6666")); } publicvoidtestCheckPhoneNumber9(){ Assert.assertEquals("电话号码不正确",false,pn.check("333","055","6666")); } publicvoidtestCheckPhoneNumber10(){ Assert.assertEquals("电话号码不正确",false,pn.check("333","155","6666")); } publicvoidtestCheckPhoneNumber11(){ Assert.assertEquals("电话号码不正确",false,pn.check("333","555","a666")); } publicvoidtestCheckPhoneNumber12(){ Assert.assertEquals("电话号码不正确",false,pn.check("333","555","666")); } publicvoidtestCheckPhoneNumber13(){ Assert.assertEquals("电话号码不正确",false,pn.check("333","555","66666")); } } 五、自动化功能测试实践 一、实验内容 功能测试是针对应用系统进行测试,是基于产品功能说明书,是在已知产品所应具有的功能,从用户角度来进行功能验证,以确认每个功能是否都能正常使用。 本项目主要使用QuickTest对其自带的MercuryTours网站/飞机票订票系统进行功能测试,要求录制预订机票的完整过程,然后执行测试脚本并分析结果。 录制脚本 录制一个测试脚本。 在Mercury Tours范例网站上预订一张从london到denver的机票。 ✧开启新的测试脚本 ✧停止录制 ✧储存测试脚本 分析测试脚本 【Item】: 以阶层式的图标显示这个操作步骤所作用到的组件(测试对象(test object)、工具对象(utility object)、函数呼叫(function call)或脚本(statement))。 【Operation】: 要在这个作用到的组件上执行的动作,如点选(Click)、选取(Select)。 【Value】: 执行动作的参数(argument),例如当鼠标点选一张图片时是用左键还是右键。 【Assignment】: 使用到的变量。 【Comment】: 你在测试脚本中加入的批注。 【Documentation】: 自动产生用来描述此操作步骤的英文说明。 创建检查点 (1)检查点类
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 技术 实验 报告