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

合集下载

软件测试实验报告三

软件测试实验报告三

8. scanf("%d",&d);
9. if(y>2014||y<1814)
10.
printf("输入日期不存在\n");
11. else if(m<1||m>12)
12.
printf("输入日期不存在\n");
13. else if(d<1||d>31)
14.
printf("输入日期不存在\n");
3:佣金问题:
1.int x,y,z,n;
2.printf("请输入购买枪机、枪托、枪管数量:\n");
3. scanf("%d %d %d",&x,&y,&z);
4. if(x>=1&&x<=70){
测试)设计测试用例,具体要求如下:
(1)为程序语句部分进行编号;
(2)画出程序的程序结构图(节点图);
(3)用上述五种方法分别设计测试用例,并说明每种测试用例的设计思路,例如
测试用例所覆盖的语句、判定或条件的真分支假分支或路径等;
(4)使用上述测试用例对三角形问题进行测试,并做好测试记录,即有缺陷进行
南昌航空大学实验报告
2014 年 12 月 31 日
课程名称: 软件质量保证与测试
班级:
姓名:
指导教师评定:
实验名称: 结构性测试 同组人: 签名:
一、实验目的
掌握逻辑覆盖法、基路径法以及数据流测试基本结构性测试方法
二、实验要求
1、对三角形问题尝试用逻辑覆盖法(语句覆盖、判定覆盖、路径覆盖,基路径等方法

软件测试-判断三角形形状路径白盒测试

软件测试-判断三角形形状路径白盒测试

三角形白盒测试要求要求:,其他1 ) 自备 C 语言程序(可从 C 语言程序设计的教科书上摘录若干典型程序C++ 、C# 、Java 程序均可);#include <stdio.h>#include <stdlib.h>#include <math.h>int main(){int a,b,c;printf(" 输入三角形的三个边 :");scanf("%d %d %d",&a,&b,&c);if(a<=0||b<=0||c<=0)printf(" 不符合条件,请重新输入 a,b,c\n");else if(a+b<=c||abs(a-b)>=c)printf("不是三角形\n");else if(a==b&&a==c&&b==c)printf("这个图为等边三角形\n");else if(a==b||a==c||b==c)printf("这个图为等腰三角形\n");elseprintf("这个图为一般三角形\n");2)根据该程序绘制对应的程序流程图;/ 幟沖迈〃軾已等堆卄琳::矗歴# 输山养赠〃诚日等山/ / 输出水呈/3)分别根据程序流程图给出符合语句覆盖、判定覆盖、条件覆盖、路径覆盖以及判定/条件覆盖和条件组合覆盖的的测试用例以及预期的运行结果;语句覆盖判断覆盖条件覆盖判定1 : 1-1(a<=0) 1-2(b<=0) 1-3(c<=0)判定2: 2-1(a+b<=c) 2-2(|a-b|>=c) 判定3: 3-1(a==b)判定4: 4-1(a==c)判定5: 5-1(a==c)判定 6: 6-1(b==c)判定/条件覆盖、条件组合覆盖、路径覆盖4)根据程序流程图画出流图,并确定线性独立路径的基本集合,然后给出符合各集合的测试用例;路径1: 1-2-3路径2: 1-2-4-5-7-9-12-13路径3: 1-2-4-5-7-9-10-13路径4: 1-2-4-5-7-10-13 路径5: 1-2-4-5-8-10-13。

最新软件测试-判断三角形形状路径白盒测试

最新软件测试-判断三角形形状路径白盒测试

4.完成软件白盒测试技术中的逻辑覆盖测试应用设计实验。

(理论考试重点内容实践)三角形白盒测试要求要求:1)自备C语言程序(可从C语言程序设计的教科书上摘录若干典型程序,其他C++、C#、Java程序均可);#include <stdio.h>#include <stdlib.h>#include <math.h>int main(){int a,b,c;printf("输入三角形的三个边:");scanf("%d %d %d",&a,&b,&c);if(a<=0||b<=0||c<=0)printf("不符合条件,请重新输入a,b,c\n");else if(a+b<=c||abs(a-b)>=c)printf("不是三角形\n");else if(a==b&&a==c&&b==c)printf("这个图为等边三角形\n");else if(a==b||a==c||b==c)printf("这个图为等腰三角形\n");elseprintf("这个图为一般三角形\n");}2)根据该程序绘制对应的程序流程图;3)分别根据程序流程图给出符合语句覆盖、判定覆盖、条件覆盖、路径覆盖以及判定/条件覆盖和条件组合覆盖的的测试用例以及预期的运行结果;条件覆盖判定1:1-1(a<=0) 1-2(b<=0) 1-3(c<=0)判定2:2-1(a+b<=c) 2-2(|a-b|>=c)判定3:3-1(a==b)判定4:4-1(a==c)判定5:5-1(a==c)4)根据程序流程图画出流图,并确定线性独立路径的基本集合,然后给出符合各集合的测试用例;路径1:1-2-3路径2:1-2-4-5-7-9-12-13路径3:1-2-4-5-7-9-10-13路径4:1-2-4-5-7-10-13路径5:1-2-4-5-8-10-13路径6:1-2-4-5-8-11-13路径7:1-2-4-6-135)根据上述测试用例执行程序,对比实际运行结果和预期运行结果,结果比对最6)对以上实验结果进行适当地分析与总结。

软件测试实验报告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两条语句合并成一条语句,减少缺陷。

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

软件测试实验一-三角形问题

软件测试实验一-三角形问题

三角形问题接受三个整数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。

实验2 条件覆盖和判定条件覆盖 《软件测试方法和技术》

实验2  条件覆盖和判定条件覆盖 《软件测试方法和技术》

实验2 条件覆盖和判定条件覆盖一、实验目的熟悉Rational Purefy系列测试工具,理解和掌握软件开发单元测试环节中重要的代码逻辑和路径覆盖测试,使用Rational Purecoverage进行条件覆盖和判定条件覆盖测试。

二、实验任务熟悉Rational Purefy测试环境,理解和掌握代码覆盖测试的测试用例设计和测试的执行,使用Rational Purecoverage进行代码覆盖测试。

三、实验要求每人一台单独做,不得多人一起做。

四、实验内容1)使用已经设计好的测试用例和事先准备的测试代码进行测试;五、实验过程将程序编译后使用Rational Purecoverage软件输入测试用例,进行测试:·····················分···割····线····················↓↓↓自己的程序↓↓↓↑↑↑自己的程序↑↑↑·····················分···割····线····················↓↓↓别人的程序↓↓↓2下一个日期判断由于所给程序不符合要求,所以未作测试。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
判定覆盖和分支条件覆盖是很容易弄混的知识点。刚开始学习这两种覆盖的时候,我就很难分清。在实验之前复习之后,有了很深的印象。判定覆盖要求测试每个判定的结果,是IF,CASE语句中的所有可能。使得程序中的每个判定至少都获得一次真值和假值。即要使程序中的每个取真分支和取假分支至少均经历一次。在本次的实验中,只要测试三个IF语句就行。
3){
4)int A,B,C;
5)printf("请输入三角形的三条边:");
6)scanf("%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");
根据流程图得出测试用例,如表3。
表3分支条件测试用例
测试
用例
a
b
c
覆盖条件
a+b>c&&b+c>a&&a+c>b
a=b&&b=c
a=b||b=c||a=c
预期
结果
1
1
2
1
T1,T2,-T3

