三角形白盒测试
- 格式:docx
- 大小:149.67 KB
- 文档页数:9
三角形白盒测试要求要求:,其他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)对以上实验结果进行适当地分析与总结。
黑盒测试实验报告一、三角形等价类分析二、实验源代码import java.io.*;class Trigon{static private double a,b,c;static public void main(String[] sss){try{InputStream in=System.in;InputStreamReader inRead=new InputStreamReader(in); BufferedReader read=new BufferedReader(inRead); System.out.println("输入三边值,每个值输入后回车"); a=Double.valueOf(read.readLine());b=Double.valueOf(read.readLine());c=Double.valueOf(read.readLine());}catch(IOException e){System.out.println("出现异常!");System.exit(0);}if(a<1 || a>100 || b<1 || b>100||c<1 ||c>100){System.out.println("出现异常!");}else{if(a+b<c || a+c<b || b+c<a){System.out.println("你输入的不能构成三角形");}else if(a==b || a==c || b==c){if(a==b && b==c) System.out.println("是等边");else System.out.println("是等腰");}else System.out.println("一般的三角形");}}}三、实验测试用例截图(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)(11)(12)(13)(14)(15)注:所用软件JavaApplicationl-NetBeans白盒测试实验报告一、流程图二、设计测试用例(1)语句覆盖Test 1 2 1 5 OACI 你的输入不能构成三角形Test 2 3 4 5 OADEI 一般的三角形Test 3 3 3 4 OADFGI 是等腰Test 4 3 3 3 OADFHI 是等边Test 5 0 1 2 OBI 出现异常(2)判定覆盖(分支覆盖)a b c 路径输出结果Test 1 2 1 5 OACI 你的输入不能构成三角形Test 2 3 4 5 OADEI 一般的三角形Test 3 3 3 4 OADFGI 是等腰Test 4 3 3 3 OADFHI 是等边Test 5 0 1 2 OBI 出现异常(3)条件覆盖Test 1 2 1 5 OACI 你的输入不能构成三角形Test 2 3 4 5 OADEI 一般的三角形Test 3 3 3 4 OADFGI 是等腰Test 4 3 3 3 OADFHI 是等边Test 5 0 0 0 OBI 出现异常(4)判定/条件覆盖a b c 路径输出结果Test 1 2 1 5 OACI 你的输入不能构成三角形Test2 5 2 1 OACI 你的输入不能构成三角形Test 3 2 5 1 OACI 你的输入不能构成三角形Test 4 3 4 5 OADEI 一般的三角形Test 5 3 3 4 OADFGI 是等腰Test 6 4 3 3 OADFGI 是等腰Test 7 3 4 3 OADFGI 是等腰Test 8 3 3 3 OADFHI 是等边Test 9 0 1 2 OBI 出现异常Test 10 2 0 1 OBI 出现异常Test11 1 2 0 OBI 出现异常(5)路径覆盖a b c 路径输出结果Test 1 2 1 5 OACI 你的输入不能构成三角形Test 2 3 4 5 OADEI 一般的三角形Test 3 3 3 4 OADFGI 是等腰Test 4 3 3 3 OADFHI 是等边Test 5 0 1 2 OBI 出现异常。
辽宁工程技术大学上机实验报告实验分析续开始(a+b>c)&&(a+c>b)&&(b+c>a)a==b || a==c || b==cYa==c && a==b && b==cY不是三角形N普通三角形N等腰三角形N等边三角形Y结束abcdefg12345678图1-1 三角形组成问题程序流程图一.判定覆盖法1.判定覆盖:设计足够多的测试用例,使得程序中的每一个判断至少获得一次“真”和一次“假”,即使得程序流程图中的每一个真假分支至少被执行一次。
(1)测试用例表1-1 判定覆盖测试用例测试用例 a b c 判断语句1 判断语句2 判断语句3 执行路径测试用例1 5 5 5 真(T)真(T)真(T)abcd 测试用例2 2 4 1 假(F)——ag 测试用例3 2 4 5 真(T)假(F)—abe 测试用例4 6 6 2 真(T)真(T)假(F)abcf (2)测试用例运行结果截图测试用例1图1-2测试用例1实验分析续测试用例2图1-3测试用例2测试用例3图1-4测试用例3测试用例4图1-5测试用例4二.利用路径覆盖分析三角形组成问题基本路径测试方法(1)控制流图12654378图2-1 三角形组成的控制流图(2)环形复杂度方法一:V(G)=3(封闭区域)+1=4方法二:V(G)=10(边数)—8(节点)+2=4方法三:V(G)=3(判定节点1、2、3)+1=4实验分析续(3)独立路径根据上面的计算结果,可导出基本路径集,列出程序的独立路径,可得出程序段的的基本路径集中有4条独立路径,每条独立路径为一个独立的测试用例。
路径如下。
路径1:①→②→③→⑤→⑧路径2:①→②→③→⑥→⑧路径3:①→②→④→⑧路径4:①→⑦→⑧(4)设计测试用例根据(3)中的独立路径,设计测试用例输入数据和预期输出。
设计的测试用例如表2-1所示表2-1 设计的测试用例用例名称输入数据预期输出测试用例1 a=6 b=6 c=6 等边三角形测试用例2 a=8 b=8 c=3 等腰三角形测试用例3 a=2 b=3 c=4 普通三角形测试用例4 a=3 b=5 c=1 不是三角形(5)测试用例运行结果截图测试用例1图2-2测试用例1测试用例2图2-3测试用例2测试用例3图2-4测试用例3测试用例4图2-5测试用例4教师评语。
辽宁工程技术大学上机实验报告结束 (8图1-1三角形组成问题程序流程图 •判定覆盖法1.判定覆盖:设计足够多的测试用例,使得程序中的每一个判断至少获得一次 真”和一次假”, 即使得程序流程图中的每一个真假分支至少被执行一次。
(1 )测试用例表1-1判定覆盖测试用例测试用例a bc 判断语句1 判断语句2 判断语句3 执行路径测试用例 1 5 5 5 真 (T) 真(T )「真(T ) abcd 测试用例 2 2 4 1 假 (F) 一 一 ag 测试用例 3 2 4 5 真 (T) 假(F ): 一 abe 测试用例 4 6 62真 (T) 真(T ) 假(F ) abcf(2 )测试用例运行结果截图测试用例1翱寧萨数并用空格隔卅名名署 Press any key to 匚cintiriiiE图1-2测试用例1开始实验 分析 续普通三角形 (a+b>c)&&(a+c>b)&&(b+c>a)Ca==c && a==b && b==cNf不是三角形等边三角形测试用例2三鬲萨用工停2 4 1^ess ari^ key to caintInue图1-3测试用例2测试用例3曙齒萨数并用空格隔乐2 4 £Press any key to continue图1-4测试用例3测试用例4ppess arai| key ta cantinue图1-5测试用例4 二.利用路径覆盖分析三角形组成问题 基本路径测试方法 (1 )控制流图图2-1三角形组成的控制流图(2)环形复杂度方法一:V (G )=3 (圭寸闭区域)+仁4 方法二:V (G ) =10 (边数)一8 (节点)+2=4 方法三:V (G ) =3 (判定节点1、2、3) +仁4实验 分析 续(3 )独立路径根据上面的计算结果,可导出基本路径集,列出程序的独立路径,可得出程序段 的的基本路径集中有 4条独立路径,每条独立路径为一个独立的测试用例。
白盒测试实验报告_三角形实验目的:本实验旨在通过白盒测试的方式对一个三角形程序进行测试,并通过测试结果来验证程序的正确性。
实验原理:三角形是由三条边组成的图形,根据三个边的长度的不同,可以分为三种形态的三角形:等边三角形、等腰三角形和普通三角形。
在这个实验中,我们需要测试一个程序,该程序用于判断给定的三条边是否能够构成一个三角形,并能够进一步判断构成的三角形是何种类型。
实验步骤:1.确定测试用例,包括各种可能的三角形情况,如等边三角形、等腰三角形、普通三角形以及不能构成三角形的情况。
2.编写测试代码,使用白盒测试的方式进行测试。
3.运行测试代码,记录测试结果。
4.分析测试结果,验证程序的正确性。
实验结果:经过测试,测试结果如下:1.测试用例1:输入边长为3、3、3,预期输出为等边三角形,实际输出为等边三角形,测试通过。
2.测试用例2:输入边长为3、4、4,预期输出为等腰三角形,实际输出为等腰三角形,测试通过。
3.测试用例3:输入边长为2、3、4,预期输出为普通三角形,实际输出为普通三角形,测试通过。
4.测试用例4:输入边长为1、2、3,预期输出为不能构成三角形,实际输出为不能构成三角形,测试通过。
实验结论:通过对三角形程序的白盒测试,我们验证了程序的正确性,并确认程序能够正确判断三条边是否能够构成一个三角形,以及进一步判断构成的三角形是何种类型的。
在我们的测试中,程序完全按照我们的预期输出结果,没有发现任何错误。
因此,我们可以认为该程序在给定的测试用例下能够正确地判断三角形,并输出正确的三角形类型。
实验感想:通过本次实验,我深刻理解了白盒测试的重要性。
通过运行测试代码,并仔细分析测试结果,我可以直观地看到程序的运行情况,从而判断程序的正确性。
在编写测试用例时,我尽量覆盖了各种可能的情况,以确保测试的全面性和准确性。
同时,我也意识到了编写高质量代码的重要性,只有代码本身没有错误,才能保证测试的准确性。
实验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、设计分别满足语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖和条件组合覆盖的测试用例。
辽宁工程技术大学上机实验报告成绩实验名称实验四三角形组成问题程序的白盒测试3开始a1(a+b>c)&&(a+c>b)&&(b+c>a)Y2bNa==b || a==c || b==c ge Y c N3a==c && a==b && b==c f N实验4567Y d分析续不是三角形等边三角形普通三角形等腰三角形8结束图1-1 三角形组成问题程序流程图一. 判定覆盖法1.判定覆盖:设计足够多的测试用例,使得程序中的每一个判断至少获得一次“真”和一次“假”,即使得程序流程图中的每一个真假分支至少被执行一次。
(1)测试用例表1-1 判定覆盖测试用例测试用例a b c 判断语句1 判断语句2 判断语句3 执行路径abcd 测试用例1 5 真(T真(T真())T)5 5 测试用例2 2 F假()——ag 4 1测试用例3 2 4 T真()F假()—abe 5测试用例4 6 abcf6 2)T真(T真()F假()(2)测试用例运行结果截图测试用例1图1-2测试用例1测试用例2图1-3测试用例2图1-4测试用例3测试用例 4图1-5测试用例4二.利用路径覆盖分析三角形组成问题基本路径测试方法实验(分析1)控制流图续12345678三角形组成的控制流图图2-1)环形复杂度(2+1=4=3(封闭区域)V (G)方法一:+2=4 (节点)(边数)—8)方法二:V(G=10+1=4 )3、2、1(判定节点=3)G(V方法三:续图2-2测试用例1 测试用例2图2-3测试用例2测试用例3图2-4测试用例3测试用例4图2-5测试用例4教师评语。
1. float a,b,c;2. printf("请输入三角形三边长度:\n");3. scanf("%f,%f,%f",&a,&b,&c);4. if(a<1||a>200)5. printf("输入数值超出范围\n"); //超出取值范围6. else if(b<1||b>200)7. printf("输入数值超出范围\n");8. else if(c<1||c>200)9. printf("输入数值超出范围\n");10. else if(((a+b)>c)&&((b-c)<a))11. {12. if((a==b)&&(b==c))13. printf("等边三角形\n");14. else if((a*a+b*b-c*c)<0.001||(b*b+c*c-a*a)<0.001||(c*c+a*a-b*b)<0.001){15. if(a==b||b==c||c==a)16. printf("等腰直角三角形\n");17. else18. printf("直角三角形\n");19. }20. else if(a==b||b==c||c==a)21. printf("等腰三角形\n");22. else23. printf("一般三角形\n");24. }25. else26. printf("不是三角形\n");1:语句覆盖序号输入预期输出实际输出测试结果覆盖语句A B C1 0 3 4 输入超出输入超出Pass 2,3,4,52 3 0 5 输入超出输入超出Pass 2,3,4,6,,73 34 0 输入超出输入超出Pass 2,3,4,6,8,94 5 5 5 等边三角形等边三角形Pass 2,3,4,6,8,10,12,135 3 4 5 直角三角形直角三角形Pass 2,3,4,6,8,10,1214,15,186 1 1 1.414 等腰直角三角形等腰直角三角形Pass 2,3,4,6,8,10,12,14,15,167 3 3 5 等腰三角形等腰三角形Pass 2,3,4,6,8,10,12,14,208 4 7 8 一般三角形一般三角形Pass 2,3,4,6,8,10,12,14,20,239 1 2 3 不是三角形不是三角形Pass 2,3,4,6,8,10,262:判定覆盖语句4:t1,f1 语句6:t2,f2 语句8:t3,f3 语句10:t4,f4 语句12:t5,f5 语句14:t6,f6 语句15:t7,f7 语句20:t8,f8语句4:t1,f1 t2,f2 语句6:t3,f3 t4,f4 语句8:t5,f5 t6,f6 语句10:t7,f7 t8,f8 语句12:t9,f9 t10,f10语句14:t11,f11 t12,f12 t13,f13 语句15:t14,f14 t15,f15 t16,f16 语句20:t17,f17 t18,f18 t19,f193:路径覆盖序号 输入 预期输出 实际输出 测试结果 覆盖判定A B C 1 0 3 4 输入超出 输入超出 Pass t1 2 3 0 5 输入超出 输入超出 Pass F1 t2 3 3 4 0 输入超出 输入超出 Pass F1 f2 t3 4 5 5 5 等边三角形 等边三角形 Pass F1 f2 f3 t4 t5 5 3 4 5 直角三角形 直角三角形 Pass F1,f2,f3,t4,t4t6,f7 6 1 1 1.414 等腰直角三角形 等腰直角三角形 Pass F1 f2 f3,t4 f5t6,t7 7 3 3 5 等腰三角形 等腰三角形 Pass F1 f2 f3 f5 f6t8 8 4 7 8 一般三角形 一般三角形 Pass F1 f2 f3,f5 f6f8 9 123不是三角形不是三角形PassF1 f2 f3 f4序号输入预期输出实际输出测试结果覆盖路径A B C1 0 3 4 输入超出输入超出Pass 2-3-4-52 3 0 5 输入超出输入超出Pass 2-3-4-6-73 34 0 输入超出输入超出Pass 2-3-4-6-8-94555等边三角形等边三角形Pass 2-3-4-6-8-10-12-135345直角三角形直角三角形Pass 2-3-4-6-8-10-1 2-14-15-186111.414等腰直角三角形等腰直角三角形Pass2-3-4-6-8-10-12-14-15-167335等腰三角形等腰三角形Pass 2-3-4-6-8-10-1 2-14-20-218 4 7 8 一般三角形一般三角形Pass 2-3-4-6-8-10-1 2-14-20-3-239 1 2 3 不是三角形不是三角形Pass 2-3-4-6-8-10-12-134:基路径覆盖A1:A-B-D-F-J-H-J-L-M-N A2:A-B-CA3: A-B-D-EA4: A-B-D-F-GA5: A-B-D-F-H-IA6: A-B-D-F-H-J-KA7: A-B-D-F-H-J-L-P-QA8: A-B-D-F-H-J-L-M-O A9: A-B-D-F-H-J-L-P-R序号输入预期输出实际输出测试结果覆盖的基路径A B C1 0 3 4 输入超出输入超出Pass A22 3 0 5 输入超出输入超出Pass A33 34 0 输入超出输入超出Pass A4 4555等边三角形等边三角形Pass A5 5345直角三角形直角三角形Pass A86111.414等腰直角三角形等腰直角三角形Pass A17335等腰三角形等腰三角形Pass A7 8 4 7 8 一般三角形一般三角形Pass A99 1 2 3 不是三角形不是三角形Pass A6。
实验报告黑龙江大学教务处测试计划(GB8567——88)1引言1.1编写目的掌握软件测试技术中白盒测试方法;掌握如何进行单元测试。
1.2背景说明:a.Window s XP,VC++;b.阅读客户的需求说明文档;1.3定义a:三角型的第一条边b:三角型的第二条边c:三角型的第三条边普通三角形:三边都不相等的三角形等腰三角形:有任意两边相等的三角形等边三角形:三边相等的三角形1.4参考资料1.《软件测试教程》.宫云战.机械工业出版社2008年9月2.《软件测试技术》.曲朝阳.中国水利水电出版社2006年8月2计划2.1软件说明输入三个整数 a , b , c 分别作为三边的边长构成三角形.通过程序判定所构成的三角形的类型,当此三角形为一般三角形,等腰三角形及等边三角形时,分别作计算:(1)整数(2)三个数(3)非零数(4)正数(5)两边之和大于第三边(6)等腰(7)等边如果 a , b , c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一:如果不满足条件(5),则程序输出为" 非三角形" .如果三条边相等即满足条件(7),则程序输出为" 等边三角形" .如果只有两条边相等,即满足条件(6),则程序输出为" 等腰三角形" .如果三条边都不相等,则程序输出为"一般三角形"2.2测试内容测试内容:1.import java.util.Scanne r;2.public classabc {3. public static void main(String args[]) {4. String str1 = "";5. String str2 = "";6. String str3 = "";7. int a, b, c;8. Scanne r input= new Scanne r(System.in);9. System.out.printf("请输入三角形的三条边,以空格换行:\n");10 str1 = input.next();11. str2 = input.next();12 str3 = input.next();13. if (str1.matche s("\\d+") && str2.matche s("\\d+")14 && str3.matche s("\\d+")) {15 a = Intege r.parseI nt(str1);16 b = Intege r.parseI nt(str2);17 c = Intege r.parseI nt(str3);18 if (a + b > c && a + c > b && b + c > a) {19 if (a == b || a == c || b == c) {20 if (b == c && a == c)21 System.out.printf("等边三角形\n");22 else23 System.out.printf("等腰三角形\n");24 } else25 System.out.printf("一般三角形\n");26 } else {27 System.out.printf("不构成三角形\n");28 }29 } else {30 System.out.print("请输入整型数字");31 }32 }33 }2.3测试12.3.1进度安排预计3天测试完毕;2.3.2条件Window s XP,VC++;2.3.3测试资料a.《软件测试教程》.宫云战.机械工业出版社2008年9月b.《软件测试技术》.曲朝阳.中国水利水电出版社2006年8月2.3.4测试培训《软件测试》第4章白盒测试及其用例的设计3测试设计说明3.1测试1此项测试采用白盒测试方法来测试该功能3.1.1控制程序流程图如下:数据流图如下:环域复杂度:5(4个判定条件)路径1:13,18,19,20,21,33;路径2:13,18,19,20,23,33;路径3:13,18,19,25,33;路径4:13,18,27,33;路径5:13,30,333.1.2输入测试用例:编号输入的a,b,c值预期输出1 a=3,b=3,c=3; 等边三角形2 a=3,b=3,c=4; 等腰三角形3 a=3,b=4,c=5; 一般三角形4 a=1,b=2,c=3 不构成三角形5 a=asb,b=2,b=4 类型不是数字3.1.3过程此程序经过编译链接后无错误提示,即可运行,手动输入上面各组数据,观察结果4评价准则4.1范围此次测试利用白盒测试中的路径测试方法建立了测试用例,虽然覆盖了所有的独立路径,但是没有覆盖所有的语句。
南华大学
计算机学院
实验报告
(2018 秋季学期)
课程名称软件验证与确认 A 实验名称白盒测试设计与实现
姓名学号
专业软件工程班级 2 班
地点8-606 教师楚燕婷
1 编写目的
输入三角形的三条边,判断三角形的类型,并返回三角形的详细类型
2 软件单元功能需求描述
设计判定三角形程序以及单元测试,完成对输入三个数值能否组成三角形的判
3 单元结构
列出核心部分源代码,并画出本单元的组织结构,分析包括本单元包括的属性、方法、输入/输出等。
流程图:
测试代码:
package timu;
import org.junit.Test; public class TestUnit {
public void calculator( double a, double b, double c){ if ( a<0|| b<0|| c<0) {
System. out .println( " 三角形边数不能为负数!");
}
// 能计算成三角形
else if (( a+b)> c&&(b+c)> a&&( c +a )> b) {
if ( a==b|| b== c || a==c) { if (( a ==b &&b== c &&a==c )) {
System. out .println( " 构成等边三角形!");
} else {
System. out .println( " 构成等腰三角形!" );
}
}
if (( a*a+b*b==c*c)||( a*a+c*c==b*b)||( c* c +b* b== a* a)) { if (( a==b|| b==c|| a==c)) {
System. out .println( " 构成等腰直角三角形!" );
} else
System. out .println( " 构成直角三角形!" );
}
else { System. out .print( " 能构成一般三角形!");
}
}
else
System. out .println( " 边数分别为:" +a+"," +b+"," +c+" 不能构成三角形!");
}
@Test public void Test01Unit() {
TestUnit t =new TestUnit();
t .calculator(-3, 4, 5);
t .calculator(2, 3, 3);
t .calculator(3, 3, 3);
t .calculator(3, 4, 5);
t .calculator(2, 6, 7);
t .calculator(1, 1, 2);
}
}
4 测试设计
该单元测试使用了判定覆盖以及条件判定覆盖,基本覆盖率为100%。
使用的是JAVA自带的Junit ,列举部分测试用例结果图。
结果图:
5 测试结果
5.1 测试用例
测试用例执行结果统计表
测试项测试用例号输入预计输出测试结果
基本路径的判定:如图所示。
Test13
Test14
Test15
a=-3,b=4,c
角形!
三角形边数三角形边数不
=5不能为负数!能为负数!
a=3,b=6,c=能构成一般三能构成一般三角
7角形!形!
a=95533,b=
2,c=95533
能构成一般
三角形!构成
等腰三角形
边数分别为:
98833.0,2.0,
95533.0 不能构成
三角形!ProcessOn 线条没法弯折,见谅)
6 错误统计
7 质量评估
该单元测试完好的完成了目标需求,并能判定三角形的具体类型,质量较好,但可以设计更好的单元结构使判断锐、钝等普通三角形,可以继续改进。
8 总结
本次实验良好的完成了目标单元测试功能,对于白盒测试有了更加确切的认知,有时不细心可能会误漏判定覆盖测试用例,需谨慎注意,力求100%覆盖,对于条件判定覆盖用例过多列举了部分。
需要更加详尽的改善对普通三角形的判定,会继续改进。