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

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

4.完成软件白盒测试技术中的逻辑覆盖测试应用设计实验。(理论考试重点内容实践)

三角形白盒测试要求要求:

1)自备C语言程序(可从C语言程序设计的教科书上摘录若干典型程序,其他C++、C#、Java程序均可);

#include

#include

#include

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)对以上实验结果进行适当地分析与总结。

本次实验主要是运用白盒测试的方法,设计测试用例。白盒测试主要包括语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖和路径覆盖。白盒测试试图穷举路径测试,一般来说,穷举路径测试是不可能的,即使每条路径都测试了,也还是有可能出错。通过本次实验,还了解了各种覆盖的区别与联系。

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

实验二测试报告 一、核心程序代码 /** 判断三角形的类 */ 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; } } }

二、程序流程图 ① N a + b > c && b + c > a && a + c > b Y ② Y a == b && b ==c N ④ a == b || b == c || a == c N Y ③⑥⑦⑤ Return 3 Return 1 Return 2 Return 0 Exit 三、测试用例 1.语句覆盖测试用例: 输入期望输出覆盖对象测试结果 Case1 Case2 Case3 Case4 a=1, b=2, c=3 a=3, b=4, c=5 1 2 3 ①,⑤0 1 2 3 ①,②,④,⑥ ①,②,④,⑦ ①,②,③ a=3, b=3, c=4 a=3, b=4, c=5 2.判定覆盖测试用例 输入期望输出覆盖对象测试结果 Case11 Case12 Case13 Case14 a=1, b=2, c=3 a=3, b=4, c=5 a=3, b=3, c=4 a=3, b=4, c=5 1 2 3 ①,⑤0 1 2 3 ①,②,④,⑥ ①,②,④,⑦ ①,②,③

软件测试三角形问题

辽宁工程技术大学上机实验报告

一?实验步骤 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

白盒测试的基本路径测试法

白盒测试的基本路径测试法 一、白盒测试的主要测试方法 1、代码检查法 2、静态结构分析法 3、静态质量度量法 4、逻辑覆盖法 5、基本路径测 试法(应用最广泛)6、域测试7、符号测试8、Z路径覆盖9、程序变异 二、基本路径测试法 1、定义:基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。 设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。 2、基本路径测试法的基本步骤 1) 程序的控制流图:描述程序控制流的一种图示方法。 2)程序圈复杂度:McCabe复杂性度量。从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确定程序中每个可执行语句至少执行一次所必须的测试用例数目的上界。 3)导出测试用例:根据圈复杂度和程序结构设计用例数据输入和预期结果。 4)准备测试用例:确保基本路径集中的每一条路径的执行。 3、基本路径测试法的工具方法 1)图形矩阵:是在基本路径测试中起辅助作用的软件工具,利用它可以实现自 动地确定一个基本路径集。 三、程序的控制流图 控制流程图是描述程序控制流的一种图示方法。圆圈称为控制流图的一个结点,表示一个或多个无分支的语句或源程序语句流图只有二种图形符号:图中的每一个圆称为流图的结

点,代表一条或多条语句。流图中的箭头称为边或连接,代表控制流。任何过程设计都要被翻译成控制流图。 1、根据程序流程图化成控制流图 在将程序流程图简化成控制流图时,应注意: 1)在选择或多分支结构中,分支的汇聚处应有一个汇聚结点。 2)边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区域。 如下页图所示: 如果判断中的条件表达式是由一个或多个逻辑运算符(OR, AND, NAND, NOR) 连接 的复

软件测试案例三角形白盒测试

一、核心程序代码 /** 判断三角形的类*/ 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; } } } // 判断为三角形判断为等腰三角形

、程序流程图 三、测试用例

F6, F7, T8 Case28 a=4, b=3, c=3 2 T1, T2, T3, F4, T5, F6, T7, F8 2 Case29 a=3, b=4, c=5 1 T1, T2, T3, F4, F5, F6, F7, F8 1 Case30 a=3, b=4, c=3 2 T1, T2, T3, F4, F5, F6, F7, T8 2 备注 其他条件组合,无法到达结束 四、程序控制流图 -> a B a == b E F b == c Return 3 Ffet urn 2 Ret ur n 1 K 输入 期望输出 覆盖对象 测试结果 Case31 a=1,b=6,c=7 0 A->D 0 Case32 a=7, b=6, c=1 0 A->B->D 0 Case33 a=1,b=7,c=6 0 A->B->C->D D Return 0 G b == c Ret ur n 2 H 斗 J a == C

