三角形等价类测试(要求1)
软件测试 等价类、决策表测试

实验三黑盒实验2一、实验目的通过本次实验使学生熟悉黑盒测试的等价类、决策表测试方法。
二、实验环境硬件环境:微型计算机。
软件环境:Windows 操作系统,Microsoft Visual Studio 2005等。
三、实验内容题目一:三角形问题输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。
要求输入三个整数a、b、c,必须满足以下条件:1≤a≤200;1≤b≤200;1≤c≤200。
请用等价类划分法对三角形问题设计测试用例进行测试,并做出测试分析。
题目二:日期问题用决策表测试法测试一下程序:该程序有三个输入变量month、day、year(month 、 day 和year均为整数值,并且满足:1≤month≤12和1≤day≤31以及1800≤year≤2050),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。
例如,输入为 2004 年11月29日,则该程序的输出为2004年12月1日。
四、实验步骤1.三角形问题(1)首先分析题目中给出的条件和隐含的输入要求,输入条件如下:(2)根据输入条件的要求划分等价类,列出等价类表并编号。
(3)设计测试用例,覆盖上表中的等价类(4)分析测试结果测试用例很不错,测试用例覆盖了所有的有效等价类,且仅覆盖一个无效等价类。
2. 日期问题(1) 分析各种输入情况,列出为输入变量 month 、 day 、 year 划分的有效等价类。
(2) 分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的可能采取的操作(即列出所有的动作桩)。
条件桩:R1:月份为{M1,M2,M3,M4}之中的一个R2:日期为{D1,D2,D3,D4,D5,D6}之中的一个R3:年份为{Y1,Y2}之中的一个动作桩:Day+2;Day=2;Day=1;Month+1;Month=1;year+1;日期不存在。
三角形测试(测试用例)

