软件测试三角形问题
软件测试作业三角形判定

实验报告
课程名称:软件测试
实验项目:判断三角形
专业班级:软件0505班
姓名:
学号:
指导教师:**
沈阳工业大学实验报告
(适用计算机程序设计类)
专业班级:软件学院学号:姓名:实验名称:
附件A 沈阳工业大学实验报告
(适用计算机程序设计类)
专业班级:软件0505 学号:姓名:实验步骤或程序:
1.设计窗口
2.设计结构
ModelMain是程序的主入口,主要实现窗口的建立,从键盘接收三个变量,调用Triangle 类的构造方法和判断方法,并打印出结果。
Judge是一个判断接口定义了3个方法
Triangle是三角形类,实现了Judge接口
3.设计接口
4.实现内部功能
5.输出结果。
软件测试与质量保证作业1三角形问题案例

软件测试与质量保证作业一、测试问题描述输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。
要求输入三个整数a、b、c,必须满足以下条件:1≤a≤200;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。
表1-1 三角形问题的测试用例2. 用等价类测试方法设计测试用例(1)首先分析题目中给出的条件和隐含的输入要求,输入条件如下:a)正整数;b)三个数;c)构成一般三角形;d)构成等腰三角形;e)构成等边三角形;f)不能构成三角形(2)根据输入条件的要求划分等价类,列出等价类表并编号,如表1-2所示。
表1-2 三角形问题的等价类注:划分等价类的方式并不唯一,可根据被测对象的具体情况划分等价类。
(3) 设计测试用例,覆盖上表中的等价类,如表1-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所示。
黑盒测试三角形

黑盒测试三角形引言黑盒测试是软件测试过程中的一种测试方法,不考虑内部实现细节,仅基于功能需求进行测试。
黑盒测试对于软件开发过程中的问题检测和缺陷修复至关重要。
本文将重点讨论黑盒测试在三角形问题上的应用。
三角形定义在开始讨论黑盒测试三角形之前,首先要了解三角形的定义。
三角形是由三条边所构成的一个多边形,其特点是任意两边之和大于第三边。
根据边长的不同,三角形可以分为等边三角形、等腰三角形、直角三角形等不同类型。
测试需求在黑盒测试三角形时,需要确保满足以下测试需求:1.检测输入边长是否合法:边长不能为负数。
2.检测输入是否构成三角形:任意两边之和大于第三边。
3.检测三角形类型的识别是否正确:等边三角形、等腰三角形、直角三角形等。
4.检测对于无法构成三角形的输入,能否正确报错。
黑盒测试方法黑盒测试方法主要基于输入和输出之间的关系,而不考虑程序的内部实现细节。
以下是一些常用的黑盒测试方法:1.等价类划分:将输入数据划分为若干个等价类,每个类别都有相同的行为和预期结果。
从每个等价类别中选择少量的数据进行测试。
2.边界值分析:在等价类划分的基础上,选择处于边界位置的数据进行测试,以测试边界条件下的程序行为。
3.错误推测:假设出错的原因并设定相应的测试用例,以检测程序在错误条件下的行为。
4.因果图:通过构建有向无环图来表示测试用例之间的因果关系,以帮助测试人员更好地理解和设计测试用例。
三角形测试用例基于黑盒测试方法,我们可以设计一些测试用例来测试三角形程序的功能。
下面是一些可能的测试用例:1.正常输入测试:输入合法的边长,期望输出对应的三角形类型。
2.边界测试:输入边长为0、1的情况,检测程序是否能正确处理边界条件。
3.类型测试:输入等边三角形、等腰三角形、直角三角形等不同类型的情况,检测程序对于不同类型的三角形的识别是否正确。
4.异常测试:输入无法构成三角形的边长,检测程序是否能正确报错。
总结黑盒测试是一种重要的测试方法,对于保证软件质量和发现问题至关重要。
软件测试实验报告_使用Parasoft C++ Test软件进行静态测试