三角形问题- 等价类法(实验报告)2011-9-27

一、实验环境 Visual C++ 6.0软件环境 二、实验原理 软件测试是通过运行所开发的软件产品,识别和控制软件缺陷,以验证和确认用户需求已得到满足的过程。 三、给出三角形等价类表和测试用例表? 三角形问题:输入三个整数a、b、c分别作为三角形的三条边,现通过程序判断由三条边构成的三角形的类型为等边三角形、等腰三角形、一般三角形(特殊的还有直角三角形)以及构不成三角形。现在要求输入三个整数a、b、c,必须满足以下条件: 条件1 1≤a≤100 条件4 a≤b+c 条件2 1≤b≤100 条件5 b≤a+c 条件3 1≤c≤100 条件6 c≤a+b

解:(开发程序清单) #include int i = 0; void main(void){ while(i==0) { int a,b,c; cout<<"请输入3个整数:"<>a>>b>>c; if (!(a+b<=c||a+c<=b|| b+c<=a)&&(a>=1&&a<=100)&&(b>=1&&b<=100)&&(c>=1&&c<=100)) { if (a==b && a==c) cout<<"等边三角形"<100) cout<<"a="<100) cout<<"b="<100) cout<<"c="<=b+c) cout<<"不满足a=a+c) cout<<"不满足b=b+a) cout<<"不满足c

软件测试——实验1

淮海工学院(计算机工程学院)课内实验报告实验名称:黑盒测试 专业名称:软件工程 班级:Z软件161 姓名:陈真杰 学号:2018140539 指导教师:陈艳艳 实验日期:2019年3月13

一、实验目的与环境 1.实验目的: (1)理解黑盒测试的含义以及基本的测试方法。 (2)采用等价类划分法设计测试用例。 (3)掌握用等价类划分法设计测试用例的方法。 (4)掌握用因果图设计测试用例的方法。 (5)掌握用边界值分析法设计测试用例的方法。 2.实验环境:C语言、Java语言、Python语言等。 二、实验内容 1.三角形问题:输入3个整数a、b、c,分别作为三角形的3条边,通过程序判断由 3条边构成的三角形的类型为等边三角形、等腰三角形、一般三角形或者3条边不构成三角形。 2.现有一个学生标准化考试批阅试卷、产生成绩报告的程序。其规格说明为:程序的 输入文件有80个字符的记录组成,分为试题部分和学生答卷部分,具体内容如图所示。 试题部分包括如下内容: (1)标题。这一组只有一个记录,其内容为输出成绩报告的名字。 (2)标准答案。每个记录在第80个字符处标以数字2。第一个记录的第1~3个字符为“试题数”,用于标示题目编号;第10~59个字符给出第1~50题的答案,以此类推。 学生答卷部分包括内容:每个记录的第80个字符均为数字3。第1~9个字符给出学号,第10~59字符给出第1至第50题的答案,以此类推。 程序的输出有4个报告: (1)按学号排列的成绩单,列出每个学生的成绩、名次。 (2)按学生成绩排序的成绩单。 (3)平均分数及标准偏差的报告。 (4)试题分析报告。按试题号排序,列出各题学生答对的百分比。

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