三⾓形测试(测试⽤例)三⾓形测试⽤例题⽬:输⼊三个数a、b、c分别作为三边的边长构成三⾓形。
通过程序判定所构成的三⾓形是⼀般三⾓形、等腰三⾓形还是等边三⾓形时。
⽤等价类划分⽅法为该程序设计测试⽤例。
在三⾓形计算中,要求三⾓形的三个边长:A B C。
1、当三边不可能构成三⾓形时提⽰错误,可构成三⾓形时计算三⾓形周长。
2、若是等腰三⾓形打印“等腰三⾓形”,若两个等腰的平⽅和等于第三边平⽅和,则打印“等腰直⾓三⾓形”。
3、若是等边三⾓形,则打印:“等边三⾓形”。
4、画出程序流程图并设计⼀个测试⽤例。
分析⼀下:1、构成三⾓形的条件:任意两边之和⼤于第三边;2、构成等腰三⾓形的条件:任意两边相等;3、构成等腰直⾓三⾓形的条件:任意两边相等,⽽且两条边的平⽅和等于第三边的平⽅和;4、构成等边三⾓形的条件:三条边都相等。
那么⽤什么样的设计⽅法进⾏测试⽤例的设计呢?⼀、等价类划分:三⾓形三条边A、B、C的数据类型不同⼆、边界值分析:由于三⾓形的边长可以是正整数或正⼩数,所以就不对长度进⾏测试,那么边界值分析就不⽤了三、因果图法:三⾓形的三条边数据输⼊组合我们看⼀下三⾓形的流程图:注:改正⼀个⼩错误,在判断是否是等腰直⾓三⾓形中 A的平⽅=B的平⽅+C的平⽅。
由于画图时,⽹络速度问题,导致真或假的值没有标注。
三⾓形等价类列表判定类型有效等价类⽆效等价类⼀般三⾓形 ((a>0) Λ(b>0) Λ(c>0))Λ(a<=0 V b<=0 V c<=0) Λ(((a+b)>c) V ((a+c)>b) V ((b+c)>a)) (1) (((a+b)<=c) V ((a+c)<=b) V ((b+c)<=a)) (2)等腰三⾓形 (1) Λ (a=b V a=c V b=c)(3)(2) V (a!=b Λ b!=c Λ a!=c) (4)等边三⾓形 (1) Λ (a=b=c ) (5) (2) V (a!=b!=c)(6)根据上表组成的测试⽤例:三⾓形等价类测试⽤例ID 输⼊数据覆盖测试⽤例输出结果a b c1 3 4 5 (1) ⼀般三⾓形2 0 4 5 (2) ⾮(⼀般)三⾓形3 3 0 5 (2)4 3 4 0 (2)5 1 4 5 (2)6 3 8 5 (2)7 3 2 1 (2)8 3 3 5 (3) 等腰三⾓形9 3 4 310 3 4 4#includevoid main (){float a, b, c;printf("请输⼊三⾓形三边");scanf("%f,%f,%f",&a,&b,&c);if (a==b||b==c||a==c)printf("等腰三⾓形");if (a==b&&b==c)printf("等边三⾓形");if (a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a) printf("直⾓三⾓形"); elseprintf("普通三⾓形");}11 3 4 9 (4) ⾮等腰三⾓形12 3 3 3 (5) 等边三⾓形13 -1 0 1 (6) ⾮等边三⾓形我们再分析⼀下三⾓形的等价类:有效等价类:输⼊3个正整数或正⼩数:1、两数之和⼤于第三数,如A2、两数之和不⼤于第三数3、两数相等,如A=B或B=C或C=A4、三数相等,如A=B=C5、三数不相等,如A!=B,B!=C,C!=A1、空2、负整数3、⾮数字4、少于三个数三⾓形测试⽤例类别输⼊条件有效等价类⽆效等价类是否是三⾓形 (A>0) (1)(B>0) (2)(C>0) (3)(A+B>C) (4)(B+C>A) (5)(C+A>B) (6)(A<=0) (7)(B<=0) (8)(C<=0) (9)(A+B<=C) (10)(B+C<=A) (11)(C+A<=B) (12)是否是等腰三⾓形 (A=B) (13)(B=C) (14)(C=A) (15)(A!=B)and(B!=C)and(C!=A) (16)是否是等腰直⾓三⾓形 (A=B)and(A2+B2=C2) (17)(B=C)and(B2+C2=A2) (18)(C=A)and(C2+A2=B2) (19)(A!=B)and(B!=C)and(C!=A) (20)是否是等边三⾓形(A=B)and(B=C)and(C=A) (21)(A!=B) (22) (B!=C) (23)(C!=A) (24)#includevoid main(){int a,b,c;printf("Please Input a,b,c:");scanf("%d",&a);scanf("%d",&c);if(a+b<=c||a+c<=b||b+c<=a) /*判断是否能构成三⾓形*/ printf("No!\n"); else{printf("Yes!\n");if(a==c||a==b||b==c) /*判断是否为等腰三⾓形*/{printf("It can be an isoceles triangle!\n");if(a==c && a==b) /*判断是否为等边三⾓形*/printf("It also can be an equilateral triangle!\n"); elseprintf("But it can not be an equilateral triangle!\n"); }else{printf("It can't be an isoceles triangle!\n");}}getch();}三⾓形测试⽤例:序号 [A,B,C] 覆盖等价类输出1 [3,4,5] (1)(2)(3)(4)(5)(6) 是三⾓形2 [0,1,2] (7) ⾮三⾓形3 [1,0,2] (8) ⾮三⾓形4 [1,2,0] (9) ⾮三⾓形5 [1,2,3] (10) ⾮三⾓形6 [1,3,2] (11) ⾮三⾓形7 [3,1,2] (12) ⾮三⾓形8 [3,3,4] (1)(2)(3)(4)(5)(6)(13) 等腰三⾓形9 [3,4,4] (1)(2)(3)(4)(5)(6)(14) 等腰三⾓形10 [3,4,3] (1)(2)(3)(4)(5)(6)(15) 等腰三⾓形11 [2√2,2√2,4] (1)(2)(3)(4)(5)(6)(17) 等腰直⾓三⾓形12 [4,2√2,2√2] (1)(2)(3)(4)(5)(6)(18) 等腰直⾓三⾓形13 [2√2,4,2√2] (1)(2)(3)(4)(5)(6)(19) 等腰直⾓三⾓形14 [3,4,5]。
三角形问题- 等价类法(实验报告)2011-9-27