软件测试实验报告学号:学生姓名:班级:实验6 使用Parasoft C++ Test软件进行静态测试学号********** 姓名*** 班级***** 时间2************一.实验题目在三角形问题中,要求输入三角型的三个边长:A、B 和C。
当三边不可能构成三角形时提示错误,可构成三角形时计算三角形周长。
若是等腰三角形打印“等腰三角形”,若是等边三角形,则打印“等边三角形”。
使用Parasoft C++ Test软件对三角形问题进行静态测试(代码走查)。
二.实验内容1. 安装并运行Parasoft C++ Test软件,了解其基本特点和功能。
2. 编写代码完成题目的功能要求,已有代码最好转成C++(或测试同学的代码),包含类的定义和使用。
3. 使用C++ Test软件对程序源代码进行静态测试1,生成测试报表。
静态测试1报表:4. 针对静态测试结果,对源程序进行修改,修改完成后再次进行静态测试2,根据结果检查之前的问题解决情况。
静态测试2报表:5. 实验报告:贴出静态测试1的测试报表,逐条对测试结果进行解释和分析。
然后贴出修改后的静态测试2的测试报表。
主要涉及到的问题:1.“{”、“}”占据一行;2.if、while等关键字后有空格;3.“=”、“+”等双目操作符前后各有一个空格;修改后的代码:#include "stdio.h"void Judge(int A,int B,int C);void main(){int A = 0, B = 0, C = 0;scanf("%ld %ld %ld", &A, &B, &C);Judge(A, B, C);}void Judge(int A,int B,int C){//注意:该函数内不能有scanf()语句,否则会无法测试//if (scanf("%ld %ld %ld", &A, &B, &C) != EOF){if (((A + B) > C) && ((A + C) > B) && ((B + C) > A)){printf("Girth is : %d ,", A + B + C);if ((A == B) && (A == C)){printf("Equilateral_Triangle\n");}else if ((A == B) || (B == C) || (A == C)){printf("Isosceles_Triangle\n");}else{printf("General_Triangle\n");}}else{printf("No_Triangle\n");}}}。
软件测试报告--三角形单元测试

一.题目要求:使用c#语言编写程序,实现下面功能:输入三个数,判断能否构成三角形,如果能构成三角形,判断其为等边三角形、等腰三角形或不等边三角形。
三角形的判定方法有返回值,并对该方法进行测试。
二.源代码程序:using System;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.判断是否为三角形:2.判断是否为等腰三角形:3.判断是否为等边三角形:四.测试脚本:进行三角形单元测试时,可选择总体测试,也可以一个一个测试。
软件测试实验报告3