4.完成软件白盒测试技术中的逻辑覆盖测试应用设计实验。(理论考试重点内容实践) 三角形白盒测试要求要求: 1)自备C语言程序(可从C语言程序设计的教科书上摘录若干典型程序,其他C++、C#、Java程序均可); #include #include #include 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

精选软件测试笔试题目及答案

精选软件测试笔试题目及答案 软件测试去面试的时候都会做哪些题目呢?下面是收集的精选软件测试笔试题目及答案,欢迎大家阅读。 1、集成测试也叫组装测试或者联合测试,请简述集成测试的主要内容? (1)在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失; (2)一个模块的功能是否会对另一个模块的功能产生不利的影响; (3)各个子功能组合起来,能否达到预期要求的父功能; (4)全局数据结构是否有问题; (5)单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。 2、简述集成测试与系统测试关系?

(1)集成测试的主要依据概要设计说明书,系统测试的主要依据是需求设计说明书; (2)集成测试是系统模块的测试,系统测试是对整个系统的测试,包括相关的软硬件平台、网络以及相关外设的测试。 3、软件测试的文档测试应当贯穿于软件生命周期的全过程,其中用户文档是文档测试的重点。那么软件系统的用户文档包括哪些? 用户手册 安装和设置指导 联机帮助 指南、向导 样例、示例和模板 授权/注册登记表 最终用户许可协议

4、软件系统中除用户文档之外,文档测试还应该关注哪些文档? 开发文档 软件需求说明书 数据库设计说明书 概要设计说明书 详细设计说明书 可行性研究报告 管理文档 项目开发计划 测试计划 测试报告

开发进度月报 开发总结报告 5、简述软件系统中用户文档的测试要点? (1)读者群。文档面向的读者定位要明确。对于初级用户、中 级用户以及高级用户应该有不同的定位 (2)术语。文档中用到的术语要适用与定位的读者群,用法一致,标准定义与业界规范相吻合。 (3)正确性。测试中需检查所有信息是否真实正确,查找由于 过期产品说明书和销售人员夸大事实而导致的错误。检查所有的 目录、索引和章节引用是否已更新,尝试链接是否准确,产品支 持电话、地址和邮政编码是否正确。 (4)完整性。对照软件界面检查是否有重要的分支没有描述到,甚至是否有整个大模块没有描述到。 (5)一致性。按照文档描述的操作执行后,检查软件返回的结 果是否与文档描述的相同。 (6)易用性。对关键步骤以粗体或背景色给用户以提示,合理

(整理)基本路径测试

白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异。 其中运用最为广泛的是基本路径测试法。 基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。 设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。 在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例。包括以下4个步骤和一个工具方法: 1. 程序的控制流图:描述程序控制流的一种图示方法。 2. 程序圈复杂度:McCabe复杂性度量。从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确定程序中每个可执行语句至少执行一次所必须的测试用例数目的上界。 3. 导出测试用例:根据圈复杂度和程序结构设计用例数据输入和预期结果。 4. 准备测试用例:确保基本路径集中的每一条路径的执行。 工具方法: 图形矩阵:是在基本路径测试中起辅助作用的软件工具,利用它可以实现自动地确定一个基本路径集。 程序的控制流图:描述程序控制流的一种图示方法。 圆圈称为控制流图的一个结点,表示一个或多个无分支的语句或源程序语句 流图只有二种图形符号: 图中的每一个圆称为流图的结点,代表一条或多条语句。

流图中的箭头称为边或连接,代表控制流 任何过程设计都要被翻译成控制流图。 如何根据程序流程图画出控制流程图? 在将程序流程图简化成控制流图时,应注意: n 在选择或多分支结构中,分支的汇聚处应有一个汇聚结点。 n 边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区域。 如下页图所示 n 如果判断中的条件表达式是由一个或多个逻辑运算符(OR, AND, NAND, NOR) 连接的复合条件表达式,则需要改为一系列只有单条件的嵌套的判断。 例如: 1 if a or b 2 x 3 else 4 y 对应的逻辑为:

三角形白盒测试

一.三角形问题: 1.import java.util.Scanner; 2. public class test 3.{ 4. public static void main(String[] args) 5. { 6. Scanner input=new Scanner(System.in); 7. System.out.print("Enter 3 integers which are sides of a triangle:"); 8. double a=input.nextDouble(); 9. double b=input.nextDouble(); 10. double c=input.nextDouble(); 11 int sign1=0,sign2=0; 12 if(a>0&&b>0&&c>0&&a<200&&b<200&&c<200) { 13 if(a+b>c&&a+c>b&&b+c>a) { 14 if(a==b&&a==c) //F11 15. System.out.print("是等边三角形"); 16. else { 17 if(a==b||b==c||a==c) //14 18 sign1=1; 19 if(a*a+b*b==c*c||a*a==b*b+c*c||b*b==c*c+a*a) //17 20 sign2=1; 21 if(sign1==1&&sign2==1) 22 System.out.print("是等腰直角三角形"); 23 else if(sign1==0&&sign2==1) 24 System.out.print("是直角三角形"); 25 else if(sign1==1&&sign2==0) 26 System.out.print("是等腰三角形"); 27 else System.out.print("是一般三角形"); } } 28 else System.out.print("not a Triangle"); } 29 else System.out.print("input is error!"); } 30.}

白盒测试练习及答案

1、在白盒测试用例设计中,有语句覆盖、分支覆盖、条件覆盖、路径覆盖等,其中( A )是最强的覆盖准则。为了对如下图所示的程序段进行覆盖测试,必须适当地选取测试用例组。若x, y是两个变量,可供选择的测试用例组共有Ⅰ、Ⅱ、Ⅲ、Ⅳ四组,如表中给出,则实现判定覆盖至少应采取的测试用例组是( B )或( C );实现条件覆盖至少应采取的测试用例组是( D );实现路径覆盖至少应采取的测试用例组是( E )或( F )。 供选择的答案 A: ① 语句覆盖② 条件覆盖③ 判定覆盖④ 路径覆盖 B~F: ① Ⅰ和Ⅱ组② Ⅱ和Ⅲ组③ Ⅲ和Ⅳ组④ Ⅰ和Ⅳ组 ⑤ Ⅰ、Ⅱ、Ⅲ组⑥ Ⅱ、Ⅲ、Ⅳ组⑦ Ⅰ、Ⅲ、Ⅳ组 ⑧ Ⅰ、Ⅱ、Ⅳ组 解答:A. ④ B. ⑤ C. ⑧ D. ④ E. ⑤ F. ⑧ 2. 阅读下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(a,b,c)的输入值可以达到条件覆盖。( B ) int func(int a,b,c) { int k=1; if ( (a>0) || (b<0) || (a+c>0) ) k=k+a; else k=k+b; if (c>0) k=k+c; return k; } A. (a,b,c) = (3,6,1)、(-4,-5,7) B. (a,b,c) = (2,5,8)、(-4,-9,-5) C. (a,b,c) = (6,8,-2)、(1,5,4) D. (a,b,c) = (4,9,-2)、(-4,8,3) 3. 阅读下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(a,b,c)的输入值可以达到判定覆盖。( D )

int func(int a,b,c) { int k=1; if ( (a>0) &&(b<0) && (a+c>0) ) k=k+a; else k=k+b; if (c>0) k=k+c; return k; } A. (a,b,c) = (3,6,1)、(-4,-5,7) B. (a,b,c) = (2,5,8)、(-4,-9,-5) C. (a,b,c) = (6,8,-2)、(1,5,4) D. (a,b,c) = (4,-9,-2)、(-4,8,3) 4. 阅读下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(a,b,c)的输入值可以达到判定条件覆盖。( B ) int func(int a,b,c) { int k=1; if ( (a>0) || (b<0) || (a+c>0) ) k=k+a; else k=k+b; if (c>0) k=k+c; return k; } A. (a,b,c) = (3,6,1)、(-4,-5,7) B. (a,b,c) = (2,-5,8)、(-4,9,-5) C. (a,b,c) = (6,8,-2)、(1,5,4) D. (a,b,c) = (4,9,-2)、(-4,8,3) 5、下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。 int GetMax(int n, int datalist[ ]) { int k=0; for ( int j=1; j datalist[k] ) k=j; return k; } (1)画出该程序的控制流图,并计算其McCabe环路复杂性。 (2)用基本路径覆盖法给出测试路径。 (3)为各测试路径设计测试用例。 答: 1 int k = 0; 2 int j = 1; 3 while ( j < n ) 4 { 5 if ( datalist[j] > datalist[k] ) 6 k = j; 7 j++; 8 }

三角形程序白盒测试

实验报告 黑龙江大学教务处

测试计划(GB8567——88) 1引言 1.1编写目的 掌握软件测试技术中白盒测试方法; 掌握如何进行单元测试。 1.2背景 说明: a.Windows 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.Scanner; 2.public class abc { 3. public static void main(String args[]) { 4. String str1 = ""; 5. String str2 = ""; 6. String str3 = ""; 7. int a, b, c; 8. Scanner input = new Scanner(System.in); 9. System.out.printf("请输入三角形的三条边,以空格换行:\n"); 10 str1 = input.next(); 11. str2 = input.next(); 12 str3 = input.next(); 13. if (str1.matches("\\d+") && str2.matches("\\d+") 14 && str3.matches("\\d+")) { 15 a = Integer.parseInt(str1); 16 b = Integer.parseInt(str2); 17 c = Integer.parseInt(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 else 23 System.out.printf("等腰三角形\n"); 24 } else 25 System.out.printf("一般三角形\n"); 26 } else { 27 System.out.printf("不构成三角形\n"); 28 } 29 } else { 30 System.out.print("请输入整型数字"); 31 } 32 }

软件工程白盒测试文档

实验二白盒测试 一、实验目的 通过对于实例程序的测试,熟悉结构性测试的基本方法。 二、实验要求 (1)综合运用结构性测试方法(如逻辑覆盖、基本路径测试等方法)对被测程序进行测试,找出whiteBox.exe程序中存在的缺陷。 三、测试用例的设计 1.对于Triangle Program的测试 Private Sub triangle(a As Long, b As Long, c As Long, progOutput As String) Dim IsATriangle As Boolean 'Are a, b, and c sides of a Triangle? Node (0) If (a < b + c) And (b < a + c) Then Node (1) IsATriangle = True Else Node (2) IsATriangle = False progOutput = "Not a Triangle" End If ' Determine Triangle Type Node (3) If IsATriangle Then Node (4) If (a = b) And (b = c) Then Node (5) progOutput = "Equilateral" Else Node (6) If (a = b) Or (a = c) Then Node (7) progOutput = "Isosceles" Else

Node (8) If (a * a = b * b + c * c) Or (b * b = a * a + c * c) Or (c * c = a * a + b * b) Then Node (9) progOutput = "Right Triangle" Else Node (10) progOutput = "Scalene" End If Node (11) End If Node (12) End If Node (13) End If Node (14) End Sub (1)程序段的控制流图如下:

2020关于三角形问题的白盒测试实验报告123

关于三角形问题的白盒测试实验报告 一、实验目的 1、系统地学习和理解白盒测试的基本概念、原理,掌握白盒测试的基本技术和方法;二、实验内容 1、题目内容描述 针对实验一编写的源代码进行白盒测试。要求绘制出程序的控制流图,采用逻辑覆盖和基路径方法设计测试用例。执行测试用例,并分析测试结果 2、测试用例的编写 根据条件绘制程序流程图如下: 开开 scanf(%d,%d, %d,&1< m_num1 <200&1< m_num2<200 &1< m_num3 <200) 开 N 开m_num1+m_num2<= m_num3 开 开

cout<<"开开开开 m_num1+m开开"<

开 <<"开开开开开 "<

1213 14 采用逻辑覆盖设计测试用例并执行测试用例:(1)语句覆盖:输入 M_num1 3 3 3 3 (2)判定覆盖 输入 M_num1 3 M_num2 4 M_num3 5 1-2-3-6-7-8-10-11-12-14 一般三角形 测试路径 测试结果 M_num2 2 4 3 3 M_num3

白盒测试基本路径

白盒测试之基本路径测试法实训 一、程序代码 请按照基本路径测试法的步骤完成如下程序之基本路径测试法实训: 4

三、画出控制流图 可将流程图映射到一个相应的流图(假设流程图的菱形决定框中不包含复合条件)。在流图中,每一个圆,称为流图的结点,代表一个或多个语句。一个处理方框序列和一个菱形决测框可被映射为一个结点,流图中的箭头,称为边或连接,代表控制流,类似于流程图中的箭头。一条边必须终止于一个结点,即使该结点并不代表任何语句(例如:if-else-then结构)。由边和结点限定的范围称为区域。计算区域时应包括图外部的范围。 程序控制流图是: 四、计算圈复杂度 圈复杂度是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于计算程序的基本的独立路径数目,为确保所有语句至少执行一次的测试数量的上界。独立路径必须包含一条在定义之前不曾用到的边。 有以下三种方法计算圈复杂度: 流图中区域的数量对应于环型的复杂性; 给定流图G的圈复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量;

给定流图G的圈复杂度V(G),定义为V(G)=P+1,P是流图G中判定结点的数量。 请计算本程序的圈复杂度: 1)V(G)=E-N+2=10条边-8个节点+2=4 2)V(G)=P+1=3个判定节点+1=4 五、分析出独立路径 没条独立路径是指,和其他的独立路径相比,至少引入一个新处理语句或一个新判断的程序通路。V(G)值正好等于该程序的独立路径的条数。 程序的独立路径是: ?路径1:4-14 ?路径2:4-6-7-14 ?路径3:4-6-8-10-13-4-14 ?路径4:4-6-8-11-13-4-14 六、准备测试用例 根据上面的独立路径,去设计输入数据,使程序分别执行到上面四条路径。为了确保基本路径集中的每一条路径的执行,根据判断结点给出的条件,选择适当的数据以保证某一条路径可以被测试到,满足上面例子基本路径集的测试用例是: 满足上面例子基本路径集的测试用例是: 路径1:4-14 输入数据:iRecordNum=0,或者取iRecordNum<0的某一个值 预期结果:X=0 路径2:4-6-7-14 输入数据:iRecordNum=1;iType=0

判定三角形的程序与黑盒白盒测试

黑盒白盒测试实验报告 学院:计算机科学与工程 专业:软件工程 :子晗 学号:6

软件测试计划 测试目的 1.练习并掌握软件测试管理的一般过程与步骤 2.掌握测试管理的人工过程和能通过相关管理软件实现以 下操作: 1)创建和管理多个测试组和用户 2)配置测试环境,编写详细测试计划,安排测试进度 3)实施测试,执行测试 4)对测试进行评估 测试题目 关于三角形问题的测试 测试方法 1.对于主题进行黑盒测试,测试容包括等价类划分测试,边 界值分析测试,决策表方法使用。 2.对于主题进行白盒测试,测试容包括语句覆盖测试,分支 覆盖测试,条件覆盖测试,分支/条件覆盖测试,条件组合覆盖测试以及基本路径测试。