一、实验环境Visual C++ 6.0软件环境二、实验原理软件测试是通过运行所开发的软件产品,识别和控制软件缺陷,以验证和确认用户需求已得到满足的过程。
三、给出三角形等价类表和测试用例表?三角形问题:输入三个整数a、b、c分别作为三角形的三条边,现通过程序判断由三条边构成的三角形的类型为等边三角形、等腰三角形、一般三角形(特殊的还有直角三角形)以及构不成三角形。
现在要求输入三个整数a、b、c,必须满足以下条件:条件1 1≤a≤100 条件4 a≤b+c条件2 1≤b≤100 条件5 b≤a+c条件3 1≤c≤100 条件6 c≤a+b解:(开发程序清单)#include <iostream.h>int i = 0;void main(void){while(i==0){int a,b,c;cout<<"请输入3个整数:"<<endl;cin>>a>>b>>c;if(!(a+b<=c||a+c<=b|| b+c<=a)&&(a>=1&&a<=100)&&(b>=1&&b<=100)&&(c>=1&&c<=100)) {if (a==b && a==c) cout<<"等边三角形"<<endl;else if (a==b || a==c || b==c) cout<<"等腰三角形"<<endl;else cout<<"一般三角形"<<endl;}else {if(a<1||a>100) cout<<"a="<<a<<"不满足条件1,不能构成三角形"<<endl;else if(b<1||b>100) cout<<"b="<<b<<"不满足条件2,不能构成三角形"<<endl;else if(c<1||c>100) cout<<"c="<<c<<"不满足条件3,不能构成三角形"<<endl;else if(a>=b+c) cout<<"不满足a<b+c,不能构成三角形"<<endl;else if(b>=a+c) cout<<"不满足b<a+c,不能构成三角形"<<endl;else if(c>=b+a) cout<<"不满足c<a+b,不能构成三角形"<<endl;}}}四、测试用例等价类表测试用例表五、测试结果六、心得体会这次实验题目是三角形问题,其实用C++编程并不难,因为以前都做过,主要是测试。
黑盒测试——精选推荐