一、三角形问题逻辑覆盖法1Scanner input=new Scanner(System.in);2double a=input.nextDouble();3double b=input.nextDouble();4double c=input.nextDouble();5boolean isTriangle=true;6if(a<1||a>200||b<1||b>200||c<1||c>200){7System.out.println("输入数据非法\n");}8else if((a+b)<=c||(a+c)<=b||(c+b)<=a){9System.out.println("非三角形\n");}10else if(a==b&&b==c&==c){11System.out.println("等边三角形\n");}12else if(a==b||b==c||a==c){13if(a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b){ 14System.out.println("等腰直角三角形\n");15}else{System.out.println("等腰三角形\n");}}16else if(a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b){ 17System.out.println("直角三角形\n");}18else System.out.println("一般三角形\n");程序结构图语句:1、2、3、4、5、7、9、11、14、15、17、18路径:共七条路径(1)1-2-3-4-5-6-7(2)1-2-3-4-5-6-8-9(3)1-2-3-4-5-6-8-10-11(4)1-2-3-4-5-6-8-10-12-13-14(5)1-2-3-4-5-6-8-10-12-13-15(6)1-2-3-4-5-6-8-10-12-16-17(7)1-2-3-4-5-6-8-10-12-16-18判定:(1)a<1||a>200||b<1||b>200||c<1||c>200 (节点6)(2)(a+b)<=c||(a+c)<=b||(c+b)<=a (节点8)(3)a==b&&b==c (节点10)(4)a==b||b==c||a==c (节点12)(5)a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b (节点13)(6)a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b (节点16)条件:(1)a<1||a>200||b<1||b>200||c<1||c>200 (1.1-1.6)(2)(a+b)<=c||(a+c)<=b||(c+b)<=a (2.1-2.3)(3)a==b&&b==c (3.1,3.2)(4)a==b||b==c||a==c (4.1,4.2,4.3)(5)a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b (5.1,5.2,5.3) (6)a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b (6.1,6.2,6.3)1、语句覆盖/路径覆盖2、判定覆盖3、条件覆盖/判定条件覆盖二、NextDate问题基路径方法1.Scanner input=new Scanner(System.in);2.int year=input.nextInt(),input.nextInt(),day=input.nextInt();3.int tomorrowday=day,tomorrowmonth=month,tomorrowyear=year;4.if(year<1900||year>2100||month<1||month>12||day<1||day>31) {5.System.out.printf("输入日期非法");System.exit(-1);}6.else if((month==4||month==6||month==9||month==11)&&(day==31)){7.System.out.printf("输入日期不存在\n");System.exit(-1);}8.else if((year%400==0||(year%100!=0&&year%4==0))&&month==2&&day>29){9.System.out.printf("输入日期不存在\n");System.exit(-1);}10.elseif((!(year%400==0||(year%100!=0&&year%4==0))&&month==2&&day>28)){11.System.out.printf("输入日期不存在\n");System.exit(-1);}12.else if((month==4||month==6||month==9||month==11)&&day==30)13.{ tomorrowmonth++;14.tomorrowday=1; }15.elseif((month==1||month==3||month==5||month==7||month==8||month==10)&&day==31)16.{ tomorrowmonth++;17.tomorrowday=1;}18.else if(month==12&&day==31)19.{ tomorrowyear++;20.tomorrowmonth=1;21.tomorrowday=1;}22.else if(month==2&&(year%400==0||(year%100!=0&&year%4==0))&&day==29)23.{ tomorrowmonth++;24.tomorrowday=1;}25.elseif(month==2&&(!(year%400==0||(year%100!=0&&year%4==0)))&&day==28)26.{ tomorrowmonth++;27.tomorrowday=1;}28.else{ tomorrowday++;}29.System.out.println("nextdayis\n"+tomorrowyear+"/"+tomorrowmonth+"/"+tomorrowday);程序结构图基路径数量:分支节点:4、6、8、10、12、15、18、22、25基路径数量9+1=10基路径:(1)最长的路径:Start-1-2-3-4-6-8-10-12-15-18-22-25-26-27-29-End (2)节点4翻转:Start-1-2-3-4-5-29-End(3)节点6翻转:Start-1-2-3-4-6-7-29-End(4)节点8翻转:Start-1-2-3-4-6-8-9-29-End(5)节点10翻转:Start-1-2-3-4-6-8-10-11-29-End(6)节点12翻转:Start-1-2-3-4-6-8-10-12-13-14-29-End(7)节点15翻转:Start-1-2-3-4-6-8-10-12-15-16-17-29-End(8)节点18翻转:Start-1-2-3-4-6-8-10-12-15-18-19-20-21-29-End (9)节点22翻转:Start-1-2-3-4-6-8-10-12-15-18-22-23-24-29-End (10)节点25翻转:Start-1-2-3-4-6-8-10-12-15-18-22-25-28-29-End三、佣金问题数据流测试方法1.double lockprice=45,stockprice=30,barrelprice=25;2.double totallocks=0,totalstocks=0,totalbarrels=0;3.double commission;4.Scanner input=new Scanner(System.in);5.System.out.print("Input the locks,stocks and barrels:\n");6.int locks=input.nextInt(),stocks=input.nextInt(),barrels=input.nextInt();7.if(1>locks||locks>70||1>=stocks||locks>=80||1>=barrels||barrels>=90){8.System.out.println("输入错误");System.exit(-1);}9.totallocks=totallocks+locks;10.totalstocks=totalstocks+stocks;11.totalbarrels=totalbarrels+barrels;12. doublelocksales=lockprice*totallocks,stocksales=stockprice*totalstocks,barrelsales=barrelprice*totalbarrels,sales=locksales+stocksales+barrelsales;13.if(sales>1800){mission=0.10*1000;mission=commission+0.15*800;mission=commission+0.20*(sales-1800);}17.else if(sales>1000){mission=0.10*1000;mission=commission+0.15*(sales-1000);}20.else commission=0.10*sales;21.System.out.print("commission is$:"+commission);程序流程图定义—使用路径:locks:(1)6-7 是定义—清除路径(2)2-3-4-5-6-7-9 是定义—清除路径stocks:(1)6-7 是定义—清除路径(2)6-7-9-10 是定义—清除路径barrels:(1)6-7 是定义—清除路径(2)6-7-9-10-11 是定义—清除路径sales:(1)12-13 是定义—清除路径(2)12-13-14-15-16 是定义—清除路径(3)12-13-17 是定义—清除路径(4)12-13-17-18-19 是定义—清除路径(5)12-13-17-20 是定义—清除路径commission:(1)14-15-16-21 不是定义—清除路径(2)15-16-21 不是定义—清除路径(3)16-21 是定义—清除路径(4)18-19-21 不是定义—清除路径(5)19-21 是定义—清除路径(6)20-21 是定义—清除路径分析:locks、stocks、barrels与sales没有非定义清除路径,commission却有3条非定义—清除路径,所以该变量在使用之前可能被定义两次或多次,可将14-15-16三条语句合并成一条一句,18-19两条语句合并成一条语句,减少缺陷。
软件测试实验一-三角形问题