-
-
ERROR
2
2
1
1
T1,-T2,T3

-
-
ERROR
3
1
1
2
-T1,T2,T3

-
-
ERROR
4
5
5
5
T1,T2,T3,T4,T5,T6
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)printf("ERROR!\n");
3.语句覆盖测试分析
运行若干测试用例,使被测试的程序的每一条可执行语句至少执行一次。根据控制流图得出测试用例。如表1。
表1语句覆盖测试用例
测试用例
a
b
c
执行路径
预期结果
1
5
6
7
acf
普通三角形
2
5
5
6
ad
等腰三角形
3
5
5
5
ace
等边三角形
4
3
4
7
b
ERROR
四.判定测试覆盖分析
执行足够的测试用例,使得程序中每一个判定至少获得一次“真”值和“假”值,从而使得程序的每个分支都经历一次。
分支条件测试是将IF,CASE这种语句的原子条件的所有真分支和取假分支至少均经历一次。一个条件包含多个原子条件。就是将分支语句分解。较判定覆盖较麻烦,但测试的更加细致,具体。分支条件组合测试和分支条件测试差不多。只是在分支条件测试的基础上,加入了判定测试。条件组合只针对同一个判断语句存在多个条件的情况,让这些条件的取值进行笛卡尔乘积组合。不同的判断语句内的条件取值之间无需组合。对于但条件的判断语句,只需要满足自己的所有取值即可。



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


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