⿊盒测试⿊盒测试⼀第⼀课1. 实验⽬的理解墨盒测试的基本⽅法,掌握等价类划分法、边界值分析等测试⽤例的设计⽅法。
2.实验内容(1) 等价类划分⽅法1) 三⾓形问题等价类划分设计测试⽤例2) NextDate问题,对它的输⼊进⾏分析,划分等价类,然后根据等价类设计测试⽤例。
(2) 边界值和因果图1)NextDate问题⽤边界值分析法设计测试⽤例分析NextDate问题中的逻辑,⽤边界值分析法的思想设计测试⽤例。
2) 有⼀个处理单价为5⾓钱的饮料的⾃动售货机软件测试⽤例的设计。
其规格说明如下:若投⼊5⾓钱或1元钱的硬币,押下[橙汁]或[啤酒]的按钮,则相应的饮料酒送出来。
若售货机没有零钱找,则⼀个显⽰[零钱找完]的红灯亮,这时再投⼊1元硬币并押下按钮后,饮料不送出来⽽且1元硬币也退出来;若有零钱找,则显⽰[零钱找完]的红灯灭,在送出饮料的同时退还5⾓硬币。
⽤因果图法对⾃动售货机设计测试⽤例。
要求:(1) 1)必做(1) 2)与(2)1)2)选做其⼀3.实验准备(1)主流PC机⼀套,要求安装windows操作系统、Virtul Studio6.0、C++Test、java等⼯具;(1)理解等价类划分法、边界值分析法的思想,划分依据;(2)熟悉上述⽅法测试⽤例设计的理论4.实验步骤(1)三⾓形问题1) if (!(a+b<=c||a+c<=b||b+c<=a)&&(a>=1&&a<=100)&&(b>=1&&b<=100)&&(c>=1&&c<=100)) {if (a==b && a==c)MessageBox("等边三⾓形");else if (a==b || a==c || b==c)MessageBox("等腰三⾓形");elseM essageBox("⼀般三⾓形");}else {if(a<1||a>100)MessageBox("a不在范围内,不满⾜条件1,不能构成三⾓形");else if(b<1||b>100)MessageBox("b不在范围内,不满⾜条件2,不能构成三⾓形"); else if(c<1||c>100)MessageBox("c不在范围内,不满⾜条件3,不能构成三⾓形"); else if(a>=b+c)MessageBox("不满⾜aelse if(b>=a+c)MessageBox("不满⾜belse if(c>=b+a)MessageBox("不满⾜c}M essageBox("判断结束!");}2) 实验的输⼊和输出样式3) 测试⽤例设计⽤等价类分析法设计测试⽤例,按照下列步骤进⾏:⑴分析题⽬中给出的条件和隐含的输⼊要求,输⼊条件如下:①正整数②三个数③构成⼀般三⾓形④构成等腰三⾓形⑤构成等边三⾓形⑥不能构成三⾓形⑵根据输⼊条件的要求划分等价类,列出等价类表并编号,如下表:⑶设计测试⽤例,覆盖上表中的等价类,如下表:注:提⽰1(输⼊不符合要求)提⽰2(请输⼊数据)(2)(2) (2) NextDate问题⽤边界值分析法设计测试⽤例1)对于NextDate问题,分析它的输⼊限制;NextDate是⼀个有三个变量(⽉份、⽇期和年)的函数。
实验一黑盒测试法——等价类划分法

实验一黑盒测试法——等价类划分法实验一黑盒测试法——等价类划分法实验目的:1.掌握等价类划分的方法2.掌握按等价类方法设计测试用例实验内容:1、请用等价类划分法为三角形问题划分等价类,并设计相应的测试用例,测试下面三角形问题程序,找出缺陷并改正,给出缺陷报告。
#include "iostream.h"void main(){int a,b,c;cout<<"请输入三角形的三条边(界于1-100之间)"<<endl;< p="">cin>>a>>b>>c;if(a<=1||a>=100)cout<<"a的值超过允许的范围!";if(b<=1||b>=100)cout<<"b的值超过允许的范围!";if(c<=1||c>=100)cout<<"c的值超过允许的范围!";if(a+b>c||a+c>b||b+c>a)cout<<"a,b,c的值不能构成三角形!";if(a==b&&b==c)cout<<"是等边三角形!";if(a==b||b==c||a==c)cout<<"是等边三角形!";if(a<>b&&b<>c&&c<>a)cout<<"一般三角形!";三角形问题:划分等价类测试用例:1、覆盖有效等价类的测试用例2、覆盖无效等价类的测试用例缺陷报告:以下部分由BUG修改人填写输入数据如图所以:以下部分由BUG修改人填写以下部分由BUG修改人填写以下部分由BUG修改人填写2、某城市电话号码由三部分组成,分别是:1)地区码:以0开头的三位或者四位数字(包括0);2)电话号码:以非0、非1开头的七位或者八位数字。
软件测试经典三角形案例

软件测试-黑盒测试例子一、等价类划分问:某程序规定:"输入三个整数 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.输入表中部分或全部元素相同。
黑盒测试——等价类划分法

实验二: 黑盒测试——等价类划分法【实验环境】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%。
佣金程序生成月份销售报告,汇总售出的枪机、枪托和枪管总数,销售商的总销售额以及佣金。
测试方法举例

等价类划分法三角形问题以三角形问题为例,输入条件是:三个数,分别作为三角形的三条边都是整数取值范围在1~100之间认真分析上述的输入条件,可以得出相关的等价类表(包括有效等价类和无效等价类),如表2-2所示。
标准等价类测试以三角形问题为例,要求输入三个整数a、b、c,分别作为三角形的三条边,取值范围在1~100之间,判断由三条边构成的三角形类型为等边三角形、等腰三角形、一般三角形(包括直角三角形)以及非三角形。
在多数情况下,是从输入域划分等价类,但对于三角形问题,从输出域来定义等价类是最简单的划分方法。
因此,利用这些信息可以确定下列值域等价类:R1={〈a,b,c〉:边为a,b,c 的等边三角形}R2={〈a,b,c〉:边为a,b,c 的等腰三角形}R3={〈a,b,c〉:边为a,b,c 的一般三角形}R4={〈a,b,c〉:边为a,b,c 不构成三角形}4个标准等价类测试用例如表2-3所示对等区间划分平方根函数要求当输入值为0或大于0时,返回输入数的平方根;当输入值小于0时,显示错误信息“平方根错误,输入值小于0”,并返回0。
考虑平方根函数的测试用例区间,可以划分出两个输入区间和两个输出区间,如表2-5所示。
划分区间为i和B边界值测试以三角形问题为例,要求输入三个整数a、b、c,分别作为三角形的三条边,取值范围在1~100之间,判断由三条边构成的三角形类型为等边三角形、等腰三角形、一般三角形(包括直角三角形)以及非三角形。
如表2-9所示给出了边界值分析测试用例决策表法条件桩:列出问题的所有条件,通常认为列出的条件的先后顺序无关紧要动作桩:列出问题规定的可能采取的操作,这些操作的排列顺序没有约束条件项:针对条件桩给出的条件列出所有可能的取值动作项:与条件项紧密相关,列出在条件项的每组取值应执行的动作以下列问题为例给出构造决策表的具体过程。
如果某产品销售好并且库存低,则增加该产品的生产;如果该产品销售好,但库存量不低,则继续生产;若该产品销售不好,但库存量低,则继续生产;若该产品销售不好,且库存量不低,则停止生产。
基于决策表的测试三角形问题

基于决策表的测试三角形问题基于决策表的测试(三角形问题)2010-06-25 01:49决策表,也叫判定表。
在所有的功能性测试方法中,基于决策表的测试方法被认为是最严格的,因为决策表具有逻辑严格性。
人们使用两种密切关联的方法:因果图法和决策表格法。
与决策表相比,这两种方法使用起来更麻烦,并且全冗余。
决策表是分析和表达多逻辑条件下执行不同操作的情况的工具。
在程序设计发展的初期,决策表就已被用作编写程序的辅助工具了。
它可以把复杂的逻辑关系和多种条件组合的情况表达得比较明确。
1、决策表的组成决策表通常由4个部分组成,如下图:●条件桩(condition stub):列出了问题的所有条件。
通常认为列出的条件的次序无关紧要。
●动作桩(action stub):列出了问题规定可能采取的操作。
这些操作的排列顺序没有约束。
●条件项(condition entry):列出针对它所列条件的取值,在所有可能情况下的真假值。
●动作项(action entry):列出在条件项的各种取值情况下应该采取的动作。
●规则:任何一个条件组合的特定取值及其相应要执行的操作。
在决策表中贯穿条件项和动作项的一列就是一条规则。
显然,决策表中列出多少组条件取值,也就有多少规则,条件项和动作项就有多少列。
2、决策表建立决策表的建立应该根据软件规格说明,步骤如下:①确定规则的个数。
假如有n个条件,每个条件有两个取值(0,1),故有2n种规则。
②列出所有的条件桩和动作桩。
③输入条件项。
④填入动作项。
制定初始决策表。
⑤简化。
合并相似规则或者相同动作。
Beizer(《Software Testing Techniques》的作者)指出了适合使用决策表设计测试用例的条件:①规格说明以决策表的形式给出,或很容易转换成决策表。
②条件的排列顺序不影响执行哪些操作。
③规则的排列顺序不影响执行哪些操作。
④当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。
三角形问题的三种测试方式-----边界值测试,等价类测试、决策表测试

三角形问题的三种测试方式--边界值测试,等价类测试、决策表测试一.方法简介1. 定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。
通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
2. 与等价划分的区别1) 边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。
2) 边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。
3. 边界值分析方法的考虑:长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。
因此针对各种边界情况设计测试用例,可以查出更多的错误。
使用边界值分析方法设计测试用例,首先应确定边界情况。
通常输入和输出等价类的边界,就是应着重测试的边界情况。
应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
4. 常见的边界值1) 对16-bit 的整数而言32767 和-32768 是边界2) 屏幕上光标在最左上、最右下位置3) 报表的第一行和最后一行4) 数组元素的第一个和最后一个5) 循环的第0 次、第1 次和倒数第2 次、最后一次5. 边界值分析1) 边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例。
例:测试计算平方根的函数--输入:实数--输出:实数--规格说明:当输入一个0或比0大的数的时候,返回其正平方根;当输入一个小于0的数时,显示错误信息"平方根非法-输入值小于0"并返回0;库函数Print-Line可以用来输出错误信息。
2) 如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。
比如,一个输入文件应包括1~255个记录,则测试用例可取1和255,还应取0及256等。
三角形 软件测试