三角形问题接受三个整数a、b和c作为输入,用做三角形的边。
程序的输出是由这三条边确定的三角形类型:等边三角形、等腰三角形、不等边三角形。
(说明:三边边长小于200)源程序:#include<iostream>using namespace std;float a,b,c; //全局变量(边长)int input (void); //边长输入函数int main (void) //主函数{float tmp;int i;char ch=c; //ch程序控制while(ch!='s'&&ch!='S'){input();if(!(a>0&&a<200)&&(b>0&&b<200)&&(c>0&&c<200)) //边界检查{cout<<"输入数据不符合范围要求,请检查后按任意键重新输入(输入s结束程序):";continue;}for(i=0;i<3;i++) //三边排序(升序){if (a>b) { tmp=a;a=b; b=tmp; }if (b>c) { tmp=b;b=c; c=tmp; }}if((a+b>c)&&(c-a<b)&&(c-b<a)) //判断能否构成三角形{if(a==b&&b==c){cout<<"等边三角形"<<endl;}else if(a==b||a==c||b==c){cout<<"等腰三角形"<<endl;}else{cout<<"不等边三角形"<<endl;}}else{cout<<"输入三边不能构成三角形,按任意键重新输入(输入s结束程序):";cin>>ch;}}return 0;}int input (void){cout<<endl<<"输入三边长(0~200):"<<endl<<"a:";cin>>a;cout<<"b:";cin>>b;cout<<"c:";cin>>c;cout<<endl;return 0;}THANKS !!!致力为企业和个人提供合同协议,策划案计划书,学习课件等等打造全网一站式需求欢迎您的下载,资料仅供参考。
软件测试实验1:为三角形问题编写一个Java程序,并用Junit测试程序

