三角形问题- 等价类法(实验报告)2011-9-27

合集下载

三角形测试实验报告

三角形测试实验报告

黑龙江大学实验报告黑龙江大学教务处测试计划(GB8567——88)1引言1.1编写目的1.掌握软件测试技术中白盒测试方法;2.掌握如何进行单元测试。

1.2背景测试程序名称:triangle(三角形形状测试)任务提出者:金虎老师开发者:用户:测试环境:WINDOWS XP ; VC++6.0说明:由于程序较小,并且只是作为了解白盒测试的小程序,因此不涉及较高的实验环境,并且测试环境和运行环境在理论上是一样的,因此不存在较大的测试差异。

1.3定义a:三角型的第一条边b:三角型的第二条边c:三角型的第三条边一般三角形:三边都不相等的三角形等腰三角形:有任意两边相等的三角形等边三角形:三边都相等的三角形不能构成三角形:因不满足需求条件而不能构成三角形1.4参考资料1.《软件测试教程》.宫云战.机械工业出版社2008年9月2.《软件测试技术》.曲朝阳.中国水利水电出版社2006年8月3.《软件测试教程》.贺平.电子工业出版社2005年6月2计划2.1软件说明2.2测试内容单元测试。

某程序规定:输入三个整数作为三边的边长构成三角形。

当此三角形为一般三角形、等腰三角形及等边三角形时,分别说明。

2.3测试(标识符)2.3.1进度安排2.3.2条件所需测试机器:机房机器,品牌为联想,基本配置为奔腾4处理器,256M内存,80M硬盘系统环境:WINDOWS XP工具环境:VC++6.0中文版参与人员2.3.3测试资料1.《软件测试教程》.宫云战.机械工业出版社2008年9月2.《软件测试技术》.曲朝阳.中国水利水电出版社2006年8月3.《软件测试教程》.贺平.电子工业出版社2005年6月2.3.4测试培训1.《软件测试教程》宫云战机械工业出版社2008年9月第三章白盒测试2.金虎老师第三张白盒测试PPT课件3测试设计说明3.1测试此项测试采用白盒测试方法来测试该功能。

3.1.1控制环形复杂度为:6基本路径集如下:路径一:1-2-9-8路径二:1-2-3-10-8路径三:1-2-3-4-11-8路径四:1-2-3-4-5-12-8 路径五:1-2-3-4-5-6-13-8 路径六:1-2-3-4-5-6-7-83.1.2输入测试用例如下:3.1.3输出3.1.4过程由于这个程序比较简单,因此没有比较繁琐的步骤以及控制命令。

黑盒测试等价类划分法

黑盒测试等价类划分法

实验1、黑盒测试:等价类划分法
一、实验目的
1、掌握等价类的概念。

2、掌握等价类划分法的测试用例设计方法。

二、实验内容
对三角问题使用等价类划分的方法来设计测试用例,并执行测试,然后撰写实验报告。

三角形问题:规定输入三个整数a、b、c分别作为三边的边长构成三角形。

通过程序判定所构成的三角形的类型(等边三角形、等腰三角形、一般三角形、构不成三角形),并在屏幕上输出0<a,b,c<200输入数据时进行有效性检验。

用C或Java或其它语言写出源程序。

三、实验步骤:
①划分等价类,得到等价类表。

等价类表格式如下:
②运用弱健壮等价类测试用例设计法设计测试用例,得到测试用例表。


③执行测试,填写软件缺陷报告。

简单软件缺陷报告格式如下:。

黑盒测试——等价类法——三角形问题

黑盒测试——等价类法——三角形问题

例:输入三个整数a,b,c ,分别作为三角形的3条边(假定a,b,c在1——100之间取值。

),通过程序判断由这三条边构成的三角形是:等边三角形、等腰三角形、一般三角形或非三角形(不能构成三角形)。

问题分析:
假定a,b,c在1——100之间取值,三角形问题可以详细描述为:
输入3个整数a,b,c,分别作为三角形的三条边,要求a,b,c必须满足下列条件:
C1:a在1到100之间
C2:b在1到100之间
C3:c在1到100之间
C4:a<b+c
C5:b<a+c
C6:c<b+a
输出:
如果不满足前3个条件(C1-C3),则输出“请输入1到100之间的整数”;
如果满足前3个条件,则输出下面4种情况:
(1)如果不满足条件C4-C6中的一个,则输出“非三角形”
(2)如果三条边相等,则程序输出为“等边三角形”
(3)如果恰好有两条边相等,则输出为“等腰三角形”
(4)如果三条边都不相等,则输出为“一般三角形”
设计覆盖上述等价类的测试用例:。

软件测试-三角形问题

软件测试-三角形问题

9
10
11
12
13
14
15
16
T T T T
T T T F
T T F T
T T F F
T F T T
T F T F
T F F T
T F F F

√ √ √ √
制作者:
Page 18
决策表法
根据决策表4-13,可设计测试用例,如表4-14所示。
表4-14 三角形问题的决策表测试用例 测试用例 Test Case 1 Test Case 2 Test Case 3 Test Case 4 Test Case 5 Test Case 6 Test Case 7 Test Case 8 Test Case 9 a 10 4 ? ? 4 ? 5 4 3 b 4 4 ? ? 4 ? 4 5 4 c 4 4 ? ? 5 ? 4 4 5
三个数
1
整数
2
取值范围 在1~100
3
三个数 整数 1≤a≤100 1≤b≤100 1≤c≤100 4,5,6
12
13 14 15 16 17 18
Page 5
三边为00,0,0
一边小于0-1,7,8 两边小于0-9,-,1,6 三边小于0-1,-2,-8 一边大于100101,56,50 两边大于100101,107,89 三边大于100101,109,176
制作者:
表4-2 三角形问题的测试用例
等价类划分法——以输出域划分等价类
以三角形问题为例,要求输入三个整数a、b、c,分 别作为三角形的三条边,取值范围在1~100之间, 判断由三条边构成的三角形类型为等边三角形、等 腰三角形、一般三角形(包括直角三角形)以及非 三角形。 在多数情况下,是从输入域划分等价类,但对于三 角形问题,从输出域来定义等价类是最简单的划分 方法。