目录1、三角形单元测试 (2)1.1、题目要求: (2)1.2、源代码程序: (2)1.3、程序运行结果: (4)1.4、测试脚本结果: (5)1.5、代码覆盖率: (6)2、功能性测试 (6)2.1、实验目的: (6)2.2、实验内容: (6)2.3、实验步骤 (7)3、白盒测试 (9)4、课程设计与心得体会 (12)参考文献 (12)1、三角形单元测试1.1、题目要求:使用c#语言编写程序,实现下面功能:输入三个数,判断能否构成三角形,如果能构成三角形,判断其为等边三角形、等腰三角形或不等边三角形。
三角形的判定方法有返回值,并对该方法进行测试。
1.2、源代码程序:using Sy stem;using System.Collections.Generic;using System.Linq;using System.Text;namespace TriangleTest{class Triangle{int a,b,c;public Triangle(int a0,int b0,int c0){this.a = a0;this.b = b0;this.c = c0;}public bool IsTriangle(){if ((a + b) > c && (a + c) > b && (b + c) > a)return true;elsereturn false;}public bool IsTwoEqualTriangle(){if (IsTriangle()){if (a == b || a == c || b == c)return true;elsereturn false;}else{Console.WriteLine("It is not a triangle!");return false;}}public bool IsThreeEqualTriangle(){if (IsTriangle()){if (a == b && a == c)return true;elsereturn false;}else{Console.WriteLine("It is not a triangle!");return false;}}static void Main(string[] args){int a=0, b=0, c=0;Console.WriteLine("Please input three edges:\n");a =Convert.ToInt32(Console.ReadLine());b = Convert.ToInt32(Console.ReadLine());c = Convert.ToInt32(Console.ReadLine());Triangle tri = new Triangle(a,b,c);if (tri.IsThreeEqualTriangle())Console.WriteLine("It is a threeequal triangle!");else{if (tri.IsTwoEqualTriangle())Console.WriteLine("It is a twoequal triangle!"); elseif(tri.IsTriangle())Console.WriteLine("It is a triangle!");elseConsole.WriteLine("It is not a triangle!"); }Console.ReadLine();}}}1.3、程序运行结果:1.判断是否为三角形:2.判断是否为等腰三角形:3.判断是否为等边三角形:1.4、测试脚本结果:1.三角形测试:2.等边三角形测试:1.5、代码覆盖率:2、功能性测试2.1、实验目的:1、掌握应用功能性测试技术进行测试用例设计。
软件测试-三角形问题

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
一个等价类划分的例子三角形

