软件测试三角形问题

合集下载

软件测试作业三角形判定

软件测试作业三角形判定

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

Judge是一个判断接口定义了3个方法
Triangle是三角形类,实现了Judge接口
3.设计接口
4.实现内部功能
5.输出结果。

软件测试实验报告_使用Parasoft C++ Test软件进行静态测试

软件测试实验报告_使用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");}}}。

软件测试与质量保证作业1三角形问题案例

软件测试与质量保证作业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所示。

软件测试实验报告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:为三⾓形问题编写⼀个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.掌握利用基本路径法进行白盒测试的方法。

二、实验任务1.理解三角形问题的命题。

三角形问题是软件测试文献中广泛使用的一个例子。

三角形问题:输入三个整数a、b和c分别作为三角形的三条边,通过程序判断有这三条边构成的三角形类型是:等边三角形、等腰三角形、一般三角形或非三角形。

主要代码如下:1.If (inta >= intb + intc)2. Or (intb >= inta + intc)3. Or (intc >= intb + inta) Then4. strMsg = "非三角形"5.Else6. If (inta = intb)7. And (intb = intc) Then8. strMsg = "等边三角形"9. Else10. If (inta = intb)11. Or (inta = intc)12. Or (intc = intb) Then13. strMsg = "等腰三角形"14. Else15. strMsg = "普通三角形"16. End If17. End If18.End If19.MsgB ox(strMsg, rmation, "三角形问题") //输出判断结果2.利用基本路径测试法对三角形问题进行测试用例设计。

三、实验步骤1.理解三角形问题中各种三角形的判断方法。

2.根据上面的代码画出程序的控制流图。

(注意:复合条件语句,需改复合条件的判断为一系列单个条件的嵌套)3.计算环路复杂度。

4.求出基本路径组合。

5.设计测试用例(按照表1的形式,设计用例)。

表1:用例设计表四、实验报告要求1.实验报告中“实验内容”应包含(1)程序控制流图;(2)环路复杂度计算结果;(3)基本路径集合;(4)测试用例设计(按表1填写)。

软件测试三角形问题(覆盖测试)

软件测试三角形问题(覆盖测试)
判定覆盖和分支条件覆盖是很容易弄混的知识点。刚开始学习这两种覆盖的时候,我就很难分清。在实验之前复习之后,有了很深的印象。判定覆盖要求测试每个判定的结果,是IF,CASE语句中的所有可能。使得程序中的每个判定至少都获得一次真值和假值。即要使程序中的每个取真分支和取假分支至少均经历一次。在本次的实验中,只要测试三个IF语句就行。



等边三角形
5
5
5
6
T1,T2,T3,-T4,-T5


-
等腰三角形
6
5
6
7
T1,T2,T3,T4,T5,-T6



普通三角形
六.分支条件组合测试分析
设计的测试用例,需要将原子条件的所有true-false组合至少执行一遍。并且满足分支条件组合测试包括语句覆盖和分支覆盖。
根据流程图得出测试用例,如表4。
(2)如果三条边相等,则程序输出为“等边三角形”;
(3)如果恰好有两条边相等,则程序输出为等腰三角形;
(4)如果三条边都不相等,则程序输出为普通三角形。
3.根据以上分析及流程图得出测试用例,如表2。
表2判定覆盖测试用例
测试
用例
a
b
c
a+b>c&&b+c>a&&a+c>b
a=b&&b=c
a=b||b=c||a=c
分支条件测试是将IF,CASE这种语句的原子条件的所有真分支和取假分支至少均经历一次。一个条件包含多个原子条件。就是将分支语句分解。较判定覆盖较麻烦,但测试的更加细致,具体。分支条件组合测试和分支条件测试差不多。只是在分支条件测试的基础上,加入了判定测试。条件组合只针对同一个判断语句存在多个条件的情况,让这些条件的取值进行笛卡尔乘积组合。不同的判断语句内的条件取值之间无需组合。对于但条件的判断语句,只需要满足自己的所有取值即可。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

辽宁工程技术大学上机实验报告
一•实验步骤
1) 1. 打开c与C++程序糸统平台,编与有关二角形冋题的相关程序。

2. 对程序进行语句覆盖测试。

3. 对程序进行判定覆盖测试。

4. 对程序进行分支条件测试。

5. 对程序进行分支条件组合测试。

6. 进行用例设计。

选择分支覆盖测试的方法进行测试。

二•程序分析
1.程序代码
#in clude<>
2) main()
3) {
4) int A,B,C;
实验5) printf(" 请输入三角形的三条边:");
分析6) sca nf("%d %d %d",&A,&B,&C);
7) if((A>0&&B>0&&C>0)&&( (A+B)>C&&(A+C)>B&&(B+C)>A))
8) {
9) if(A==B&&A==C)
10) printf(" 该三角形是等边三角形!\n");
11) else
12) if((A==B&&B!=C)||(B==C&&B!=A)||(A==C&&A!=B))
13) printf(" 该三角形是等腰三角形!\n");
14) else
15) printf(" 该三角形是普通三角形!\n");
16) }
17) else
18) {
19) prin tf("ERROR!\n");
20) return mai n();
22) }
2. 程序流程图
根据代码绘制程序流程图,各边编号为 a , b , c , d , e , f 。

如图1
3. 分析
程序主要是根据三个整数a , b , c ,构成一个三角形判定三角形的类 型为等边三角形、等腰三角形、普通三角形还是构成不了三角形。

要求输入的三个整数都是正数,三边都是大于等于 1,小于等于100, 且a+b>c,a+c>b,b+c>a,才能进行以后的判断。

否则输出“ ERROR!,返回 主程序。

重新输入三个整数 a , b , c 。

然后判断三角形的类型。

如果
a=b
C:\JMSOFT\CYuYan\bi n\wwtemp.exe 歸疋翻的刍边:5 5 f 形是等边三角形!
Press any key to continue
图2测试用例2
3.测试用例3,如图3。

CAJMSOFT^CYuYanXbin^^lemp.eKe
请嘔忑角乐的三条边:5 5 5 该三角形罡綁疋角形!
P T&SS:any key to continue
图3测试用例3
4. 测试用例4,如图4。

CAJMSO FT\CYuYan\bin\wwtemp.exe
Pi&ss any key to continue.
图4测试用例4
体会。

相关文档
最新文档