等价类划分法

等价类划分法



设计测试用例的着眼点

根据产品规格,测试基本功能; 考虑设计一般用户(非专业人员)的使用方案; 考虑设计稀有或特殊的使用方案; 与系统其他组成部分的配合(如 FAX 和上网可能要用到 MODEM,测试中考虑对设备的共享); 考虑特殊情况(如内存和硬件的冲突等); 设计极端情况(如内存泄漏、破坏性测试等); 好的测试用例集能花费最小的代价(人力、物力、财力、 时间)做最好的测试。
设计测试用例的基本准则

测试用例的代表性 能够代表并覆盖各种合理的和不合理的、合法的和非 法的、边界的和越界的以及极限的输入数据、操作和环 境设置等。 测试结果的可判定性 即测试执行结果的正确性是可判定的,每一个测试用 例都应有相应的期望结果。 测试结果的可再现性 即对同样的测试用例,系统的执行结果应当是相同的。
例:程序输入x取值于一个固定的枚举类型{1,3,7,15},且程序 中对这4个数值分别进行了处理,则有效等价类为x=1、x=3、 x=7、x=15,无效等价类为x≠1,3,7,15的值的集合。
等价类的划分
(3)按照数值集合划分 在输入条件规定了输入值的集合或 规定了“必须如何”的条件下,可以确定一个有效等价类和 一个无效等价类(该集合有效值之外)。 例:程序输入条件为取值为奇数的整数 x,则有效等价类为x (4)按照限制条件或规则划分 在规定了输入数据必须遵 的值为奇数的整数,无效等价类为 x的值不为奇数的整数。 守的规则或限制条件的情况下,可确定一个有效等价类(符 合规则)和若干个无效等价类(从不同角度违反规则)。 例:程序输入条件为以字符‘a’开头、长度为8的字符串,并且 (5)细分等价类 在确知已划分的等价类中各元素在程序中 字符串不包含‘a’~ ‘z’之外的其它字符,则有效等价类为满 的处理方式不同的情况下,则应再将该等价类进一步划分为 足了上述所有条件的字符串,无效等价类为不以‘a’开头的字 更小的等价类,并建立等价类表。 符串、长度不为8的字符串和包含了‘a’~ ‘z’之外其它字符的 字符串。

三角形黑盒测试技术实验报告

三角形黑盒测试技术实验报告

黑盒测试技术—三角形问题实验报告一、问题描述输入三个整数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表所示。

三角形问题的等价类测试用例

三角形问题的等价类测试用例

三角形问题的等价类测试用例三角形问题的等价类测试用例四种可能出现的输出:非三角形、不等边三角形、等腰三角形和等边三角形可以使用这些输出标识如下所示的输出(值域)等价类: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不构成三角形}四个弱一般等价类测试用例是:测试用例 a b c 预期输出WN1 5 5 5 等边三角形WN2 2 2 3 等腰三角形WN3 3 4 5 不等边三角形WN4 4 1 2 非三角形由于变量a、b和c没有有效区间,则强一般等价类测试用例与弱一般等价类测试用例相同.考虑a、b和c的无效值产生的以下额外弱健壮等价类测试用例:测试用例 a b c 预期输出WR1 -1 5 5 a取值不在所允许的取值值域内WR2 5 -1 5 b取值不在所允许的取值值域内WR3 5 5 —1 c取值不在所允许的取值值域内WR4 201 5 5 a取值不在所允许的取值值域内WR5 5 201 5 b取值不在所允许的取值值域内WR6 5 5 201 c取值不在所允许的取值值域内以下是额外强健壮性等价类测试用例三维立方的一个“角”:测试用例 a b c 预期输出SR1 —1 5 5 a取值不在所允许的取值值域内SR2 5 -1 5 b取值不在所允许的取值值域内SR3 5 5 —1 c取值不在所允许的取值值域内SR4 —1 —1 5 a、b取值不在所允许的取值值域内SR5 5 —1 -1 b、c取值不在所允许的取值值域内SR6 —1 5 —1 a、c取值不在所允许的取值值域内SR7 -1 —1 —1 a、b、c取值不在所允许的取值值域内。

三角形测试用例

三角形测试用例

三角形测试用例题目:输入三个数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#include<stdio.h>void 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、两数之和大于第三数,如A<B+C;B<C+A;C<A+B2、两数之和不大于第三数3、两数相等,如A=B或B=C或C=A4、三数相等,如A=B=C5、三数不相等,如A!=B,B!=C,C!=A无效等价类:1、空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)#include <stdio.h>void main(){int a,b,c;printf("Please Input a,b,c:");scanf("%d",&a);scanf("%d",&b);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](1)(2)(3)(4)(5)(6)(16)(20)(22)(23)(24) 是三角形15 [3,3,3] (1)(2)(3)(4)(5)(6)(16)(21) 等边三角形16 [,,,] 无效等价类错误提示17 [-3,4,5] 无效等价类错误提示18 [a,3,@] 无效等价类错误提示19 [3,4] 无效等价类错误提示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、实验环境
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++编程并不难,因为以前都做过,主要是测试。

首先
要通过题目所给的条件为依据,在C++环境下编程,再分析每项功能的输入的取值范围,对所有可能的输入值进行分类,列出等价类表和测试用列表。

相关文档
最新文档