测试资料 1.黑盒测试: 黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序部结构和部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑部逻辑结构,主要针对软件界面和软件功能进行测试。 黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。 2.白盒测试: 白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子部的东西以及里面是如何运作的。"白盒"法全面了解程序部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。

1407040248_周立群_白盒测试试题

第五章白盒测试 一、判断分析题 1.语句覆盖是最弱的逻辑覆盖。(√) 2.语句覆盖是最强的逻辑覆盖。(X) 3.判定覆盖不一定包含条件覆盖。(X) 4.条件覆盖不一定包含判定覆盖。(√) 5.判定/条件覆盖能同时满足判定、条件两种覆盖标准。(√) 6.判定/条件覆盖指满足判定覆盖标准或条件覆盖标准。(X) 7.DD-路径图是一种压缩图。(X) 8.详细设计的目的是为软件结构图中的每一个模块确定使用的算法和块内数据结构,并用 某种选定的表达工具给出清晰的描述。(X ) 9.尽量用公共过程或子程序去代替重复的代码段。(X) 10.对于连锁型分支结构,若有n个判定语句,则有2n条路径。(√) 11.尽量采用复合的条件测试,以避免嵌套的分支结构。(√) 12.GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序 更加简洁。(√) 二、简答题 1.请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区 别与联系。 答:黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。(常见的联调测试)系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。

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

