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

合集下载

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

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

三角形白盒测试要求要求:,其他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。

三角形基本路径覆盖测试 三角形白盒测试

三角形基本路径覆盖测试 三角形白盒测试

三角形基本路径覆盖测试于名飞学号2220130799刘振昌学号2220130793陈诗明学号2220120200张超宁学号2220120210王永峰学号22201201931三角形基本路径覆盖测试对于上述三角形基本路径覆盖测试程序流程,根据条件判定来生成测试用例,得到的测试用例如下:用例输入取值覆盖路径case1 a=8, b=9, c=10 0→1→3→5→7→8→9→10→11case2 a=8, b=20, c=9 0→1→3→5→7→8→9→10→12case3 a=20, b=8, c=9 0→1→3→5→7→8→9→12case4 a=8, b=9, c=30 0→1→3→5→7→8→12case5 a=10, b=10, c=30 0→1→2→3→5→7→13→14→12case6 a=10, b=10, c=9 0→1→2→3→5→7→13→14→15case7 a=10, b=30, c=10 0→1→3→4→5→7→13→16→17→12case8 a=10, b=9, c=10 0→1→3→4→5→7→13→16→17→15case9 a=30, b=10, c=10 0→1→3→5→6→7→13→16→18→19→12case10 a=9, b=10, c=10 0→1→3→5→6→7→13→16→18→19→15case11 a=10, b=10, c=10 0→1→2→3→4→5→6→7→13→16→18→202开发环境操作系统: Window7开发环境: VS2008、C#运行环境: Window 2000/XP/2003/7/8、.net FrameWork 2.0屏幕分辨率要求大于1024x7683编程思路完成该系统,实现基本的判定条件和路径覆盖,从编程的角度来说比较简单,但为了能够实现较好的可视化效果,希望能够将程序执行路径的每一步分别顺序输出,并能够在可视化的流程图上动态展现出来。

软件测试实验报告白盒测试

软件测试实验报告白盒测试

软件测试与质量课程实验报告
实验3:白盒测试
掌握静态白盒测试方法及一般要求
掌握白盒测试用例的设计方法
掌握白盒测试基本测试方法:逻辑覆盖、路径测试。

语句覆盖输入数据路径预期输出1A=2,B=5,C=3,1239不能构成三角形2A=15,B=15,C=1512459等边三角形3A=15,B=15,C=13124679等腰三角形4A=23,B=24,C=25124689一般三角形
判定覆盖输入数据路径预期输出1A=2,B=3,C=5,1239不能构成三角形
语句覆

编号输入数据覆盖语句
1array[8,9,10,11] key 101,2,3,8
2array[8,9,10,11] key 251,2,3,9
3array[8,9,10,11] key 81,2,3,6,7
4array[8,9,10,11] key 91,2,3,4,5
判定覆

编号输入数据路径
1array[8,9,10,11] key 101-2-3-4-5-6-8-
2array[8,9,10,11] key 251-2-3-4-5-6-8--10-11-4-12



缺席:扣10分实验报告雷同:扣10分实验结果填写不完整:扣1 – 10分
其他情况:扣分<=5分总扣分不能大于10分。

软件测试实验报告白盒测试