普通三角形
7.测试用例截图
使用判定覆盖进行用例测试,参见表2。
1.测试用例1,如图1。
图1测试用例1
2.测试用例2,如图2。
图2测试用例2
3.测试用例3,如图3。
图3测试用例3
4.测试用例4,如图4。
1.条件
条件1 1=a=100
条件2 1=b=100
条件3 1=c=100
条件4 a<b+ c
条件5 b<a+ c
条件6 c<a+ b
2.分析
如果输入值a、b、c不满足条件1、条件2和条件3,输出ERROR。
如果输入值a、b、c满足条件1、条件2和条件3:
(1)如果不满足条件4、条件5和条件6中的一个,则程序输出为ERROR;
2.了解至少一门程序设计语言,并能熟练应用。能够编写并运行有关实验的相关代码。
3.了解覆盖测试的基本方法。主要是判定覆盖。
4.了解测试用例的方法,并进行适当的测试用例。
实验
进度
本次共有1个练习,完成1个。
实验
内容
1.根据三角形问题进行编程,分为等腰三角形,等边三角形,普通三角形以及不能构成三角形。
2.对程序进行语句覆盖测试。
图4测试用例4
心得
体会
本次实验是关于覆盖测试方面的知识。这方面的内容很少,主要靠自己的理解。在做实验之前,我复习了关于覆盖测试相关的内容,在做实验的时候更加熟练。有清晰的思路,使实验更简单。
在做语句覆盖的时候,觉得三角形问题没有语句覆盖,一直以为语句覆盖只能测试一次。如果测试一次,不管怎样都不能将所有的语句都覆盖到,通过进一步的更深入的查阅资料,才明白,可以进行多次测试使被测试的程序的每一条可执行语句至少执行一次。



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


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



普通三角形
六.分支条件组合测试分析
设计的测试用例,需要将原子条件的所有true-false组合至少执行一遍。并且满足分支条件组合测试包括语句覆盖和分支覆盖。
根据流程图得出测试用例,如表4。
表4分支条件组合测试分析
测试
用例
a
b
c
覆盖条件
a+b>c&&b+c>a&&a+c>b
a=b&&b=c
a=b||b=c||a=c
预期
结果
1
1
2
1
T1,T2,-T3

-
-
ERROR
2
2
1
1
T1,-T2,T3

-
-
ERROR
3
1
1
2
-T1,T2,T3

-
-
ERROR
4
6
6
6
T1,T2,T3,T4,T5,T6
20)return main();
21)}
22)}
2.程序流程图
根据代码绘制程序流程图,各边编号为a,b,c,d,e,f。如图1。
图1程序流程图
3.分析
程序主要是根据三个整数a,b,c,构成一个三角形判定三角形的类型为等边三角形、等腰三角形、普通三角形还是构成不了三角形。
要求输入的三个整数都是正数,三边都是大于等于1,小于等于100,且a+b>c,a+c>b,b+c>a,才能进行以后的判断。否则输出“ERROR!”,返回主程序。重新输入三个整数a,b,c。然后判断三角形的类型。如果a=b且a=c,输出“该三角形是等边三角形!”。如果a=b,b不等于c,或b=c,b不等于a,或a=c,a不等于b,输出“该三角形是等腰三角形!”。如果不是以上这两种情况,输出“该三角形是普通三角形!”。
在以后的学习中,我会更加仔细认真。在做实验之前,一定要做好复习,这次在实验之前准备的很充分,实验做的也很顺利。在做实验的时候发现不懂的不会的,不太清楚的,不能就这样过去了。要把模糊的知识点弄清楚,在做实验。这样越拖越多,越欠越多,对自己的学习是一种敷衍,对以后的发展造成了阻碍。及时进行总结归纳,将相似的问题放在一起。找出共性。找出不同的地方,方便记忆。避免弄混知识点。相信在以后的学习中,我能更好的学好每一科,为以后步入社会打下坚实的基础。
(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
3.对程序进行判定覆盖测试。绘制出程序流程图,分支覆盖要求测试每个判定的结果。使得程序中的每个判定至少都获得一次真值和假值。即要使程序中的每个取真分支测试
5.对程序进行分支条件组合测试
6.选用基于覆盖测试的方法对三角形问题设计测试用例。
实验
分析
一.实验步骤
成绩
山西大学软件测试报告
课程名称
软件测试
实验题目
基于覆盖测试技术
院系
软件学院
专业
软件工程
班级
姓名
学号
实验日期
实验
相关文档
最新文档