软件测试案例(三角形黑盒测试)
黑盒测试用例设计案例(判三角形)
黑盒测试用例设计案例(判三角形)【例1】假设现有以下的三角形分类程序。
该程序的功能是,读入代表三角形边长的3个整数,判定它们能否组成三角形。
如果能够,则输出三角形是等边、等腰或任意三角形的分类信息。
图9.11显示了该程序的流程图和程序图。
为以上的三角形分类程序设计一组测试用例。
【解】第一步:确定测试策略。
在本例中,对被测程序的功能有明确的要求,即:(1)判断能否组成三角形;(2)识别等边三角形;(3)识别等腰三角形;(4)识别任意三角形。
因此可首先用黑盒法设计测试用例,然后用白盒法验证其完整性,必要时再进行补充。
第二步:根据本例的实际情况,在黑盒法中首先可用等价分类法划分输入的等价类,然后用边界值分析法和猜错法作补充。
等价分类法:有效等价类输入3个正整数:(1)3数相等(2)3数中有2个数相等,比如AB相等(3)3数中有2个数相等,比如BC相等(4)3数中有2个数相等,比如AC相等(5)3数均不相等(6)2数之和不大于第3数,比如最大数是A(7)2数之和不大于第3数,比如最大数是B(8)2数之和不大于第3数,比如最大数是C无效等价类:(9)含有零数据(10)含有负整数(11)少于3个整数(12)含有非整数(13)含有非数字符边界值法:(14)2数之和等于第3数猜错法:(15)输入3个零(16)输入3个负数第三步:提出一组初步的测试用例,如下表所示:第四步:用白盒法验证第三步产生的测试用例的充分性。
结果表明,上表中的前8个测试用例,已能满足对被测程序图的完全覆盖,不需要再补充其他的测试用例。
实验三 三角形组成问题程序的黑盒测试
辽宁工程技术大学上机实验报告实验分析续效等价类。
(2)根据所列出的等价类表,设计能覆盖所有等价类的测试用例,以及输入和预期的输出。
划分的等价类表如表1-1所示。
表1-1三角形函数程序的等价类表输入条件有效等价类编号无效等价类编号边长a 1<=a<=100 1 a<1 7a>100 8边长b 1<=b<=100 2 b<1 9b>100 10边长c 1<=c<=100 3 c<1 11c>100 12边长a、b、c a+b>c 4 a+b<=c 13边长a、b、c a+c>b 5 a+b<=c 14边长a、b、c b+c>a 6 b+c<=a 15表1-2三角形函数等价类测试用例测试用例 a b c 预期输出Text1 50 60 70 一般三角形Text2 -1 50 50 超出边界下限Text3 101 50 50 超出边界上限Text4 50 -1 50 超出边界下限Text5 50 101 50 超出边界上限Text6 50 50 -1 超出边界下限Text7 50 50 101 超出边界上限Text8 40 40 100 非三角形Text9 40 100 40 非三角形Text10 100 4 40 非三角形等价类测试测试用例运行结果截图:测试用例1图1-1测试用例2图1-2实验分析续测试用例3图1-3 测试用例4图1-4 测试用例5图1-5 测试用例6图1-6 测试用例7图1-7 测试用例8实验分析续图1-8测试用例9图1-9测试用例10图1-102 边界值测试在三角形组成问题的描述中,要求边长为正整数,其输入域的边界下限值为1,上限值为100。
表2-1给出三角形问题的边界值分析测试用例。
表2-1三角形函数程序边界值测试用例测试用例 a b c 预期输出Text1 60 60 -1 超出边界下限Text2 60 60 1 等腰三角形Text3 60 60 2 等腰三角形Text4 60 60 60 等边三角形Text5 50 50 99 等腰三角形Text6 50 50 100 非三角形Text7 60 60 101 超出边界上限Text8 60 -1 60 超出边界下限Text9 60 1 60 等腰三角形Text10 60 2 60 等腰三角形Text11 50 99 50 等腰三角形Text12 50 100 50 非三角形Text13 60 101 60 超出边界上限Text14 -1 60 60 超出边界下限Text15 1 60 60 等腰三角形Text16 2 60 60 等腰三角形Text17 99 50 50 等腰三角形Text18 100 50 50 非三角形Text19 101 50 50 超出边界上限其中,-1、1、2、99、100、101为边界值。
软件测试实验报告-黑盒测试等价划分类
A为闰年且 6 b=2,c:1~29
A为平年且 7 b=2,c:1~28
覆盖有效等价类的测试用类
a
b
c
2013
10
9
2012
2
28
2013
2
28
2013
9
15
覆盖无效等价类的测试用类
a
b
c
0.2013
10
9
2013
0.1
9
2013
10
0.9
0.2013
0.1
9
0.2013
10
0.9
2013
0.1
0.9
if(a+b>c||a+c>b||b+c>a)cout<<"a,b,c 的值不能构成三角形!"; 8 if(a==b&&b==c)cout<<"是等边三角形!"; 9 if(a==b||b==c||a==c)cout<<"是等边三角形!"; 11 if(a<>b&&b<>c&&c<>a)cout<<"一般三角形!"; 12
5
1、2、3、4、5
4
1、2、3、4、6
覆盖无效等价类的测试用类
a
b
ห้องสมุดไป่ตู้
c
覆盖无效等价类号码
0
4
5
7
3
0
5
8
3
4
0
9
3
4
7
10
7
软件测试-三角形问题
F T T T
F T T F
F T F T
F T F F
F F T T
F F T F
F F F T
F F F F
√
√
√
√
√
√
√
√
制作者:
Page 16
决策表法
表4-12 三角形问题的初始决策表
规则
选项 条件: C1:a,b,c构成一 个三角形? C2:a=b? C3:b=c? C4:a=c? 动作: a1:非三角形 a2:一般三角形 a3:等腰三角形 a4:等边三角形 a5:不可能 √ √ √
制作者:
表4-2 三角形问题的测试用例
等价类划分法——以输出域划分等价类
以三角形问题为例,要求输入三个整数a、b、c,分 别作为三角形的三条边,取值范围在1~100之间, 判断由三条边构成的三角形类型为等边三角形、等 腰三角形、一般三角形(包括直角三角形)以及非 三角形。 在多数情况下,是从输入域划分等价类,但对于三 角形问题,从输出域来定义等价类是最简单的划分 方法。
填写条件项。
填写动作项,从而得到初始决策表。如表4-12所示。 简化决策表。合并相似规则后得到三角形问题的简化决策 表。如表4-13所示。
制作者:
Page 15
决策表法
表4-12 三角形问题的初始决策表
规则 选项 条件: C1:a,b,c构成一 个三角形? C2:a=b? C3:b=c? C4:a=c? 动作: a1:非三角形 a2:一般三角形 a3:等腰三角形 a4:等边三角形 a5:不可能 1 2 3 4 5 6 7 8
9
10
11
12
13
14
15
16
软件测试判断三角形形状白盒测试黑盒测试
淮海工学院计算机工程学院实验报告书课程名:《软件工程导论》题目:软件测试学号: 511020825姓名:薛思雨一、实验目的与要求1、掌握软件测试2、掌握白盒测试方法3、掌握黑盒测试方法(边界值分析和等价类划分)4、掌握自动化测试软件和方法二、实验内容或题目1)试画出:给定四边形的四条边,判断这个四边形是普通四边形、平等四边形、菱形的流程图,给出详细设计结果与C语言代码,对其使用白盒和黑盒测试技术分别设计测试用例(包括所有白盒测试的覆盖、黑盒测试的边界值分析与等价类划分)。
然后,使用测试用例进行实际测试,并给出测试结果;(或输入三条边,判断三条边组成的图形是一般三角形、等腰三角形、直角三角形、等边三角形,亦或不能构成三角形,其它要求同四边形)2)了解一些典型的自动化测试软件和方法,建议有条件可下载、安装Mercury Interactive公司的负载测试工具LoadRunner、功能测试工具WinRunner和测试管理工具TestDirector;IBM-Rational公司的测试套件Rational Suite TestStudio的Rational Robot、Rational TestManagerhe、Rational Quantify等工具,了解软件的使用方法。
3) 课内认真完成实验报告,禁止抄袭。
三、实验步骤与源程序第一题:1. 根据题目画流程图核心流程图:源代码:#include<stdio.h>void main(void){int a,b,c,k;printf("请输入三角形的三边长(0-100):");scanf("%d %d %d",&a,&b,&c);if((a>=1&&a<=100)&&(b>=1&&b<=100)&&(c>=1&&c<=100)) {if((a+b>c)&&(a+c>b)&&(b+c>a)){if((a==b&&b!=c)||(a==c&&c!=b)||(b==c&&a!=b))k=1;if(a==b&&a==c)k=2;if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(c*c+b*b==a*a))k=3;switch(k){case 1:printf("等腰三角形\n");break;case 2:printf("等边三角形\n");break;case 3:printf("直角三角形\n");break;default:printf("一般三角形\n");break;}}elseprintf("不能构成三角形\n");}elseprintf("警告:无效输入!!\n");}第二题:1.打开虚拟机,启动Windows XP Professional。
软件测试实验报告(测试用例 代码 截图)
软件测试实验报告(测试用例代码截图)计算机软件测试技术实验报告系别电子信息系专业计算机科学与技术班级学号姓名指导教师万聪2010年12月19月实验一黑盒测试用例设计一(实验内容:1( 三角形问题的等价类测试和边界值分析测试2( NextDate()函数决策表法测试二(实验要求:给出测试用例和测试结果三(实验步骤及结果:3.1(三角形)实验代码(c)#include<stdio.h> #include<stdlib.h>int a=0,b=0,c=0;void shuru();void panduan(int a1,int b1,int c1);void main(){char se;shuru();panduan(a,b,c);while(1){printf("是否要继续y or n :");scanf("%c",&se);if(se=='\n') scanf("%c",&se);switch(se){case 'y':shuru();panduan(a,b,c);break;case 'n':return;}}}void shuru(){printf("Please enter 三角形三边 (a,b,c)\n"); scanf("%d,%d,%d",&a,&b,&c);while((a<1||a>100)||(b<1||b>100)||(c<1||c>100)){if(a==0||b==0||c==0) printf("边长不能为0\n");else if(a<0||b<0||c<0) printf("边长不能为负\n");else printf("Please enter 1-100之间的整数\n");scanf("%d,%d,%d",&a,&b,&c);}}void panduan(int a1,int b1,int c1) {int m1=a1+b1;int m2=a1+c1;int m3=b1+c1;if(a1>=m3||b1>=m2||c1>=m1) printf("非三角形\n");else if(a1!=b1&&a1!=c1&&b1!=c1) printf("一般三角形\n");else if((a1==b1&&b1!=c1)||(a1==c1&&a1!=b1)||(c1==b1&&a1!=c1)) printf("等腰三角形\n");else if(a1==b1&&b1==c1) printf("等边三角形\n"); }3.2测试用例和结果(反映在图中)测试用例输入a,b,c 输出1 4,5,6 一般三角形2 2,3,6 非三角形3 4,4,7 等腰三角形4 6,6,6 等边三角形5 4,0,6 边长不能为06 4,-5,6 边长不能为负7 101,101,101 请输入1-100之间的整数图形结果:3.3(NextDate())实验代码(c)#include<stdio.h>#include<stdlib.h>#include<time.h>void main(){int year;int month,day;int leap;//标志是闰年还是平年,为1时是闰年,为2时是平年time_t t;//本来以下是用来判断格式输入是否正确的,但是结果不理想struct tm stm;//Awhile(1){//循环测试printf("请输入年(yyyy)/月(mm)/日(dd)\n");scanf("%d/%d/%d",&stm.tm_year,&stm.tm_mon,&stm.tm_mday);//B year=stm.tm_year;month=stm.tm_mon;day=stm.tm_mday;//Ct=mktime(&stm);//Dprintf("*****输出结果*****\n");if(t!=-1)//E有问题,不管输入格式是什么,t永远是-1{printf("输入的日期时间格式出错!\n");continue;}if(year%4==0)//年份判断{if(year%100==0){if(year%400==0){leap=1;printf("%ld年%d月%d日是闰年\n",year,month,day);}else{leap=2;printf("%ld年%d月%d日是平年\n",year,month,day); }}else{leap=1;printf("%ld年%d月%d日是闰年\n",year,month,day); }}else{leap=2;printf("%ld年%d月%d日是平年\n",year,month,day); }if(month==2){if(leap==1){printf("该月有29天\n");if(day>29){printf("对不起!您输入的日期超出该月范围\n"); continue;}else if(day==29){month=month+1;day=1;}else day=day+1;}if(leap==2){printf("该月有28天\n");if(day>28){printf("对不起!您输入的日期超出该月范围\n"); continue;}else if(day==28){month=month+1;day=1;}else day=day+1;}}else if(month==4||month==6||month==9||month==11){printf("该月有30天\n");if(day>30){printf("对不起!您输入的日期超出该月范围\n"); continue;}else if(day==30){month=month+1;day=1;}else day=day+1;}else{printf("该月有31天\n");if(day>31){printf("对不起~超出该月范围\n");continue;}else if(day==31){if(month==12&&day==31){year=year+1;month=1;day=1;}else{month=month+1;day=1;}}else day=day+1;}printf("NEXT日期:%ld年%d月%d日\n",year,month,day); }}3.4测试用例和结果(反映在图中)决策表测试用例 month day year 预期输出Test1~3 6 16 2001 2001/6/17Test4 6 30 2001 2001/7/1Test5 6 31 2001 对不起~超出该月范围Test6~9 1 17 2010 2010/1/18Test10 1 31 2013 2013/2/1Test 11~14 12 31 2010 2010/1/1Test15 2 28 2004 2004/2/29Test16 2 29 2004 2004/3/1Test17 2 28 2001 2001/3/1Test18 2 30 2001 对不起~超出该月范围界面效果:实验二白盒测试用例设计一(实验内容:求解一元二次方程程序控制流测试二(实验要求:给出控制流测试用例和测试结果三(实验步骤及结果:3.1实验代码(c)#include<stdio.h>#include<stdlib.h>#include<math.h>void main(){float a,b,c,x,y;float mid,x1,x2;y=a*x*x+b*x+c;printf("*************************************\n"); printf("二元一次方程的求解问题\n");printf("**************************************\n"); while(1){printf("请输入y方程中参数a,b,c: \n");scanf("%f,%f,%f",&a,&b,&c);if(a!=0){mid=b*b-4*a*c;if(mid>0){x1=(-b+sqrt(mid))/(2*a);x1=(-b-sqrt(mid))/(2*a);printf("该方程有两个解:x1=%f,x2=%f\n",x1,x2);//printf("y=(%f*%f*%f)+(%f*%f)+(%f)\n",a,x1,x1,b,x1,c);//printf("y=(%f*%f*%f)+(%f*%f)+(%f)\n",a,x2,x2,b,x1,c);}if(mid==0){x1=-b/(2*a);x2=x1;printf("该方程两个解相同:x1=x2=%f\n",x2);printf("y=(%f*%f*%f)+(%f*%f)+(%f)\n",a,x1,x1,b,x1,c);}if(mid<0){printf("该方程没有解\n");}}else printf("该方程不是二元方程,可能是一元一次方程\n");}}3.2测试用例和结果(反映在图中)测试用例 x,y,z a!=0 mid>0 mid==0 输出结果1 2,5,3 真真假该方程有两个解2 1,2,1 真假真该方程有两个相同解3 4,2,1 真假假该方程没有解4 0,2,1 假该方程不是二元方程,可能是一元一次方程图形结果:实验三基于缺陷模式的软件测试一(实验内容:C++语言、Java语言缺陷模式测试 (2学时) 二(实验要求:给出测试用例和测试结果三(实验步骤及结果:3.1实验代码(java)package hl.fengye.tt;public class base{//没必要的方法调用,System.exit()是没有必要的,应该抛出异常public String square(String x){try{int y=Integer.parseInt(x.toLowerCase());return y*y+"";}catch(NumberFormatException e){e.printStackTrace();System.exit(1);return "";}}//显示垃圾回收(缺陷)public String multiply(String x,int n){if(n<=0) return "";StringBuffer buf=new StringBuffer();while(n-->0){buf.append(x);}return buf.toString();}public String multiplyGc(String x,int n){ System.gc();//显示运行结果return multiply(x,n);}//字符串的低效操作(连接)public void connection(){String filed="东北大学秦皇岛分校 4080420 黄磊"; //this is badString s="";//System.out.print(s);//Startfor(int i=0;i<filed.length();++i){s=s+filed.charAt(i);//追加}System.out.print(s+'\n');//Stop1}public void connection2(){String filed="东北大学秦皇岛分校 4080420 黄磊";//this is betterString s="";StringBuffer buf=new StringBuffer();for(int i=0;i<filed.length();++i){buf.append(filed.charAt(i));}String ss=buf.toString();System.out.print(ss+'\n');//Stop2}public static void main(String[] args) {String h;base pp=new base();h=pp.square("100");System.out.print(h+"\n");String s="hello word!";h=pp.multiply(s, 2);//System.out.print(h+"\n");h=pp.multiplyGc(s,2);System.out.print(h+"\n");//以纳秒为单位计算的:long startTime = System.nanoTime();//获取当前时间pp.connection();long endTime = System.nanoTime();System.out.println("程序运行时间:"+(endTime-startTime)+"ms");long startTime2 = System.nanoTime();//获取当前时间pp.connection2();long endTime2 = System.nanoTime();System.out.println("程序运行时间:"+(endTime2-startTime2)+"ms"); }}3.2测试用例和结果(反映在图中)显示垃圾回收部分:测试用例输入String s ,int n 输出结果1 hello word !,2 hello word! hello word!2 ni hao ,1 ni hao3 love you ,0 (null)图形显示:低效字符串操作部分:测试用例输入String s 输出时间bad(ms) good(ms)1 hl 441694 271302 hello word 477785 378673 东北大学秦皇岛分校 4080420 黄磊 456245 392444 (空格) 313135 51604部分图形展示:实验四系统测试一(实验内容:数据库应用系统性能测试二(实验要求:给出响应时间、吞吐量测试用例和结果三(实验步骤及结果:3.1实验代码(java)import java.sql.Connection;import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement;public class huanglei {/*** @param args* @throws Exception*/public void execute() throws Exception{Class.forName("com.mysql.jdbc.Driver");Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","root");con.setAutoCommit(false);Statement st = con.createStatement();//st.execute("create table city (name varchar(20) not null)");for(int i = 100;i>0;i--){String str = "insert into city values('city"+i+"','huangeli','hebei')";System.out.println(str);st.addBatch(str);}//rs='select * from city';st.executeBatch();mit();}public static void main(String[] args) {// TODO Auto-generated method stubtry {new Luncher().execute();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}3.2测试用例和结果(反映在图中)测试用例线程数循环次数响应时间(seconds)吞吐结果1 100 10 1 592.002/minute2 50 5 1 293.232/minute1 100 102 586.61/minute图形展示:实验总结:通过这些课时的实验,了解了一些软件测试的基本含义,学会了一些基本测试步骤的设计和用例的构造。
黑盒测试用例设计方法-案例参考答案
黑盒测试用例设计方法-案例21、等价类划分案例有一个程序读入3个整数,把这3个整数作为一个三角形的3条边的长度值。
这个程序要打印出信息,说明这3个整数是否能组成三角形,如果能组成三角形,说明这个三角形是不等边、等腰或等边三角形。
解答:分析题目中给出和隐含的对输入条件的要求:(1)整数(2)三个数(3)非零数(4)正数(5)两边之和大于第三边(6)等腰(7)等边如果三条边满足条件(1)~ (4),则输出下列四种情况之一:☐如果不满足条件(5),则程序输出为“非三角形”☐如果三条边相等即满足条件(7),则程序输出为“等边三角形”☐如果只有两条边相等、即满足条件(6),则程序输出为“等腰三角形”☐如果三条边都不相等,则程序输出为“不等边三角形”可以设定3条边分别为A,B,C。
如果他们能构成三角形的3条边,必须满足:0<A, 0<B, 0<C,且A+B>C,B+C>A,A+C>B如果是等腰,要判断A=B,或B=C,或A=C如果是等边,要判断A=B,且B=C,且A=C2、边界值案例Void CMyClass::Grow(int years) {mAge += years;if(mAge<10)mPhase = "儿童";else if(mAge<20)mPhase = "少年";else if(mAge<45)mPhase = "青年";else if(mAge<60)mPhase = "中年";elsemPhase = "老年";}测试用例3、因果图案例1某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。
找出原因和结果:原因:C1——第一列字符是AC2——第一列字符是BC3——第二列字符是一数字结果:E1——给出信息LE2——修改文件E3——给出信息M生成因果图转换为判定表4、因果图案例2有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。
软件测试经典三角形案例
软件测试-黑盒测试例子一、等价类划分问:某程序规定:"输入三个整数 a、 b、 c分别作为三边的边长构成三角形。
通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算… "。
用等价类划分方法为该程序进行测试用例设计。
(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。
)解:分析题目中给出和隐含的对输入条件的要求:(1)整数(2)三个数(3)非零数(4)正数(5)两边之和大于第三边(6)等腰(7)等边如果 a、 b 、 c满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一:1)如果不满足条件(5),则程序输出为 " 非三角形 " 。
2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。
3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。
4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。
列出等价类表并编号覆盖有效等价类的测试用例:a b c覆盖等价类号码3 4 5(1)--(7)4 4 5(1)--(7),(8)4 5 5(1)--(7),(9)5 4 5(1)--(7),(10) 4 4 4(1)--(7),(11)覆盖无效等价类的测试用例:二、边界值分析法NextDate函数的边界值分析测试用例在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1≤mouth≤12和1≤day≤31,并设定变量year的取值范围为1912≤year≤2050 。
三、错误推测法测试一个对线性表(比如数组)进行排序的程序,可推测列出以下几项需要特别测试的情况:I.输入的线性表为空表;II.表中只含有一个元素;III.输入表中所有元素已排好序;IV.输入表已按逆序排好;V.输入表中部分或全部元素相同。
黑盒测试-三角形
黑盒测试1.实验目的:理解黑盒测试的基本方法,掌握等价类划分法和边界值方法设计测试用例。
2.实验配置:(1)PC机一套,要求安装windows操作系统、Virtul Studio6.0、java等工具;(2)理解等价类划分法、边界值分析法的思想,划分依据;(3)熟悉上述方法测试用例设计的理论。
3.实验内容:1)输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。
要求输入三个整数a、b、c,必须满足以下条件:1≤a≤100;1≤b≤100;1≤c≤100。
要求:a.大家用自己熟悉的编程语言,实现上面问题的描述。
b.请用等价类设计测试用例。
4.实验步骤:(1)三角形问题1) 编写程序,实现三角形问题。
要求实验输入输出如图所示:(2)设计测试用例用等价类分析法设计测试用例。
按照输入条件和输出形式划分等价类输入条件:可以从以下四个方面划分等价类:三个数,整数,非0数,正数输出条件:可以划分为一个等价类,一般三角形,等腰三角形,等边三角形,不构成三角形。
写出测试报告,如下表所示:5.实验总结:1、大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。
因此针对各种边界情况设计测试用例,可以查出更多的错误;2、使用边界值分析方法设计测试用例,首先应确定边界情况。
通常输入和输出等价类的边界,就是应着重测试的边界情况。
应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
软件测试经典三角形案例
软件测试-黑盒测试例子一、等价类划分问:某程序规定:"输入三个整数 a、 b、 c分别作为三边的边长构成三角形。
通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算… "。
用等价类划分方法为该程序进行测试用例设计。
(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。
)解:分析题目中给出和隐含的对输入条件的要求:(1)整数(2)三个数(3)非零数(4)正数(5)两边之和大于第三边(6)等腰(7)等边如果 a、 b 、 c满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一:1)如果不满足条件(5),则程序输出为 " 非三角形 " 。
2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。
3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。
4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。
列出等价类表并编号覆盖有效等价类的测试用例:a b c覆盖等价类号码3 4 5(1)--(7)4 4 5(1)--(7),(8)4 5 5(1)--(7),(9)5 4 5(1)--(7),(10) 4 4 4(1)--(7),(11)覆盖无效等价类的测试用例:二、边界值分析法NextDate函数的边界值分析测试用例在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1≤mouth≤12和1≤day≤31,并设定变量year的取值范围为1912≤year≤2050 。
三、错误推测法测试一个对线性表(比如数组)进行排序的程序,可推测列出以下几项需要特别测试的情况:I.输入的线性表为空表;II.表中只含有一个元素;III.输入表中所有元素已排好序;IV.输入表已按逆序排好;V.输入表中部分或全部元素相同。
三角形黑盒测试技术实验报告
黑盒测试技术—三角形问题实验报告一、问题描述输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型并输出(等边三角形、等腰三角形、一般三角形),如果不构成三角形输出不能构成三角形。
要求:(1)输入三个整数a、b、c,必须满足以下条件:1≤a≤200;1≤b≤200;1≤c≤200。
(2)容错处理:输入空值的提示;输入的值满足类型的提示;(3)不限制开发环境,不限制开发语言;(4)尽可能不对自己的程序进行测试设计。
(5)请分别采用边界值分析法、等价类分析法、决策表分析法、基于场景分析法设计测试用例;(6)正文格式(除源代码用小五号单倍行距),其他行距固定值20,字号小四。
二、程序主要源代码using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace software_test{public partial class FrmTest : Form{public FrmTest(){InitializeComponent();}private void btnOk_Click(object sender, EventArgs e){string numbera = "a";string numberb = "b";string numberc = "c";String txta = txtA.Text;String txtb = txtB.Text;String txtc = txtC.Text;//输入值是否正确的判断judgeInput(txta, numbera);judgeInput(txtb, numberb);judgeInput(txtc, numberc);//组成三角形的判断judgeTriangle(txta, txtb, txtc);}//判断输入是否为a数字的方法且是否有效private void judgeInput(String e,String X){int x;if (!int.TryParse(e,out x)) {String message = String.Format("{0}输入必须为整数!", X);MessageBox.Show(message);}else if (!(int.Parse(e) >= 1 && int.Parse(e) <= 200)){String message = String.Format("{0}输入必须为1到200!",X);MessageBox.Show(message);}}//判断能否组成三角形,或者组成为等腰,等边,还是普通三角形public void judgeTriangle(String x, String y, String z) {int b1=int.Parse(x);int b2=int.Parse(y);int b3=int.Parse(z);if (!(b1 + b2 > b3 && b1 + b3 > b2 && b2 + b3 > b1)){MessageBox.Show("不能组成三角形");}else if (b1 == b2 && b2 == b3){MessageBox.Show("能组成等边三角形");}else if (b1 == b2 || b2 == b3 || b1 == b3){MessageBox.Show("能组成等腰三角形");}else {MessageBox.Show("能组成普通三角形");}}}}三、程序界面(截图)四、设计测试用例1. 用边界值测试方法设计测试用例用边界值分析法设计测试用例,按照下列步骤进行:(1)分析各变量取值答:a取0,1,2,199,200,201;b取0,1,2,199,200,201;c取0,1,2,199,200,201(2)测试用例数答:18个(3)设计测试用例(给出所有测试用例)三角形问题的测试用例2. 用等价类测试方法设计测试用例(1)首先分析题目中给出的条件和隐含的输入要求,输入条件如下:答:1<=a<=200;1<=b<=200;1<=c<=200;一般三角形:(a+b)>c&&(a+c)>b&& (b+c)>a;等腰三角形:b=c||a=c||a=b;(2)根据输入条件的要求划分等价类,列出等价类表并编号(3) 设计测试用例,覆盖上表中的等价类,如表1-3表所示。
黑盒测试——等价类划分法
实验二: 黑盒测试——等价类划分法【实验环境】Windows 10 操作系统,C,C++,C#、Java或Python语言开发环境(IDE)。
【实验类型】设计型【实验目的】1.认识黑盒测试方法中等价类划分测试方法原理2.掌握黑盒测试方法中等价类划分测试方法过程【实验内容】【实验材料】1.三角形问题问题描述:三角形问题接受三个整数,a、b和c作为输入,用作三角形的边。
程序的输出是由这三条边确定的三角形类型:等边三角形、等腰三角形、不等边三角形或非三角形。
作为输入:三角形的三条边必须满足如下条件:C1:1<=a<=100C2:1<=b<=100C3:1<=c<=100C4:a<b+cC5:b<a+cC6:c<a+b2.NextDate函数问题描述:NextDate是一个由三个变量(月份、日期和年份)的函数。
函数返回输入日期后边的那个日期。
作为输入:变量月份、日期和年都具有整数值,满足以下条件。
C1:1<=月份<=12C2:1<=日期<=31C3:1912<=年<=20503.佣金问题问题描述:前亚利桑那洲境内的一位步枪销售商销售密苏里州制造商制造的步枪机(lock)、枪托(stock)和枪管(barrel)。
枪机卖45美元,枪托卖30美元,枪管卖25美元。
销售商每月至少要售出一支完整的步枪,且生产限额是大多数销售商在一个月内可销售70个枪机、80个枪托和90个枪管。
每访问一个镇子后,销售商都给密苏里州步枪制造商发出一份很短的电报,通知几个枪机被售出。
这样步枪制造商就知道当月的销售情况,并计算销售商的佣金如下:不到(含)1000美元的部分为10%;1000(不含)~1800(含)美元的部分为15%;超过1800美元的部分为20%。
佣金程序生成月份销售报告,汇总售出的枪机、枪托和枪管总数,销售商的总销售额以及佣金。
经典三角形白盒黑盒测试加测试工具
22 }23 }else{24SetDlgItemText(IDC_RESULT, "不能构成三角形");25 }2.3.4程序控制图2.3.5圈复杂度V(G)=37(条边)-27(个节点)+2=12Table 1myDlg:OnButton2的函数流程图3. 度量元检测结果Table 2 函数度量元检测结果4. 函数质量标准检测结果Table 3 函数质量标准检测结果5. 系统度量元检测结果Table 4 系统度量元检测结果6.类度量元的检测结果Table 5 类度量元的检测结果7.类质量准则的检测结果Table 6 类质量准则的检测结果8. 父类、子类之间的派生关系Table 7父类、子类之间的派生关系9.类与类之间的使用关系Table 8类与类之间的使用关系2.4.2RuleChecker项目1.代码检测结果Table 9 代码检测结果2.查看不符合规范的代码Table 10 查看不符合规范的代码3. RuleChecker的检测报告参见” RuleChecker Report”文件夹下的SanJiaoXingRuleCheckerrule.html2.4.3TestChecker项目由于项目名称为中文,配置TestChecker项目的时候,出现乱码,该测试未完成.2.5黑盒测试2.5.1功能测试测试目标➢测试三角形测试.exe测试范围➢测试输入值是否满足条件➢测试输出结果是否满足设说明开始标准➢白盒测试完成完成标准➢所有功能都能按照设计文档的要求➢测试报告提交给程序开发人员修改,并作进一步测试测试重点和优先级➢输入的参数是否正确➢输出的结果是否符合设计文档预期结果2.5.2测试方法测试目标➢测试”三角形测试”程序是否能够正常运行并符合预期结果测试范围➢软件执行的整个过程测试方法➢等价划分➢边界值分析开始标准➢有详细设计,软件编码已完成完成标准➢所有设计的用例都测试通过2.5.3等价划分根据用例描述,输入的三条边的取值范围为[1,100]Table 11 三角形测试录制的基本过程Table 12 添加一个标准检查点Table 13 参数化A,B.C和输出结果Table 14 由QTP生成的测试报告2.6.2 录制脚本二: SanJiaoXingQTPTest2录制了一段脚本,保存在” SanJiaoXingQTPTest2”文件夹下e)录制一个基本过程,弹出的小窗口中的警告信息上添加一个标准检查点f)参数化边A,B,C和标准检查点的值,分别存在在全局表sideA,sideB,sideC,Result中.g)回放录制过程h)分析生成的测试报告Table 15三角形测试录制的基本过程Table 16 添加一个标准检查点Table 17参数化A,B.C和输出结果Table 18由QTP生成的测试报告最后一个Row14未通过,是由于Row13测试完后,没有数据输入了,所以该测试是通过的.。
软件测试边界测试实验报告
软件测试边界测试实验报告一、实验目的通过本次实验使学生熟悉黑盒测试的边界值测试方法,并初步具备针对功能的测试用例设计。
二、实验环境硬件环境:微型计算机。
软件环境:Windows 操作系统,Microsoft Visual Studio 2005等。
三、实验内容题目一:三角形问题输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。
要求输入三个整数a、b、c,必须满足以下条件:1≤a≤200;1≤b≤200;1≤c≤200。
题目二:找零钱最佳组合问题假设商店货品价格(R)皆不大于100 元(且为整数),若顾客付款在100 元内 (P) ,求找给顾客最少货币个(张)数?(货币面值50 元10 元,5 元,1 元四种)1.请用针对输入域的边界值分析法对三角形问题设计测试用例,并将这次测试和三角形问题的第一次测试做一下比较分析。
2. 请用针对输出域的边界值分析法对找零钱最佳组合问题设计测试用例,并将这次测试和找零钱最佳组合问题的第一次测试做一下比较分析。
四、实验步骤1. 针对输入域用边界值分析法对三角形问题设计测试用例用边界值分析法设计测试用例,按照下列步骤进行:(1)分析各变量取值(2)测试用例数(3)设计测试用例边界值测试方法设计测试用例(4)执行测试用例,记录测试结果,报告发现的问题(5)将这次测试和三角形问题的第一次测试做一下比较分析。
2. 针对输出域用边界值分析法对找零钱最佳组合问题设计测试用例(1)分析各变量取值(2)测试用例数(3)设计测试用例边界值测试方法设计测试用例(4)执行测试用例,记录测试结果,报告发现的问题(5)将这次测试和找零钱问题的第一次测试做一下比较分析。
五、实验心得通过本次实验我懂得了黑盒测试的基本方法,深刻理解了边界值测试的具体步骤与做法。
软件测试--三角形
黑盒测试实验(一)等价类划分小组成员:88888 组长:888888日期:2012.3.21 成绩:实验目的:通过简单程序黑盒测试,熟悉测试过程,对软件测试进一步了解,能够用黑盒测试技术设计测试用例。
实验内容1.主要程序代码package addypp;import java.util.*;class Hu{ int a;int b;int c;void judge(){Scanner in = new Scanner(System.in);System.out.println("请输入三角形的三边a,b,c。
");a = in.nextInt();b = in.nextInt();c = in.nextInt();if(a<0||a>100||b<0||b>100||c<0||c>100)System.out.println("不满足条件");else if((a+b)<=c||(b+c)<=a||(a+c)<=b)System.out.println("不是三角形");else if(a==b&&b==c&&c==a)System.out.println("三角形是等边三角形");else if(a==b||b==c||c==a)System.out.println("三角形是等腰三角形");elseSystem.out.println("三角形是一般三角形");}}2.等价类划分方法设计的测试用例(等价类表,和测试用例表,要有预期结果和实际结果)等价类表:输入条件 有效等价类 无效等价类一般三角形 a>0 and b>0 and c>0and 【(a+b)>c 或者(a+c)>b 或者(b+c)>a 】(1)a<0或者b<0或者c<0或者a>100或者b>100或者c>100(2)(a+b)<=c 或者 ((a+c)<=b)或者 ((b+c)<=a) (3) 等腰三角形 (a=b)或者(b=c)或者(c=a)(4) a!=b!=c (5) 等边三角形a=b=c (6)a!=b!=c (5)测试用例表:序号 输入数据(a 、b 、c ) 覆盖测试用例 预期结果实际结果1 3、4、5 (1) 三角形是一般三角形 三角形是一般三角形 2 -1、4、5 (2) 不满足条件 不满足条件 3 101、4、5 (2) 不满足条件 不满足条件 4 1、4、5 (3) 不是三角形 不是三角形 5 3、3、5 (4) 三角形是等腰三角形 三角形是等腰三角形 6 2、5、9 (3)(5) 不是三角形 不是三角形 75、5、5(6)三角形是等边三角形三角形是等边三角形3.结果分析程序运行正确。
软件测试与质量保证作业1三角形问题案例
软件测试与质量保证作业一、测试问题描述输入三个整数a b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。
要求输入三个整数a、b、c,必须满足以下条件: 1 < a药0 ; 1 < b < 200 ; 1 < c < 200。
用边界值分析法设计测试用例。
用黑盒测试方法设计测试用例。
二、设计测试用例1. 用边界值测试方法设计测试用例用边界值分析法设计测试用例,按照下列步骤进行:(1)分析各变量取值边界值分析的基本思想是使用输入变量的最小值、略高于最小值、正常值、略低于最大值和最大值设计测试用例。
因此a, b , c的边界取值是:1, 2, 100 , 199 , 200。
(2)测试用例数有n个变量的程序,其边界值分析会产生4n+1个测试用例。
这里有3个变量,因此会产生13个测试用例。
(3)设计测试用例用边界值分析法设计测试用例就是使一个变量取边界值(分别取最小值、略高于最小值、正常值、略低于最大值和最大值),其余变量取正常值,然后对每个变量重复进行。
本例用边界值分析法设计的测试用例见表1-1 O2. 用等价类测试方法设计测试用例(1) 首先分析题目中给出的条件和隐含的输入要求,输入条件如下:a) 正整数;b) 三个数;c) 构成一般三角形;d) 构成等腰三角形;e) 构成等边三角形;f) 不能构成三角形(2) 根据输入条件的要求划分等价类,列出等价类表并编号,如表1-2 所示。
表1-2三角形问题的等价类注:划分等价类的方式并不唯一,可根据被测对象的具体情况划分等价类。
(3) 设计测试用例,覆盖上表中的等价类,如表1-3表所示3•用基于判定表的测试方法设计测试用例(1) 列出所有的条件桩和动作桩条件桩C1: a < b + c?C2: b < a + c?C3: c < a + b?C4: a= =b?C5: a= =c?C6: b= =c?动作桩•a1:非三角形a2:不等边三角形a3:等腰三角形a4:等边三角形a5:不可能(2) 根据输入条件和输出的关系,填写各条规则,画出判定表,如表1-4所示(3) 设计测试用例,覆盖判定表中的各条规则。
三角形黑盒测试(可打印修改)
50 99 50
9
50 100 50
10 1 60 60
11 2 60 60
12 99 50 50
13 100 50 50
预期输出 等腰三角形 等腰三角形 等边三角形 等腰三角形 非三角形 等腰三角形 等腰三角形 等腰三角形 非三角形 等腰三角形 等腰三角形 等腰三角形 非三角形
实际输出 等腰三角形 等腰三角形 等边三角形 等腰三角形 非三角形 等腰三角形 等腰三角形 等腰三角形 非三角形 等腰三角形 等腰三角形 等腰三角形 非三角形
B6 :c<a+b
100011 0 1 1 1 1 1 1 1 1
B7:a=b
000000 0 1 0 0 0 1 1 0 0
B8:b=c
000000 0 0 1 0 0 1 0 1 0
B9:a=c
000000 0 0 0 1 0 1 0 0 1
10:边范围正确
100011 1 1 1 1 1 1 1 1 1
不等边三角形 非三角形 a 值不在范围内 b 值不在范围内 c 值不在范围 a,b 值不在范围内 b,c 值不在范围内 a,c 值不在范围内 a,b,c 值不在范围内
12
101
5
13
5
101
14
5
5
15
101
101
16
5
101
17
101
5
18
101
101
5
a 值不在范围内
a 值不在范围内
5
b 值不在范围内
A2:不等边三角形 A3:等腰三角形 A4:等边三角形 A5:不可能
FFFFF FFFFF FFFFF FFFFT FFTTF FTFTF
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c
50 50 50 50 50 50 50 50 1 2 99 100 50
预期输出
等腰三角形 等腰三角形 等腰三角形 非三角形 等腰三角形 等腰三角形 等腰三角形 非三角形 等腰三角形 等腰三角形 等腰三角形 非三角形 等边三角形
健壮性边界值测试用例 测试用例
Test1 Test2 Test3 Test4 Test5 Test6 Test7 Test8 Test9 Test10 Test11 Test12 Test13 Test14 Test15 Test16
∨
5
∧
ቤተ መጻሕፍቲ ባይዱ
E3
∽
6
∧
E4
结果
C8: C9:
b=c a=c
根据因果图得到的决策表以及测试用例
规则(缺省项均为 1) c1 0 c2 c3 c4 c5 c6 c7 c8 c9 输入无 √ 效 非三角 形 普通三 角形 等腰三 角形 等边三 角形 0 0 0 0 0 0 0 0 √ √ √ √ √ √ √ √ √ √ √ √ √ 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
Test17 Test18 Test19
50 50 50
50 50 50
100 101 50
非三角形 无效输入 等边三角形
等价类分析法
输入条件 是否三角形的三条边 有效等价类 (0<a<101) (0<a<101) (0<a<101) (a+b>c) (b+c>a) (c+a>b) (a=b) (b=c) (a=c) 无效等价类 (a<=0||a>100) (b<=0||b>100) (c<=0||c>100) (a+b<=c) (b+c<=a) (c+a<=b)
条件
动作
决策表测试用例
规则(缺省项均为 1) c1 c2 c3 c4 0 0 0 0
条件
动作
c5 c6 c7 c8 c9 输入无 √ 效 非三角 形 普通三 角形 等腰三 角形 等边三 角形
0 0 0 0 0 √ √ √ √ √ √ √ √ √ √ √ √ √ 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
(1) (2) (3) (4) (5) (6)
(7) (8) (9) (10) (11) (12) (16)
是否等腰三角形
(13) (14) (15) (17)
(a≠b && b≠c && a≠c)
是否等边三角形
(a=b && b=c && a=c)
(a≠b) (b≠c) (a≠c)
(18) (19) (20) 输出 一般三角形 非三角形
用例 Test1 Test2 Test3 Test4 Test5 Test6 Test7 Test8 Test9 Test10 Test11 Test12 Test13 Test14 Test15
(a,b,c) (3,4,5) (0,1,2) (2,0,1) (1,2,0) (1,2,3) (3,1,2) (1,3,2) (3,3,4) (4,3,3) (3,4,3) (3,4,5) (3,3,3) (3,4,3) (3,4,3) (3,4,3)
覆盖等价类 (1),(2),(3),(4),(5),(6) (7) (8) (9) (10) (11) (12) (1),(2),(3),(4),(5),(6),(13) (1),(2),(3),(4),(5),(6),(14) (1),(2),(3),(4),(5),(6),(15) (1),(2),(3),(4),(5),(6),(16) (1),(2),(3),(4),(5),(6),(17) (1),(2),(3),(4),(5),(6),(18) (1),(2),(3),(4),(5),(6),(19) (1),(2),(3),(4),(5),(6),(20)
等腰三角形 等腰三角形 等腰三角形 非等腰三角形 等边三角形 非等边三角形 非等边三角形 非等边三角形
因果图
C1 C2 C3 C4 C5 C6 2
∧
∧
1
∽
E1
E5
3 4
∧
∧
E2
C7 C8 C9
∽ ∽
原因 C1: C2: C3: C4: C5: C6: C7: 0<a<100 0<b<100 0<c<100 a+b>c b+c>a a+c>b a=b E1: E2: E3: E4: E5: 输入无效 等边三角形 等腰三角形 普通三角形 非三角形
边界值分析法
测试用例
Test1 Test2 Test3 Test4 Test5 Test6 Test7 Test8 Test9 Test10 Test11 Test12 Test13
A
1 2 99 100 50 50 50 50 50 50 50 50 50
B
50 50 50 50 1 2 99 100 50 50 50 50 50
A
0 1 2 99 100 101 50 50 50 50 50 50 50 50 50 50
B
50 50 50 50 50 50 0 1 2 99 100 101 0 50 50 50
c
50 50 50 50 50 50 50 50 50 50 50 50 0 1 2 99
预期输出
无效输入 等腰三角形 等腰三角形 等腰三角形 非三角形 无效输入 无效输入 等腰三角形 等腰三角形 等腰三角形 非三角形 无效输入 无效输入 等腰三角形 等腰三角形 等腰三角形