软件测试实验报告白盒测试
路径
预期结果
1
array[8,9,10,11] key10
1-2-3-4-5-6-8-10-11-4-5-6-7
7
2
array[8,9,10,11] key25
1-2-3-4-5-6-8-10-11-4-5-6-8-10-11-4-12
-1
3
array[8,9,10,11] key8
1-2-3-4-5-6-8-9-4-5-6-7
2
A=12,B=12,C=12
12459
等边三角形
3
A=12,B=12,C=15
124679
等腰三角形
4
A=13,B=14,C=15
124689
一般三角形
2.
publicclassrer {
publicstaticvoidmain(String []args){
intarray[]={8,9,10,11};
5
条件覆盖
编号
输入数据
路径
预期结果
1
array[8,9,10,11] key10
1-2-3-4-5-6-8-10-11-4-5-6-7
7
2
array[8,9,10,11] key25
1-2-3-4-5-6-8-10-11-4-5-6-8-10-11-4-12
-1
3
array[8,9,10,11] key8
一般三角形
1、a+b<=c,a+c<=b,b+c<=a记T1、T2,T3第一个判定的取真分支
2、a+b>c,a+c<=b,b+c<=a记-T1、T2,T3,第一个判定的取假分支

三角形程序白盒测试

三角形程序白盒测试
请输入能构成三角形的整数。
执行路径:1-2-3-7-12
请输入能构成三角形的整数。
Case35
a=’g’,b=’6’,c=’h’
请输入能构成三角形的整数。
执行路径:1-2-3-7-12
请输入能构成三角形的整数。
Case36
a=’h’,b=’发’,c=’52’
请输入能构成三角形的整数。
执行路径:1-2-3-7-12
a=’5.3’,b=’3.0’,c=’2.3’
请输入能构成三角形的整数。
满足:F4,T5,F6
请输入能构成三角形的整数。
Case14
a=’6’,b=’2.3’,c=’3
请输入能构成三角形的整数。
满足:T4,F5,T6
请输入能构成三角形的整数。
Case15
a=’2’,b=’3’,c=’5’
请输入能构成三角形的整数。
执行路径:1-2-3-7-12
请输入能构成三角形的整数。
Case21
a=’1’,b=’2’,c=’3’
请输入能构成三角形的整数。
执行路径:1-2-3-4-5-7-12
请输入能构成三角形的整数。
Case22
a=’15’,b=’2’,c=’5’
请输入能构成三角形的整数。
执行路径:1-2-3-4-5-7-12
Case1
a=’三’,b=’角’,c=’形’
请输入能构成三角形的整数。
执行路径:1-2-3-7-12
请输入能构成三角形的整数。
Case2
a=’5’,b=’2’,c=’2’
请输入能构成三角形的整数。
执行路径:1-2-3-4-5-6-9-10-12
请输入能构成三角形的整数。
Case3

白盒测试实验报告三角形形状山东大学[5篇范例]

白盒测试实验报告三角形形状山东大学[5篇范例]

白盒测试实验报告三角形形状山东大学[5篇范例]第一篇:白盒测试实验报告三角形形状山东大学实验报告一、实验目的运用白盒测试中的条件覆盖和判定覆盖检查程序中内部动作或者运行是否符合规范,各部分内容是否按照规定正常运行。

二、实验内容 1 1、题目输入三角形的三条边,判断三角形的类型,并返回三角形的详细类型,同时判断游戏是否结束,如果为结束,可以继续进行测试。

代码如下::(被测函数为类类Trinagle 中的returnType)package 白盒测试;import java.util.Scanner;public class Triangle {/*** @赵得山*/public static void main(String[] args){String g=“y”;Scanner scan=new Scanner(System.in);while(g.equalsIgnoreCase(g)){System.out.println(“请输入三个数字:”);int[] num=new int[3];for(int i=0;i<3;i++)num[i]=scan.nextInt();//对三条边进行插入排序for(int i=2;i>=1;i--)for(int j=0;jif(num[j]>num[j+1]){int temp=num[j];num[j]=num[j+1];num[j+1]=temp;}}for(int i=0;i<3;i++)System.out.print(num[i]+“ ”+Math.pow(num[i], 2)+“”);System.out.println(returnType(num[0],num[1],num[2])); //是否继续输入测试数据System.out.println(“是否继续输入数据?y/n”);if(!scan.next().equals(“y”)){System.out.println(“测试结束!”);System.exit(0);}}}/*** 返回三角形的类型*/static String returnType(int a,int b,int c){String type=“";if(a+b<=c||b+c<=a||a+c<=b){System.out.println(”请重新输入测试数据“);type=”不是三角形“;}else if(a==b&&a==c){type=”等边三角形“;}else if(a==b||a==c||b==c){if(Math.pow(a, 2)+Math.pow(b, 2)==Math.pow(c, 2))type=”等腰直角三角形“;else if(Math.pow(a, 2)+Math.pow(b, 2)>Math.pow(c, 2))type=”等腰锐角三角形“;else if(Math.pow(a, 2)+Math.pow(b, 2)type=”等腰钝角三角形“;}else if(Math.pow(a, 2)+Math.pow(b, 2)==Math.pow(c, 2))type=”一般直角三角形“;else if(Math.pow(a, 2)+Math.pow(b, 2)type=”一般钝角三角形“;else if(Math.pow(a, 2)+Math.pow(b, 2)>Math.pow(c, 2))type=”一般锐角三角形";return type;} }2、测试用例设计1)程序流程图如下:开始请输入三条边 a、b、c a+b<=c||b+c<=a||a+c<=ba==b&&a==c TFFa==b||a==c||b==c FMath.pow(a,2)+Math.pow(b, 2)==Math.pow(c, 2)FMath.pow(a,2)+Math.pow(b, 2)>Math.pow(c, 2)FTMath.pow(a,2)+Math.pow(b, 2)Math.pow(c, 2)Math.pow(a,2)+Math.pow(b, 2)结束TTTFF1))判定覆盖测试用例及测试结果输入数据预期结果实际结果测试结果 a=1b=1c=5 不是三角形不是三角形正确 a=5b=5c=5 等边三角形等边三角形正确 a=1b=1c= 2等腰直角三角形等腰直角三角形正确 a=4b=4c=1 等腰锐角三角形等腰锐角三角形正确 a=3b=3c=5 等腰钝角三角形等腰钝角三角形正确 a=3b=4c=5 一般直角三角形一般直角三角形正确 a=3b=5c=6 一般钝角三角形一般钝角三角形正确 a=10b=11 c=12 一般锐角三角形一般锐角三角形正确注:已覆盖所有的判定,由于条件太多,所以这里未列出判定的路径,还请老师见谅..2))条件覆盖测试用例及测试结果输入数据预期结果实际结果测试结果 a=1b=1c=4 不是三角形不是三角形正确 a=1b=4c=1 不是三角形不是三角形正确 a=4b=1c=1 不是三角形不是三角形正确 a=1b=1c=1 等边三角形等边三角形正确 a= 2b=1c=1 等腰直角三角形等腰直角三角形正确 a=4b=4c=1 等腰锐角三角形等腰锐角三角形正确 a=3b=3c=5 等腰钝角三角形等腰钝角三角形正确 a=3b=4c=5 一般直角三角形一般直角三角形正确 a=3b=5c=6 一般钝角三角形一般钝角三角形正确 a=10b=11 c=12 一般锐角三角形一般锐角三角形正确注:已覆盖所有的条件,所有条件的真假都取了一次,由于条件太多,所以这里未列出判定的路径,还请老师见谅..三、总结与体会通过这次实验,我对于白盒测试有了更加深刻和直观的认识,因为代码是自己编写的,同时也重新锻炼了自己的动手编码能力。

白盒测试报告 三角形

白盒测试报告 三角形

白盒测试一、实验目的1、掌握白盒测试的基本方法;2、掌握白盒测试用例的编写。

二、实验要求1、根据给出的程序分别使用语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖、基本路径覆盖来设计相应的测试用例。

2、输入数据进行测试,执行测试用例。

三、实验内容程序:用VC++ 6.0编写三角形函数:三角形中,要求输入三边的长度:a,b,c,当三边不可能构成三角形时提示错误,可构成三角形时计算三角形的周长。

若是等腰三角形打印“等腰三角形”,若是等边三角形,则打印“等边三角形”。

源代码:#include <iostream>using namespace std;double triangleType(double a,double b,double c){double l;l=a+b+c;if(a+b<=c&&a+c<=b&&b+c<=a)cout<<"error:不能构成三角形"<<endl;else if(a==b&&a==c)cout<<"等边三角形"<<endl;else if(a==b||a==c||b==c)cout<<"等腰三角形"<<endl;elsecout<<"三角形周长:"<<l<<endl;return 0;}void main(){double x,y,z;cout<<"输入三个边长:"<<endl;cin>>x>>y>>z;triangleType(x,y,z);}四、实验步骤2、测试,得出结果。

3、如果发现缺陷,找出缺陷所在并修改程序。

白盒测试三角形问题的基本路径测试解答

白盒测试三角形问题的基本路径测试解答

实验六三角形问题的基本路径测试主要代码如下:1.If (inta >= intb + intc) _2. Or (intb > =inta + intc) _3.Or (intc >= intb + inta) Then4. strMsg = "三角形两边之和必须大于第三边" + vbCrLf + "非三角形"5.Else6. If (inta = intb) _7.And (intb = intc) Then8. strMsg = "三角形的三条边都相等" + vbCrLf + "等边三角形"9. Else10. If (inta = intb) _11.Or (inta = intc) _12.Or (intc = intb) Then13. strMsg = "三角形的任意两边相等" + vbCrLf + "等腰三角形"14. Else15. strMsg = "三角形的各边均非等" + vbCrLf + "普通三角形"16. End If17. End If18.End If1.根据上面的代码画出程序的控制流图。

2.计算环路复杂度。

V(G)=93.求出基本路径组合。

P1: 1-4-18P2: 1-2-4-18P3: 1-2-3-4-18P4: 1-2-3-6-7-8-17-18P5: 1-2-3-6-10-13-16-17-18P6: 1-2-3-6-10-11-13-16-17-18P7: 1-2-3-6-10-11-12-13-16-17-18P8: 1-2-3-6-10-11-12-15-16-17-18要点:从较短路径顺序增加每个分支尽可能走一次4.设计测试用例,按照表1的形式,设计用例。

表1:用例设计表。

软件测试判断三角形形状白盒测试黑盒测试

软件测试判断三角形形状白盒测试黑盒测试

淮海工学院计算机工程学院实验报告书课程名:《软件工程导论》题目:软件测试学号: 511020825姓名:薛思雨一、实验目的与要求1、掌握软件测试2、掌握白盒测试方法3、掌握黑盒测试方法(边界值分析和等价类划分)4、掌握自动化测试软件和方法二、实验内容或题目1)试画出:给定四边形的四条边,判断这个四边形是普通四边形、平等四边形、菱形的流程图,给出详细设计结果与C语言代码,对其使用白盒和黑盒测试技术分别设计测试用例(包括所有白盒测试的覆盖、黑盒测试的边界值分析与等价类划分)。

然后,使用测试用例进行实际测试,并给出测试结果;(或输入三条边,判断三条边组成的图形是一般三角形、等腰三角形、直角三角形、等边三角形,亦或不能构成三角形,其它要求同四边形)2)了解一些典型的自动化测试软件和方法,建议有条件可下载、安装Mercury Interactive公司的负载测试工具LoadRunner、功能测试工具WinRunner和测试管理工具TestDirector;IBM-Rational公司的测试套件Rational Suite TestStudio的Rational Robot、Rational TestManagerhe、Rational Quantify等工具,了解软件的使用方法。

3) 课内认真完成实验报告,禁止抄袭。

三、实验步骤与源程序第一题:1. 根据题目画流程图核心流程图:源代码:#include<stdio.h>void main(void){int a,b,c,k;printf("请输入三角形的三边长(0-100):");scanf("%d %d %d",&a,&b,&c);if((a>=1&&a<=100)&&(b>=1&&b<=100)&&(c>=1&&c<=100)) {if((a+b>c)&&(a+c>b)&&(b+c>a)){if((a==b&&b!=c)||(a==c&&c!=b)||(b==c&&a!=b))k=1;if(a==b&&a==c)k=2;if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(c*c+b*b==a*a))k=3;switch(k){case 1:printf("等腰三角形\n");break;case 2:printf("等边三角形\n");break;case 3:printf("直角三角形\n");break;default:printf("一般三角形\n");break;}}elseprintf("不能构成三角形\n");}elseprintf("警告:无效输入!!\n");}第二题:1.打开虚拟机,启动Windows XP Professional。

白盒(三角形)

白盒(三角形)

实验4 三角形问题的白盒测试一、实验目的:通过实验掌握白盒测试技术,能够使用语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖和条件组合覆盖设计测试用例。

二、实验内容及要求1、根据实验一的三角形问题编写程序;2、画出程序流程图,分析并确定程序分支;3、设计分别满足语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖和条件组合覆盖的测试用例;4、用测试用例对程序进行测试,记录测试结果,并对结果进行分析,如果存在缺陷则修改程序,继续测试;1、根据实验一的三角形问题编写程序;using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Text.RegularExpressions;namespace三{public partial class Form1 : Form{public Form1(){InitializeComponent();}private class TT{public bool b(string s){string pattern = "^[0-9]*$";Regex rx = new Regex(pattern);return rx.IsMatch(s);}}private void button1_Click_1(object sender, EventArgs e){if (textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == ""){MessageBox.Show("边长不能为空!!", "警告");}else{TT t = new TT();string a = textBox1.Text;string b = textBox2.Text;string c = textBox3.Text;if (!t.b(a) || !t.b(b) || !t.b(c)){MessageBox.Show("只能输入1到100间的数字!!", "警告");textBox1.Text = "";textBox2.Text = "";textBox3.Text = "";textBox1.Focus();}else{int a1 = int.Parse(a);int b1 = int.Parse(b);int c1 = int.Parse(c);if (a1 > 100 || a1 <= 0 || b1 > 100 || b1 <= 0 || c1 > 100 || c1 <= 0) {MessageBox.Show("只能输入1到100间的数字!!", "警告");textBox1.Text = "";textBox2.Text = "";textBox3.Text = "";textBox1.Focus();}else{if (a1 >= b1 + c1 || b1 >= a1 + c1 || c1 >= a1 + b1){label4.Text = "不是三角形";}else{if ((a1 * a1 == b1 * b1 + c1 * c1) || (b1 * b1 == a1 * a1 + c1 * c1) || (c1 * c1 == a1 * a1 + b1 * b1)){label4.Text = "直角三角形";}else{if (a1 == b1 && b1 == c1 && a1 == c1){label4.Text = "等边三角形";}else if (a1 == b1 || b1 == c1 || a1 == c1) {label4.Text = "等腰三角形";}else{label4.Text = "普通三角形";}}}}}}}}}2、画出程序流程图,分析并确定程序分支;3、设计分别满足语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖和条件组合覆盖的测试用例。

实验六_三角形问题的基本路径测试

实验六_三角形问题的基本路径测试

实验六三角形问题的基本路径测试一、实验目的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填写)。

软件测试六种白盒子测试方法

软件测试六种白盒子测试方法

白盒测试的优缺点
1. 优点
·迫使测试人员去仔细思考软件的实现
·可以检测代码中的每条分支和路径
·揭示隐藏在代码中的错误
·对代码的测试比较彻底
·最优化
2. 缺点
·昂贵
·无法检测代码中遗漏的路径和数据敏感性错误
·不验证规格的正确性
六种覆盖方法
首先为了下文的举例描述方便,这里先给出一张程序流程图。(本文以1995年软件设计师考试的一道考试题目为例,图中红色字母代表程序执行路径)。
六种白盒子测试方法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组...
白盒测试的概述
由于逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。由于我们经常相信某逻辑路径不可能被执行, 而事实上,它可能在正常的情况下被执行。由于代码中的笔误是随机且无法杜绝的,因此我们要进行白盒测试。
第一步:确定测试策略。在本例中,对被测程序的功能有明确的要求,即:
(1)判断能否组成三角形;
(2)识别等边三角形;
Байду номын сангаас
(3)识别等腰三角形;
(4)识别任意三角形。因此可首先用黑盒法设计测试用例,然后用白盒法验证其完整性,必要时再进行补充。
第二步:根据本例的实际情况,在黑盒法中首先可用等价分类法划分输入的等价类,然后用边界值分析法和猜错法作补充。
·在上下边界及可操作范围内运行所有循环
·检查内部数据结构以确保其有效性
白盒测试的目的:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。
白盒测试的特点:依据软件设计说明书进行测试、对程序内部细节的严密检验、针对特定条件设计测试用例、对软件的逻辑路径进行覆盖测试。

三角形程序白盒测试

三角形程序白盒测试

三角形判断问题白盒测试一、问题描述针对三角形的形状判定程序设计测试用例,进行白盒测试。

假定这里构成三角形的边取值只能为整数。

程序判定的类型有:二、实验目的(1)掌握白盒测试的原理;(2)掌握使用逻辑覆盖和基路径测试等设计测试用例的方法;(3)掌握单元测试的方法步骤;(4)掌握控制流图的画法和通过控制流图找出基路径的方法。

三、实验环境平台:win10 64位环境:Eclipse(neon版本)四、实验过程(一)编写判定三角形类别的程序:核心代码:public static int DefiniteShape(int a,int b,int c) {if ((a+b>c)&&(b+c>a)&&(a+c>b)){//判断可以构成三角形if((b==c)&&(a==b)){return 1;//等边三角形}if((a==b)||(b==c)||(c==a)){return 2;//等腰三角形}return 3;//普通三角形}return 0;//非三角形}主函数调用代码:shape = DefiniteShape(a,b,c);if(shape==0){System.out.println("输入数据不能构成三角形!");}else if(shape==1){System.out.println("等边三角形!");}else if(shape==2){System.out.println("等腰三角形!");}else if(shape==3){System.out.println("普通三角形!");}(二)画出程序流程图:(三)画出控制流图:(四)逻辑覆盖测试:条件有:1)a为数字2)b为数字3)c为数字4)a为整数5)b为整数6)c为整数7)a+b>c8)b+c>a9)a+c>b10)a==b11)b==c12)a==c所有测试用例(覆盖率达到100%)五、编写测试代码基本思路:将测试用例存入txt文件→读文件→判断→输出(注:文档可能无法思考全面,请浏览后下载,供参考。

软件测试实验二(三角形白盒测试)报告

软件测试实验二(三角形白盒测试)报告

实验二测试报告一、核心程序代码/** 判断三角形的类 */public class TriangleTestMethod {/** 判断三角形的种类。

参数a, b, c分别为三角形的三边,* 返回的参数值为0,表示非三角形;* 为1,表示普通三角形;* 为2,表示等腰三角形;* 为3,表示等边三角形。

*/public static int comfirm(int a, int b, int c) {if((a + b > c) && (b + c > a) && (a + c > b)) { // 判断为三角形if((a == b) && (b ==c)) // 判断为等边三角形return 3;if((a == b) || (b == c) || (a == c)) // 判断为等腰三角形return 2;else // 判断为普通三角形return 1;}else { // 为非三角形return 0;}}}二、程序流程图①Na +b >c && b + c> a && a + c > bY②Ya ==b && b ==cN④a ==b || b ==c ||a == cN Y③⑥⑦⑤Return 3 Return 1 Return 2 Return 0Exit三、测试用例1.语句覆盖测试用例:输入期望输出覆盖对象测试结果Case1 Case2 Case3 Case4 a=1, b=2, c=3a=3, b=4, c=5123①,⑤0123①,②,④,⑥①,②,④,⑦①,②,③a=3, b=3, c=4a=3, b=4, c=52.判定覆盖测试用例输入期望输出覆盖对象测试结果Case11 Case12 Case13 Case14 a=1, b=2, c=3a=3, b=4, c=5a=3, b=3, c=4a=3, b=4, c=5123①,⑤0123①,②,④,⑥①,②,④,⑦①,②,③3.条件覆盖测试用例输入期望输出覆盖对象测试结果Case5 Case6 Case7 Case8 a=1, b=6, c=7a=7, b=1, c=6a=1, b=7, c=6a=3, b=3, c=42F1, T2, T3 02T1, F2, T3T1, T2, F3T1, T2, T3, T4,F5, T6, F7, F8T1, T2, T3, F4,F5, F6, F7, T8T1, T2, T3, F4,T5, F6, T7, F8Case9 a=3, b=4, c=3a=4, b=3, c=3 2222Case104.条件-判定覆盖测试用例输入期望输出覆盖对象测试结果Case15 Case16 Case17 Case18 a=1, b=6, c=7 0 F1, T2, T3 0(①,②)a=7, b=1, c=6a=1, b=7, c=6a=3, b=3, c=42T1, F2, T3 02(①,②))T1, T2, F3(①,②)T1, T2, T3, T4,F5, T6, F7, F8(①,②,③,⑦)F T1, T2, T3, 4,F5, F6, F7, T8(①,②,③,⑦)T1, T2, T3, F4,T5, F6, T7, F8(①,②,③,⑦)F1, T2, T3Case19 Case20 a=3, b=4, c=3a=4, b=3, c=32222Case21 Case22 a=3, b=3, c=3a=3, b=4, c=53131(①,②,③)T1, F2, T3(①,②,④,⑥)5.条件组合覆盖测试用例输入期望输出覆盖对象F1, T2, T3T1, F2, T3T1, T2, F2T1, T2, T3,T4, T5 测试结果Case23 Case24 Case25 Case26 a=1, b=6, c=7 033 a=7, b=6, c=1a=1, b=7, c=6a=3, b=3, c=3Case27 a=3, b=3, c=4 2 T1, T2, T3,T4, F5,2Welcome To Download !!!欢迎您的下载,资料仅供参考!。

白盒测试实验报告三角形

白盒测试实验报告三角形

白盒测试实验报告三角形白盒测试实验报告——三角形一、实验目的(1)巩固白盒测试技术,能熟练应用控制流覆盖方法设计测试用例;(2)学习测试用例的书写。

二、实验内容判断三角形类型输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。

要求输入三个整数a、b、c,必须满足以下条件:1≤a≤200;1≤b≤200;1≤c≤200。

要求:为测试该程序的方便,请将三角形判断的算法尽量放入一个函数中。

(1)画出程序的流图;(2)分别以语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖设计测试用例,并写出每个测试用例的执行路径要求:设计测试用例时,每种覆盖方法的覆盖率应尽可能达到100% (3)请采用基本路径测试方法对程序进行测试,并给出具体测试用例信息。

(4)通过你的测试,请总结你所使用测试方法发现的Bug。

三、实验要求(1)根据题目要求编写测试用例(2)撰写实验报告(3)有关的实现程序请附到实验报告中(4)实验报告命名规则:学号后两位+姓名_白盒实验? 四、实验报告(1)程序代码:1. import java.io.*; public class sanjiaoxing { private static int x; private static int y; private static int z;2. public static void main(String arg[]) { int v=0; System.out.println(“请输入三角形第一条边的长!“); x=getside(v); System.out.println(“请输入三角形第二条边的长!“); y=getside(v); System.out.println(“请输入三角形第三条边的长!“); z=getside(v); ifzhijiaotriangle(); }3. public static int getside(int v) { BufferedReader input=new BufferedReader(new InputStreamReader(System.in)); try{ v=Integer.parseInt(input.readLine()); } catch(IOException e){} return v; } 4 public static void ifzhijiaotriangle() { if((x0x200)(y0y200)(z0z200)) { 5 if(x+y=z||x+z=y||z+y=x) { 6.System.out.println(“您输入的三边不能构成三角形“); } 7. else{ System.out.println(“一般三角形“); } 8. else if(x==y||x==z||y==z) { 9 if(x==yy==z) 10. System.out.println(“您输入的三角形是等边三角形“); 12.else System.out.println(“您输入的三角形是等腰三角形“); } } 11. else{ System.out.println(“超出“); } } } (2)程序的流图:(3)语句覆盖;编号测试用例执行路径覆盖语句预输出结果1 (0,10,20) a,c,d 1,2,3,4,11,13 超出2 (10,20,35) a,b,e,f 1,2,3,4,5,6,13 不能构成三角形 3 (3,3,5) a,b,g,j,k,l 1,2,3,4,5,7,9,10,13 等腰三角形 4 (3,3,3) a,b,g,j,m,n 1,2,3,4,5,7,9,12,13 等边三角形 5 (10,20,25) a,b,g,h,i 1,2,3,4,5,7,8,13 一般三角形(4)判定覆盖;编号测试用例执行路径覆盖判定预输出结果 1 (0,10,20)a,c,d F1 超出 2 (10,20,35)a,b,e,f T1,F2 不能构成三角形 3 (10,20,25)a,b,g,h,i T1,T2,F3 一般三角形4 (3,3,5)a,b,g,j,k,l T1,T2,T3,F4 等腰三角形 5 (3,3,3)a,b,g,j,m,n T1,T2,T3,T4 等边三角形(5)条件覆盖:条件符号a=1 a=200 1T b=1 b=200 2T c=1 c=200 3T a+bc 4T a+cb 5T b+ca 6T a==b 7T b==c 8T a==c 9T 编号测试用例执行路径覆盖条件预输出结果 1 (0,10,20)a,c,d -1T,2T,3T 超出2 (10,20,35)a,b,e,f 1T,2T,3T,-4T,5T,6T 不是三角形 3 (10,35,20) a,b,e,f 1T,2T,3T,4T,-5T,6T 不是三角形 4 (35,10,20) a,b,e,f 1T,2T,3T,4T,5T,-6T 不是三角形 5 (10,20,25) a,b,g,h,i 1T,2T,3T,4T,5T,6T,-7T,-8T,-9T 一般三角形 6 (3,3,3) a,b,g,j,m,n 1T,2T,3T,4T,5T,6T,7T,8T,9T 等边三角形7 (3,3,5) a,b,g,j,k,l 1T,2T,3T,4T,5T,6T,7T,-8T,-9T等腰三角形(6)判定/条件覆盖;编号测试用例执行路径覆盖条件覆盖判定预输出结果1 (0,10,20)a,c,d -1T,2T,3T F1 超出2 (10,20,35)a,b,e,f 1T,2T,3T,-4T,5T,6T T1,F2 不能构成三角形3 (10,35,20) a,b,e,f 1T,2T,3T,4T,-5T,6T T1,F2 不能构成三角形 4 (35,10,20)a,b,e,f 1T,2T,3T,4T,5T,-6T T1,F2 不能构成三角形 5 (10,20,25) a,b,g,h,i 1T,2T,3T,4T,5T,6T,-7T,-8T,-9T T1,T2,F3 一般三角形6 (3,3,3)a,b,g,j,m,n 1T,2T,3T,4T,5T,6T,7T,8T,9T T1,T2,T3,T4 等边三角形7 (3,3,5)a,b,g,j,k,l 1T,2T,3T,4T,5T,6T,7T,-8T,-9T T1,T2,T3,F4 等腰三角形(7)组合覆盖;编号测试用例执行路径覆盖条件预输出结果1 (0,201,201) a,c,d -1T,-2T,-3T 超出2 (201,201,1)a,c,d -1T,-1T,3T 超出3 (201,2,201)a,c,d -1T,2T,-3T 超出4 (2,201,202)a,c,d 1T,-2T,-3T 超出5 (1,2,201) a,c,d 1T,2T,-3T 超出6 (1,201,2) a,c,d 1T,-2T,3T 超出7 (201,1,2) a,c,d -1T,2T,-3T 超出8 (10,20,35)a,b,e,f 1T,2T,3T,-4T,5T,6T 不能构成三角形9 (10,35,20)a,b,e,f 1T,2T,3T,4T,-5T,6T 不能构成三角形10 (35,10,20)a,b,e,f 1T,2T,3T,4T,5T,-6T 不能构成三角形11 (3,4,5) a,b,g,h,i 1T,2T,3T,4T,5T,6T,-7T,-8T,-9T 一般三角形12 (3,3,5)a,b,g,j,k,l 1T,2T,3T,4T,5T,6T,7T,-8T,-9T 等腰三角形13 (5,3,3) a,b,g,j,k,l 1T,2T,3T,4T,5T,6T,-7T,8T,-9T 等腰三角形14 (3,5,3) a,b,g,j,k,l 1T,2T,3T,4T,5T,6T,-7T,-8T,9T 等腰三角形15 (3,3,3) a,b,g,j,m,n 1T,2T,3T,4T,5T,6T,7T,8T,9T 等边三角形(8)基本路径覆盖;经过计算,程序流图的环复杂度为5,因此基本路径有5条编号测试用例基本路径预输出结果 1 (10,20,35)a,b,c,f 不能构成三角形 2 (3,4,5)a,b,g,h,i 一般三角形 3 (3,3,5) a,b,g,j,k,l 等腰三角形 4 (3,3,3) a,b,g,j,m,n 等边三角形 5 (0,201,201) a,c,d 超出附录:测试用例书写格式(语句覆盖为例)测试用例表编号测试用例执行路径覆盖条件覆盖语句预输出结果 1 (0,10,20) 2。

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

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");
else
printf("这个图为一般三角形\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-13
5)根据上述测试用例执行程序,对比实际运行结果和预期运行结果,结果比对最
6)对以上实验结果进行适当地分析与总结。

本次实验主要是运用白盒测试的方法,设计测试用例。

白盒测试主要包括语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖和路径覆盖。

白盒测试试图穷举路径测试,一般来说,穷举路径测试是不可能的,即使每条路径都测试了,也还是有可能出错。

通过本次实验,还了解了各种覆盖的区别与联系。

相关文档
最新文档