实验六三角形问题的基本路径测试 主要代码如下: 1.If (inta >= intb + intc) _ 2. Or (intb > =inta + intc) _ 3.Or (intc >= intb + inta) Then 4. strMsg = "三角形两边之和必须大于第三边" + vbCrLf + "非三角形" 5.Else 6. If (inta = intb) _ 7.And (intb = intc) Then 8. strMsg = "三角形的三条边都相等" + vbCrLf + "等边三角形" 9. Else 10. If (inta = intb) _ 11.Or (inta = intc) _ 12.Or (intc = intb) Then 13. strMsg = "三角形的任意两边相等" + vbCrLf + "等腰三角形" 14. Else 15. strMsg = "三角形的各边均非等" + vbCrLf + "普通三角形" 16. End If 17. End If 18.End If

1.根据上面的代码画出程序的控制流图。 2.计算环路复杂度。 V(G)=9 3.求出基本路径组合。 P1: 1-4-18 P2: 1-2-4-18 P3: 1-2-3-4-18 P4: 1-2-3-6-7-8-17-18 P5: 1-2-3-6-10-13-16-17-18 P6: 1-2-3-6-10-11-13-16-17-18 P7: 1-2-3-6-10-11-12-13-16-17-18 P8: 1-2-3-6-10-11-12-15-16-17-18

三角形白盒测试

南华大学 计算机学院 实验报告 (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); } }

三角形问题测试报告

三角形问题测试报告 1、简介 1.1编写目的 本测试报告为三角形问题的测试报告,目的在于总结测试阶段的测试以及分析测试结果,通过测试来检测每个功能是否都能正常使用。预期参考人员包括测试人员、开发人员和需要阅读本报告的老师。 1.2项目背景 本项目为软件测试专周任务。 1.3术语 边界值分析法:就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。 等价类划分:把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。 白盒测试:又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。 黑盒测试:也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

1.4参考资料 《软件测试教程第2版》《软件测试入门与提高》《软件测试实例分析》 2、测试概要 2.1程序流程图

相关文档
最新文档