范例:程序规定;输入三个整数作为三边的边长构成三角形。当此三角形为一般三角形、等腰三角形、等边三角形时,分别作计算。用等价类划分方法为该程序进行测试用例设计。
解:设a、b、c代表三角形的三条边。
1)分析题目中给出的和隐含的对输入条件的要求:
a) 整数
b) 3个两边之和大于第三边
f) 等腰
g) 等边
2)列出等价类表并编号
3)列出覆盖上述等价类的测试用例,如下表:
等价类划分三角形问题

等价类划分三角形问题
例:回顾三角形问题。
分析问题中给出和隐含的对输入条件的要求:
(1)整数(2)三个数(3)非零数(4)正数5)两边之和大于第三边(6)等腰(7)等边
如果a 、b 、c 满足条件(1 )~ ( 4 ),则输出下列四种情况之一:
1.如果不满足条件(5),则程序输出为“ 非三角形” 。
2.如果三条边相等即满足条件(7),则程序输出为“ 等边三角形” 。
3.如果只有两条边相等、即满足条件(6),则程序输出为“ 等腰三角形” 。
4.如果三条边都不相等,则程序输出为“ 一般三角形” 。
(1)划分等价类并编号,如下表示:
(2)为合理等价类设计测试用例:
(3)为每一个无效等价类至少设计一个测试用例。
等价类划分法实例