软件测试实验1:为三⾓形问题编写⼀个Java程序,并⽤Junit测试程序实验报告实验内容:1.Install Junit(4.12), Hamcrest(1.3) with Eclipse2.Install Eclemma with Eclipse3.Write a java program for the triangle problem and test the program with Junit.实验步骤:1.在eclipse中安装Junit、Hamcrest和eclemma。
下载Junit-4.12.jar、hamcrest-core-1.3.jar、和hamcrest-library-1.3.jar。
打开eclipse,新建⼀个project,在eclipse的菜单栏中,选择Project->Properties,在弹出的框的左侧选择“Java Bulid Path”,然后点击“Add External JARs”,把下载的⼏个包添加进来。
如图:安装eclemma:选择eclipse菜单中的“Help”,选择"Eclipse marketplace...",搜索eclemma,点击install开始安装。
安装完成后重启eclipse。
看到快捷按钮中的,说明eclemma安装成功。
2.程序代码和测试代码:可查看https:///realpby/SWTesting/blob/master/First%20Lab项⽬的⽬录如图:triCalculate.java⽂件中是实现三⾓形问题的代码。
testCalculate.java中是测试程序的代码。
triCalculate.java:package triangle;public class triCalculate {private static int tri =0;public void triangle(int a,int b, int c){if(a<=0||b<=0||c<=0){tri=0;}else{if(((a+b)>c) && ((a+c)>b && (b+c)>a)){if((a == b) &&(a == c)){tri = 3;//equilateral}if((a==b && a!=c)||(a==c && a!=b)||(b==c && a!=b)) {tri = 2;//isosceles}if(a!=b && a!=c && b!=c){tri = 1;//scalene}}else{tri=0;//三边长度⽆法构成三⾓形}}}public int getReuslt(){return tri;}public void clear(){tri = 0;}}testCalculate.java:package triangle;import static org.junit.Assert.*;import org.junit.Test;public class testCalculate {private static triCalculate cal = new triCalculate();@Testpublic void testTriangle(){cal.triangle(-5, 5, 5);assertEquals(0, cal.getReuslt());cal.triangle(5, 5, 5);assertEquals(3, cal.getReuslt());cal.triangle(5, 5, 6);assertEquals(2, cal.getReuslt());cal.triangle(3, 4, 5);assertEquals(1, cal.getReuslt());cal.triangle(12, 5, 5);assertEquals(0, cal.getReuslt());cal.triangle(10, 5, 5);assertEquals(0, cal.getReuslt());cal.triangle(11, 5, 5);assertEquals(3, cal.getReuslt());}}3.三⾓问题测试的测试结果和覆盖报告截图如下:测试程序中(11,5,5)这组数据不为3,所以出现⼀个failure。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
等价类划分法——以输出域划分等价类
健壮等价类测试 健壮等价类测试主要的出发点是考虑了无效等价类。 对有效输入,测试用例从每个有效等价类中取一个
值; 对无效输入,一个测试用例有一个无效值,其 他值均取有效值。 健壮等价类测试存在两个问题:
需要花费精力定义无效测试用例的期望输出; 对强类型的语言没有必要考虑无效的输入 。
三角形问题的用例设计方法
主讲:黄老师
授课班级:软件设计班
制作者:
三角形问题的用例设计方法
黑盒测试
等价类划分法 边界值分析法 因果图法 决策表法
Page 2
制作者:
等价类划分法——以输入域划分等价类
以三角形问题为例,输入条件是:
三个数,分别作为三角形的三条边 都是整数 取值范围在1~100之间
Page 6
制作者:
等价类划分法——以输出域划分等价类
因此,利用这些信息可以确定下列值域等价类:
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个标准等价类测试用例如表4-3所示。
制作者:
决策表法
分析如下:
确定规则的个数。例如,三角形问题的决策表有4个条件, 每个条件可以取两个值(真值和假值),所以应该有 24=16种规则。
列出所有条件桩和动作桩。 填写条件项。 填写动作项,从而得到初始决策表。如表4-12所示。 简化决策表。合并相似规则后得到三角形问题的简化决策
测试用例
等价类编号
4
1
5
6
7
2
三个数
8
9
整数
1≤a≤100
10
11
1≤b≤100
1≤c≤100
12
4,5,6
13
3
14
15
16
17
18
表4-2 三角形问题的测试用例 Page 5
测试用例
只有一条边4 只有两条边4,5 多于三条边4,5,6,7 一边为非整数4.5,6,7 两边为非整数4.5,5.5,6 三边为非整数4.5,5.5,6.6 一边为00,2,5 两边为00,0,7 三边为00,0,0 一边小于0-1,7,8 两边小于0-9,-,1,6 三边小于0-1,-2,-8 一边大于100101,56,50 两边大于100101,107,89 三边大于100101,109,176
测试用例
a
b
c
Test Case 1
10
4
4
Test Case 2
4
4
4
Test Case 3
?
?
?
Test Case 4
?
?
?
Test Case 5
4
4
5
Test Case 6
?
?
?
Test Case 7
5
4
4
Test Case 8
4
5
4
Test Case 9
3
4
5
Page 19
返回
预期输出 非三角形 等边三角形
表。如表4-13所示。
Page 15
制作者:
决策表法
表4-12 三角形问题的初始决策表
选项
规则
1
2
3
4
5
6
7
8
条件:
C1:a,b,c构成一 F
F
F
F
F
F
F
F
个三角形?
T
T
T
T
F
F
F
F
C2:a=b?
T
T
F
F
T
T
F
F
C3:b=c?
T
F
T
F
T
F
T
F
C4:a=c?
动作:
a1:非三角形
√
√
√
√
√
√
√
√
a2:一般三角形
Page 9
制作者:
等价类划分法——以输出域划分等价类 返回
测试用例
a
b
c
Test Case 1
5
6
7
Test Case 2
-1
5
5
Test Case 3
5
-1
5
Test Case 4
5
5
-1
Test Case 5 101
5
5
Test Case 6
5
101
5
Test Case 7
5
5
101
预期输出 一般三角形 a值超出输入值定义域 a值超出输入值定义域 a值超出输入值定义域 a值超出输入值定义域 a值超出输入值定义域 a值超出输入值定义域
Test Case 7
101
60
50
Test Case 8
50
0
60
Test Case 9
50
1
50
Test Case 10
50
2
50
Test Case 11
50
99
50
Test Case 12
50
100
50
Test Case 13
50
101
60
Test Case 14
60
Test Case 15
50
Test Case 16
50
Test Case 17
50
Test Case 18
50
Test Case 19
60
50
0
50
1
50
2
50
99
50
100
50
101
Page 13
返回
预期输出 非三角形 等腰三角形 等腰三角形 等边三角形 等腰三角形 非三角形 边超出范围 非三角形 等腰三角形 等腰三角形 等腰三角形 非三角形
a3:等腰三角形
a4:等边三角形
a5:不可能
Page 16
制作者:
决策表法
选项
规则
表4-12 三角形问题的初始决策表
9
10
11
12
13
14
15
条件:
C1:a,b,c构成一 T
T
T
T
T
T
T
个三角形?
T
T
T
T
F
F
F
C2:a=b?
T
T
F
F
T
T
F
C3:b=c?
T
F
T
F
T
F
T
C4:a=c?
动作: a1:非三角形
表4-4 三角形问题的7个健壮等价类测试用例
Page 10
制作者:
边界值分析法
以三角形问题为例,要求输入三个整数a、b、c,分 别作为三角形的三条边,取值范围在1~100之间, 判断由三条边构成的三角形类型为等边三角形、等 腰三角形、一般三角形(包括直角三角形)以及非 三角形。如表4-8所示给出了边界值分析测试用例。
认真分析上述的输入条件,可以得出相关的等价类 表(包括有效等价类和无效等价类),如表4-2所示。
Page 3
制作者:
等价类划分法——以输入域划分等价类
输入条件
等价
类编号
有效等价类
三个数
1
三个数
整数
2
整数
取值范围
在1~100
3
1≤a≤100 1≤b≤100 1≤c≤100
等价类编号
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
F
F
F
F
C2:a=b?
-
T
T
F
F
T
T
F
F
C3:b=c?
-
T
F
T
F
T
F
T
F
C4:a=c?
动作:
a1:非三角形
√
a2:一般三角形
√
a3:等腰三角形
√
√
√
a4:等边三角形 a5:不可能
√
√
√
√
Page 18
制作者:
决策表法
根据决策表4-13,可设计测试用例,如表4-14所示。
表4-14 三角形问题的决策表测试用例
Page 7
制作者:
等价类划分法——以输出域划分等价类
测试用例
a
b
c
预期输出
Test Case 1
10
10
10
等边三角形
Test Case 2
10
10
5
等腰三角形
Test Case 3 Test Case 4
3
4
5
1
1
5
表4-3 三角形问题的标准等价类测试用例
一般三角形
不构成三角 形
Page 8
制作者:
不可能 不可能 等腰三角形 不可能 等腰三角形 等腰三角形 一般三角形
制作者:
Page 11
制作者:
边界值分析法
表4-8边界值分析测试用例
测试用例
a
b
c
Test Case 1
1
50
50
Test Case 2
2
50
50
Test Case 3