


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验二、黑盒测试技术二实验类型实验类型为验证型, 2 个学时。实验目的 1 能熟练应用边界值和决策表测试技术进行测试用例设计; 2 对测试用例进行优化设计;三、背景知识一边界值测试1 边界值分析 边界值分析是考虑边界条件而选取测试用例的一种功能测试方法。 边界值分析关注输入 空间的边界,以标识测试用例,因为错误更可能出现在输入变量的极值附近。边界值分析的根本思想是:使用在最小值、略高于最小值、正常值、略低于最大值和最 大值处取输入变量值。2健壮性测试健壮性是指在异常情况下, 软件还能正常运行的能力。 健壮性考虑的主要局部是预期输 出,而不是输入。健壮性测试是边界值分析的一种简单扩展。 除了变量
2、的 5 个边界分析取值还要考虑略超 过最大值max和略小于最小值min丨时的情况。3 最坏情况测试最坏情况测试将意味着更大工作量,n变量函数的最坏情况测试会产生5的n次方个测试用例,而边界值分析只产生 4n+1 个测试用例。二基于决策表的测试决策表适合描述不同条件集合下采取行动的假设干组合的情况。使用决策表标识测试用例,那么把条件解释为输入,行动解释为输出。 有时条件最终引用输入的等价类,行为引用被 测试软件的主要功能处理局部,规那么解释为测试用例。对于有限条目决策表, 如果有 n 个条件, 那么必须有 2 条规那么。 如果不关心条目实际地说 明条件是不相关的, 那么没有不关心条目的规那么统计
3、为 1 条规那么, 规那么中每出现一个不关心条 目,该规那么数乘一次 2。四、实验设备主流 PC 机一套,要求安装 windows 操作系统、 Visual Studio2022 或 Eclipse 开发工具 和 OFFICE 工具五、实验内容NextDate 函数根据下面给出的规格说明,分别利用决策表方法,给出足够的测试用例并根据用例执行测试。NextDate函数包含三个变量:Mo nth月份、day日期和 year年,函数的输出为输入日期后一天的日期。例如,输入为2007年9月9日,那么函数的输出为2007年9月10日。要求输入变量 month、day和year均为整数,并且满足以下条件:
4、11<=month<=12;21<=day<=31 ; 31912<=year<=2050C语言程序C QtQt 5.5 0T o(jkQtC neato fbi n qtc reatc r_ proces tub .ex?£nput d艮七& like 2022-03-12: 201-041?rhe next day is:201S-04-20JAVA程序界面年:月二 _ e: _NextDate;下一天需除六、实验步骤(1) 首先根据题目要求编写nextday功能函数;(2) 根据功能性测试技术设计测试用例,主要考虑决策表测试技术: 分
5、析条件桩和动作桩输入:-Mo nth -Day-Year为获得下一个日期, NextDate函数需执行的操作只有如下5种:-day变量加1-day变量复位为1-month变量加1-month变量复位为1-year变量加1M1=月份:每月有30天M2=月份:每月有31天,12月除外M3=月份:此月是12月M4=月份:此月是2月D1 =日期:1W日期W 27D2 =日期:日期=28D3 =日期:日期=29D4 =日期:日期=30D5 =日期:日期=31Y1 =:年:年是闰年Y2 =:年:年是平年制定初始决策表-亠56789o23422条件桩在hO MM在DD0在r a e Y一动作桩匕匕 厶冃 可
6、 不0加DV0位 复D加h O M位 复 hO M0加r a e Y化简决策表:-56789oT23条件桩在 h o M0DD0在D0n00n动作桩匕匕 厶冃 可 不D加D0n0位 复aaD0n加 h o MD位 复 ho M00n0加r a e Y0(3)设计测试用例用例ID年份月份日期期望输出实际结果120014152001-04-162345678910111213七、实验报告要求1完成初始决策表和化简决策表,并设计测试用例,记录实验结果;2总结决策表设计测试用例的步骤NextDay核心代码 package com.example .n extday;import java.awt.Fl
7、owLayout;import java.awt.eve nt.Act ion Eve nt;import java.awt.eve nt.Act ion Liste ner;import javax.swi ng.JButt on;import javax.swi ng.JFrame;import javax.sw in g.JLabel;import javax.swi ng.JOptio nPane;import javax.swi ng.JTextField;public class NextDay exte nds JFrame impleme nts Acti on Liste n
8、er private JTextField year = n ull;private JTextField month = n ull;private JTextField day = n ull;private JTextField n extDate = n ull;private JButton comfir = null;private JButton clear = null;public NextDay()add(new JLabel("年:");year = new JTextField(3);add(year);add(new JLabel("月:
9、");mon th = new JTextField(2);add(m on th);add(new JLabel("日:");day = new JTextField(2);add(day);add(new JLabel("NextDate :");nextDate = new JTextField(10);n extDate.setEditable(false);add( nextDate);comfir = new JButton(" 下天");clear = new JButt on("去除");
10、add(comfir);add(clear);comfir.addActio nListe ner(this);clear.addAct ion Liste ner(this);setResizable(false);setLayout (new FlowLayout();setBou nds(0, 0, 250, 300);setVisible(true);*判断是否为闰年* param year* return*/public boolea n leap(i nt year) if (year%4 = 0 && year%100 != 0) | year%400 = 0)
11、return true;else return false;Overridepublic void action Performed(Acti onEvent e) / TODO Auto-ge nerated method stubif(e.getSource() = comfir)int y = In teger.parsel nt(year.getText().trim();int m = Integer.parselnt(month.getText().trim();int d = In teger.parse In t(day.getText().trim();if(y >=
12、1970 && y <= 3000) &&(m >= 1 && m <= 12) &&(d >= 1 && d <= 31) / if(m=1)|(m=3)|(m=5)|(m=7)|(m=8)|(m=10)|(m=12)对12月的处理if(m=12)if(d<31)nextDate.setText(y+"-"+m+"-"+(d+1);else nextDate.setText(y+1)+"-"+1+"-&quo
13、t;+1);对1、3、5、7、8、10月份的处理else if(d<31) nextDate.setText(y+"-"+m+"-"+(d+1);else nextDate.setText(y+"-"+(m+1)+"-"+1);else if(m=2)if(leap(y)if(d<30)if(d<29) nextDate.setText(y+"-"+m+"-"+(d+1);else nextDate.setText(y+"-"+(m+1)
14、+"-"+1);else JOptionPane.showMessageDialog(this,"输入日期有误 "Erroe", JOptio nPan e.ERROR_MESSAGE); year.setText("");mon th.setText(""); day.setText("");else /平年的处理if(d<29)if(d<28) nextDate.setText(y+"-"+m+"-"+(d+1);else nex
15、tDate.setText(y+"-"+(m+1)+"-"+1);else JOptionPane.showMessageDialog(this,"输入日期有误 "Erroe", JOptio nPan e.ERROR_MESSAGE); year.setText("");mon th.setText(""); day.setText("");else 不满足输入条件JOptionPane.showMessageDialog(this,"输入日期有误&qu
16、ot;Erroe", JOptio nPan e.ERROR_MESSAGE); year.setText("");mo nth.setText(""); day.setText("");if(e.getSource()=clear) year.setText("");mon th.setText(""); day.setText("");* param args*/public static void main(String args) / TODO Auto-g
17、e nerated method stub new NextDay();C+代码: #in clude <iostream> #in clude <stri ng> using n amespace std; int mai n()string ntime;int tmp;while(1)cout<< "请输入日期,例如0712-02-12" << endl;loop:cin»n time;while( ntime.le ngth()!=10)cout<<" 您的输入有误,请重新输入日期,例如0
18、712-02-12 "<<endl;goto loop; while(ntime4!='-'|ntime7!='-')cout<<" 您的输入格式有误,请重新输入日期,例如0712-02-12"<<endl;goto loop;while(ntime0='0'&&ntime1='0'&&ntime2='0'&&ntime3='0')cout<<" 您的年份输入有误,
19、请重新输入日期,例如 0712-02-12"<<endl; goto loop; while(ntime5>='2'|(ntime5='1'&&ntime6>='3')cout<<" 您的月份输入有误,请重新输入日期,例如 0712-02-12"<<endl; goto loop; while(ntime5='0'&&ntime6='0')cout<<" 您的月份输入有误,请重新输入日
20、期,例如 0712-02-12"<<endl; goto loop; while(ntime8='3'&&ntime9>='2')cout<<" 您的天数输入有误,请重新输入日期,例如 0712-02-12"<<endl; goto loop; while(ntime8='0'&&ntime9='0')cout<<" 您的天数输入有误,请重新输入日期,例如 0712-02-12"<<e
21、ndl; goto loop;while(ntime5='1'&&(ntime6='0'|ntime6='2')|ntime6='1'|ntime6='3'|ntime6='5'|ntime6='7'|ntime6='8')&&ntime8='3'&&ntime9>='2')|(ntime5='0'&&ntime6= '2'&&
22、amp;ntime8>='3')cout<<" 您的天数输入有误,请重新输入日期,例如0712-02-12"<<endl;goto loop;while(ntime5='1'&&ntime6='1')|(ntime5='0'&&(ntime6='4'|ntime6='6'|ntime6='9')&&(ntime8='3'&&ntime9>='
23、1')cout<<" 您的天数输入有误,请重新输入日期,例如0712-02-12"<<endl;goto loop;while(ntime0='9'&&ntime2='9'&&ntime3='9'&&ntime1='9'&&ntime5='1'&&ntim e6='2'&&ntime8='3'&&ntime9='1
24、')cout<<" 您的输入超出范围,请重新输入日期,例如0712-02-12"<<endl;goto loop;for(int i=0; i<ntime length(); i+) if(ntimei>='10'|ntimei<'0')&&ntimei!='-') cout<<"您的年份输入有误1请重新输入日期,例如0712-02-12"<<endl;goto loop; if(ntime8<'2
25、9;|(ntime8='2'&&ntime9<='7')if(ntime9='9') ntime9='0' ntime8=ntime8+1;else ntime9=ntime9+1; cout<<"nextday 为: "<<ntime<<endl;else if(ntime8='2'&&ntime9>='8')if(ntime5='0'&&ntime6='2&
26、#39;) tmp=(ntime0-48)*1000+(ntime1-48)*100+(ntime2-48)*10+ntime3-48; if(tmp%400=0|(tmp%4=0&&tmp%100!=0)if(ntime8='2'&&ntime9='9')ntime6=ntime6+1;ntime8='0'ntime9='1'elsentime9=ntime9+1;cout<<"nextday 为: "<<ntime<<endl;elseif
27、(ntime9='9')cout<<"您的输入有误,这一年的2月没有29天"<<endl;cout<< "请输入日期,例如 0712-02-12" << endl; goto loop;elsentime6=ntime6+1; ntime8='0'ntime9='1' cout<<"nextday 为: "<<ntime<<endl;elseif(ntime5='1'&&ntime6='1')|(ntime5='0'&&(ntime6='4&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年全民健身教练资格考试试卷及答案
- 2025年电子商务专业课程考试试题及答案
- 2025年电工证理论考试试卷及答案
- 2025年广电传媒专业入学考试试卷及答案
- 粽情端午作文300字12篇
- 生态平衡与环境现状研究:初二生物环境保护课题教案
- 家庭农场农田设施租赁协议
- 月咏几斗番外三400字(15篇)
- 初中议论文写作教学案例7篇
- 我的偶像勇敢抗疫的医护人员:写人作文(12篇)
- 《多囊肾的护理》课件
- 音乐课件《爵士乐》
- 医院培训课件:《发热伴血小板减少综合征医院感染防控》
- 工程挂靠协议1
- 智能门锁采购投标方案
- 供应商货款打折协议书正规范本(通用版)
- 中建XGT7022、XGT7020塔吊基础施工方案
- 11楼11月份工程施工月进度计划表
- 以问题为引领的小学数学大单元教学研究与实践
- 沥青路面厂拌热再生技术指南
- 4.1+陆地水体及其相互关系1河流的补给课件【要点精讲+拓展提升】人教版(2019)高中地理选择性必修1+
评论
0/150
提交评论