1.某程序规定:"输入三个整数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 45 (1)--(7),(8)4 5 5 (1)--(7),(9)5 4 5 (1)--(7),(10)4 4 4 (1)--(7),(11)覆盖无效等价类的测试用例:2.设有一个档案管理系统,要求用户输入以年月表示的日期。
假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。
现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。
(不考虑2月的问题)1)划分等价类并编号,下表等价类划分的结果输入等价类有效等价类无效等价类日期的类型及长度①6位数字字符②有非数字字符③少于6位数字字符④多于6位数字字符年份范围⑤在1990~2049之间⑥小于1990⑦大于2049⑨等于00月份范围⑧在01~12之间⑩大于122)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为①、⑤、⑧,设计的测试用例如下:测试数据期望结果覆盖的有效等价类200211 输入有效①、⑤、⑧3)为每一个无效等价类设计一个测试用例,设计结果如下:测试数据期望结果覆盖的无效等价类95June 无效输入②20036 无效输入③2001006 无效输入④198912 无效输入⑥200401 无效输入⑦200100 无效输入⑨200113 无效输入⑩3.NextDate 函数包含三个变量:month 、day 和year ,函数的输出为输入日期后一天的日期。
三角形测试用例设计

三角形测试用例设计作者:ღ王正也ღ某程序规定:"输入三个整数a、b、c分别作为三边的边长构成三角形。
通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算… "。
用等价类划分方法为该程序进行测试用例设计。
之前面试了几个地方都问了这个题,网上找了下答案。
不懂测试理论,也不知道啥叫等级类,也不知道哪个答案更准确。
不知道为什么所有答案给出的用例里没有测试边界值,极大的值,负数,小数等等答案1:/godmap/blog/item/12ed690f14cc9c2b6059f3bc. html三角形等价类列表判定类型有效等价类无效等价类一般三角形((a>0) Λ(b>0) Λ(c>0)) Λ (a<=0 V b<=0 V c<=0) Λ(((a+b)>c) V ((a+c)>b) V ((b+c)>a)) (1) (((a+b)<=c) V ((a+c)<=b) V ((b+c)<=a)) (2)等腰三角形(1) Λ (a=b V a=c V b=c) (3) (2) V (a!=b V b!=c V a!=c) (4)等边三角形(1) Λ (a=b=c ) (5) (2) V (a!=b!=c) (6)根据上表组成的测试用例:三角形等价类测试用例ID 输入数据覆盖测试用例输出结果a b c1 3 4 5 (1) 一般三角形2 0 4 5 (2) 非(一般)三角形3 3 0 5 (2)4 3 4 0 (2)5 1 4 5 (2)6 3 8 5 (2)7 3 2 1 (2)8 3 3 5 (3) 等腰三角形9 3 4 310 3 4 411 3 4 9 (4) 非等腰三角形12 3 3 3 (5) 等边三角形13 -1 0 1 (6) 非等边三角形答案2: /?uid-275201-action-viewspace-ite mid-218955分析题目中给出和隐含的对输入条件的要求:(1)整数(2)三个数(3)非零数(4)正数(5)两边之和大于第三边(6)等腰(7)等边如果a、b 、c满足条件( 1 )~ ( 4 ),则输出下列四种情况之一:1)如果不满足条件(5),则程序输出为" 非三角形" 。
测试设计_判断三角形类型问题

判断三角形类型问题测试设计一、需求分析1、本程序用于判断三角形的类型。
2、程序的输入:三角形的三边由手工输入,再进行判断;需要注意的是,本程序只接受数值类型的输入,而且程序要求输入的范围在200以内,所以最好输入200以内的数,但是对超出200以外的数,本程序也要作特别的处理,对于要求以内的数,程序会做出正确的处理。
3、特殊要求:如果三条边能组成三角形(指范围在200以内的边),必须以绘图的方式把三角形画出来,对于其他输入也要做出相应处理4、演示从输入数据到输出类型和图形的整个过程二、概要设计根据以上的分析,可以抽象出7种三角形的类型:三条边中任意一条边超过限定值(200)或小于限定值(1)、输入的三条边无法组成三角形、等边三角形、普通等腰三角形、普通三角形、普通直角三角形和等腰直角三角形。
对于直角三角形的处理为:由于是手工输入,无法输入开根号的无限循环小数,以达到组成三角形的目的。
所以,可以规定其中任意两条边平方和与第三条边的平方之差在正负0.07之内,就已经是直角三角形了。
判断类型的过程如下:三、代码部分代码主要分为两部分:核心类(判定三角形的类型以及花三角行等等)以及界面类部分,其中界面类部分由于采用VB,其中的一些按钮之类的类是开发环境本生自带的类,是已经集成的,所以,我没有编写代码。
代码具体如下:(1)、核心类代码:1—1(2)、界面类代码:2—12—2三角形问题———需求检查表三角形弱健壮等价类测试用例及其输出:测试用例a b c预期输出WN1303030等边三角形WN2303036等腰三角形WN3304050直角三角形WN4303840普通三角形WN5342011无法组成三角形WN6303042.4264等腰直角三角形WR1-23434a取值不在允许的范围内WR234-234b不取值不在允许的范围内WR33434-2c取值不在允许的范围内WR42053434a取值不在允许的范围内WR53420534b不取值不在允许的范围内WR63434205c取值不在允许的范围内三角形边界值_健壮性测试用例及其输出:基于决策表的测试(三角形问题)三角形问题决策表决策表1:决策表2:基于决策表的用例:用例ID a b c预期输出规则条数统计ID1253060非三角形256ID2412412非三角形128ID3235020非三角形64ID4273033普通三角形1ID5304050直角三角形1ID6305040直角三角形1ID7503040直角三角形1ID8???不可能1ID9???不可能1ID10???不可能1ID11???不可能1ID12353535等边三角形1ID13???不可能1ID14???不可能1ID15???不可能1ID16???不可能1ID17???不可能1ID18???不可能1ID19???不可能1ID20???不可能1ID21???不可能1ID22???不可能1ID23???不可能1ID24???不可能1ID25303042.4264等腰直角三角形1ID26???不可能1ID27303037等腰三角形1ID28???不可能1ID29???不可能1ID30???不可能1ID31???不可能1ID32???不可能1ID33???不可能1ID343042.426430等腰直角三角形1ID35303730等腰三角形1ID36???不可能1ID37???不可能1ID38???不可能1ID39???不可能1ID4042.42463030等腰直角三角形1ID41???不可能1ID42???不可能1ID44373030等腰三角形1ID45???不可能8ID46???不可能8ID47???不可能8三角形的判定覆盖及用例:根据上述的三角形程序流程图现设计针对判定覆盖(即分支覆盖)性的一组测试用例:用例a b c预期输出第一组-10300248无效第二组15287非三角形第三组142018普通三角形第四组151510普通等腰三角形第五组262626等边三角形第六组304050普通直角三角形第七组100100141.421等腰直角三角形由上述流程图以及给出的七组用例可以看出,给出的用例已经覆盖了所有的判定的分枝。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
序号
无效等价类
一般三角形
(a+b)>c && (a+c)>b && (b+c)>a
(1)
(a+b)<=c||(a+c)<b||(b+c)<a
(2)
等腰三角形
b=c||a=c||a=b
(3)
b!=a||b!=c||a!=c
(4)
等边三角形
a=b&&b=c&&a=c
(5)
b!=a||b!=c||a!=c
(6)
其他三角形
一般三角形
三角形等价类测试用例
题目:输入三个数a、b、c分别作为三边的边长构成三角形,假设a,b,c都大于0。通过程序判定所构成的三角形是一般三角形、等腰三角形还是等边三角形,用等价类划分方法为该程序设计测试用例。
要求:
1、写出等价类
2、设计测试用例
3、写出程序
4、测试程序
5、提交实验报告
三角形等价类列表
判定类型
(6)
根据上表组成的测试用例:
三角形等价类测试用例
ID
输入数据a,b,c
覆盖等价类
预期结果
测试结果
1
3 4 5
(1)
一般三角形
一般三角形
2
1 2 7
(2)
无法构成三角形
无法构成三角形
3
4 4 5
(3)
等腰三角形
等腰三角形
4
4 7 3
(4)
其他三角形
一般三角形
5
6 6 6
(5)
等ห้องสมุดไป่ตู้三角形
等边三角形
6
4 5 7