搜档网
当前位置:搜档网 › 软件测试-判断三角形形状路径白盒测试

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

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

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

,其他

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");

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

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

(完整版)黑盒测试和白盒测试

白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。 这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。 采用什么方法对软件进行测试呢?常用的软件测试方法有两大类:静态测试方法和动态测试方法。其中软件的静态测试不要求在计算机上实际执行所测程序,主要以一些人工的模拟技术对软件进行分析和测试;而软件的动态测试是通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,而达到发现程序错误的过程。 白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异。 白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。 六种覆盖标准:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖发现错误的能力呈由弱至强的变化。语句覆盖每条语句至少执行一次。判定覆盖每个判定的每个分支至少执行一次。条件覆盖每个判定的每个条件应取到各种可能的值。判定/条件覆盖同时满足判定覆盖条件覆盖。条件组合覆盖每个判定中各条件的每一种组合至少出现一次。路径覆盖使程序中每一条可能的路径至少执行一次。 "白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。 如何挑选白盒测试工具 白盒测试目前主要用在具有高可靠性要求的软件领域,例如:军工软件、航天航空软件、工业控制软件等等。白盒测试工具在选购时应当主要是对开发语言的支持、代码覆盖的深度、嵌入式软件的测试、测试的可视化等。 对开发语言的支持:白盒测试工具是对源代码进行的测试,测试的主要内容包括词法分析与语法分析、静态错误分析、动态检测等。但是对于不同的开发语言,测试工具实现的方式和内容差别是较大的。目前测试工具主要支持的开发语言包括:标准C、C++、Visual C ++、Java、Visual J++等。

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

7.使用白盒测试用例设计方法为下面的程序设计测试用例: ·程序要求:10个铅球中有一个假球(比其他铅球的重量要轻),用天平三次称出假球。 ·程序设计思路:第一次使用天平分别称5个球,判断轻的一边有假球;拿出轻的5个球,拿出其中4个称,两边分别放2个球;如果两边同重,则剩下的球为假球;若两边不同重,拿出轻的两个球称第三次,轻的为假球。 【源程序】 using System; using System.Collections.Generic; using System.Linq; using System.Text; using NUnit.Framework; namespace Test3_7 { [TestFixture] public class TestGetMinValue { [Test] public void AddTwoNumbers() { Random r = new Random(); int n; int[] a=new int[10]; n = r.Next(0, 9); for (int i = 0; i < a.Length; i++) { if (i == n) a[i] = 5; else a[i] = 10; } GetMin gm = new GetMin(); Assert.AreEqual(n,gm.getMinvalue(a)); }

} public class GetMin { public int getMinvalue(int[] m) { double m1 = 0, m2 = 0, m3 = 0, m4 = 0; for (int i = 0; i < 5; i++) { m1 = m1 + m[i]; } for (int i = 5; i < 10; i++) { m2 = m2 + m[i]; } if (m1 < m2) { m3 = m[1] + m[0]; m4 = m[3] + m[4]; if (m3 > m4) { if (m[3] > m[4]) return 4; else return 3; } else if (m3 < m4) { if (m[0] > m[1]) return 1; else return 0; } else return 2; } else { m3 = m[5] + m[6]; m4 = m[8] + m[9]; if (m3 < m4) { if (m[5] > m[6]) return 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; } } } // 判断为三角形判断为等腰三角形

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

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)易用性。对关键步骤以粗体或背景色给用户以提示,合理

软件测试中如何编写单元测试用例(白盒测试)

软件测试中如何编写单元测试用例(白盒测试) 测试用例(T est Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。 测试用例(T est Case)目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。 不同类别的软件,测试用例是不同的。不同于诸如系统、工具、控制、游戏软件,管理软件的用户需求更加不统一,变化更大、更快。笔者主要从事企业管理软件的测试。因此我们的做法是把测试数据和测试脚本从测试用例中划分出来。测试用例更趋于是针对软件产品的功能、业务规则和业务处理所设计的测试方案。对软件的每个特定功能或运行操作路径的测试构成了一个个测试用例。 随着中国软件业的日益壮大和逐步走向成熟,软件测试也在不断发展。从最初的由软件编程人员兼职测试到软件公司组建独立专职测试部门。测试工作也从简单测试演变为包括:编制测试计划、编写测试用例、准备测试数据、编写测试脚本、实施测试、测试评估等多项内容的正规测试。测试方式则由单纯手工测试发展为手工、自动兼之,并有向第三方专业测试公司发展的趋势。 要使最终用户对软件感到满意,最有力的举措就是对最终用户的期望加以明确阐述,以便对这些期望进行核实并确认其有效性。测试用例反映了要核实的需求。然而,核实这些需求可能通过不同的方式并由不同的测试员来实施。例如,执行软件以便验证它的功能和性能,这项操作可能由某个测试员采用自动测试技术来实现;计算机系统的关机步骤可通过手工测试和观察来完成;不过,市场占有率和销售数据(以及产品需求),只能通过评测产品和竞争销售数据来完成。 既然可能无法(或不必负责)核实所有的需求,那么是否能为测试挑选最适合或最关键的需求则关系到项目的成败。选中要核实的需求将是对成本、风险和对该需求进行核实的必要性这三者权衡考虑的结果。 确定测试用例之所以很重要,原因有以下几方面。 测试用例构成了设计和制定测试过程的基础。测试的“深度”与测试用例的数量成比例。由于每个测试用例反映不同的场景、条件或经由产品的事件流,因而,随着测试用例数量的增加,您对产品质量和测试流程也就越有信心。判断测试是否完全的一个主要评测方法是基于需求的覆盖,而这又是以确定、实施和/或执行的测试用例的数量为依据的。类似下面这样的说明:“95 % 的关键测试用例已得以执行和验证”,远比“我们已完成95 % 的测试”更有意义。测试工作量与测试用例的数量成比例。根据全面且细化的测试用例,可以更准确地估计测试周期各连续阶段的时间安排。测试设计和开发的类型以及所需的资源主要都受控于测试用例。测试用例通常根据它们所关联关系的测试类型或测试需求来分类,而且将随类型和需求进行相应地改变。最佳方案是为每个测试需求至少编制两个测试用例:·一个测试用例用于证明该需求已经满足,通常称作正面测试用例;·另一个测试用例反映某个无法接受、反常或意外的条件或数据,用于论证只有在所需条件下才能够满足该需求,这个测试用例称作负面测试用例。 前段时间公司进行有关测试的培训,集成测试,性能测试,压力测试说了很多。由于本人还处于Coder阶段,只是对单元测试有了些了解。写下来怕以后自己忘记了。都是些自己的看法,不一定准确,欢迎高手指教。 一、单元测试的概念 单元通俗的说就是指一个实现简单功能的函数。单元测试就是只用一组特定的输入(测试用

软件测试白盒测试用例练习题

白盒测试用例练习 一、为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。 void DoWork (int x,int y,int z) { int k=0,j=0; if ( (x>3)&&(z<10) ) { k=x*y-1; j=sqrt(k); //语句块1 } if ( (x==4)||(y>5) ) { j=x*y+10; } //语句块2 j=j%3; //语句块3 }

由这个流程图可以看出,该程序模块有4条不同的路径: P1:(a-c-e) P2:(a-c-d) P3:(a-b-e) P4:(a-b-d) 将里面的判定条件和过程记录如下: 判定条件M={x>3 and z<10} 判定条件N={x=4 or y>5} 1、语句覆盖 2、判定覆盖 p1和p4可以作为测试用例,其中p1作为取真的路径,p4作为取反的路径。 也可以让测试用例测试路径P2和P3。相应的两组输入数据如下:

3、条件覆盖 对于M:x>3取真时T1,取假时F1; z<10取真时T2,取假时F2; 对于N:x=4取真时T3,取假时F3; y>5取真时T4,取假时F4。 条件:x>3,z<10,x=4,y>5 条件:x<=3,z>=10,x!=4,y<=5 根据条件覆盖的基本思路,和这8个条件取值,组合测试用例如表所示: 4、判定/条件覆盖

5、组合覆盖 条件组合 1)x>3,z<10 2)x>3,z>=10 3) x<=3,z<10 4)x<=3,z>=10 5)x=4,y>5 6)x=4,y<=5 7)x!=4,y>5 8)x!=4,y<=5 6、路径覆盖

三角形白盒测试

一.三角形问题: 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)题目内容描述 输入三条边,进行三角形的判定。 (2)测试用例的编写 测试用例参照三角形的组成规则编写。根据两边之和大于第三边的规则编写测试用例,并且考虑输入值非法的情况(小于0的数)。 程序代码: #include using namespace std; void main() { int b; int c; int a; cin >> a >> b >> c; if (a*b*c != 0 && (a + b > c&&b + c > a&&a + c > b)) { if (a == b&&b == c) { cout << "您输入的是等边三角形!"; } else if ((a + b > c&&a == b) || (b + c > a&&b == c) || (a + c > b&&a == c)) { cout << "您输入的是等腰三角形!"; }

else if ((a*a + b*b == c*c) || (b*b + c*c == a*a) || (a*a + c*c == b*b)) { cout << 您输入的是直角三角形!"; } else { cout << ”普通三角形”; } } else{ cout << "您输入的不能构成三角形"; } }

一:1 2 3 11 预期输出:您输入的不能构成三角形!二:1 2 4 5 11 预期输出:您输入的是等边三角形!三:1 2 4 6 7 11 预期输出:您输入的是等腰三角形!四:1 2 4 6 8 9 11 预期输出:您输入的是直角三角形!五:1 2 4 6 8 10 11预期输出:您输入的是普通三角形 测试实验用例: 一:语句覆盖: 二:条件覆盖:

三角形程序白盒测试

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

测试计划(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 }

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

软件测试实验报告(测试计划+黑盒测试+白盒测试)

河北民族师范学院软件测试课程设计报告 题目:NextDate函数 姓名: 班级: 学号: 指导老师: 2014.10.9

目录 第1章软件测试的概念和设计要求 (3) 1.1 测试目的 (3) 1.2 测试选题 (3) 1.3测试人员 (3) 1.4测试方法 (3) 1.5 测试资料及参考书 (3) 1.6关于黑盒测试 (3) 1.7 关于白盒测试 (4) 1.8、黑盒测试与白盒测试的比较 (4) 1.9 软件测试过程 (5) 1.10数据整理 (6) 第2章NextDate函数问题 (7) 2.1NextDate函数的黑盒测试 (7) 2.1.1.问题描述: (7) 2.1.2.程序代码(开发环境:Windowsxp xp、java): (7) 2.1.3.测试方法 (7) 2.1.4.测试用例设计 (9) 2-2NextDate函数的白盒测试 (17) 2.2.1核心程序代码 (17) 2.2.2程序流程图 (18) 2.2.3 测试用例 (18) 2.2.4程序控制流图 (19) 设计心得与体会 (19)

第1章软件测试的概念和设计要求1.1 测试目的 1.练习和掌握软件测试管理的一般过程与步骤; 2.掌握测试管理的人工过程和能够通过相关管理软件实现以下工作: a)配置软件资产信息、软件需求、软件模型和缺陷数据库; b)创建和管理多个测试组和用户; c)配置测试环境、编写详细测试计划、安排测试进度; d)设计测试脚本、测试用例; e)实施测试、执行测试和评估测试。 1.2 测试选题 NextDate函数; 1.3测试人员 张@@:软件测试计划及相关资料的编写与收集。 李@@:对特定问题编写程序代码,并对其进行黑盒测试。 王@@:对特定问题编写程序代码,并对其进行白盒测试。 1.4测试方法 对于选题,使用黑盒测试技术,测试内容包括等价类划分测试、边界值分析测试、决策表方法使用。 使用白盒测试技术,测试内容包括语句覆盖测试、分支覆盖测试、条件覆盖测试、分支/条件覆盖测试、条件组合覆盖测试及基本路径测试。 1.5 测试资料及参考书 1.软件测试与维护基础教程,机械工业出版社,黄武 2.软件测试技术基础教程,电子工业出版社,顾海花 3.软件测试,清华大学出版社,周元哲 1.6关于黑盒测试 测试规划是基于产品的功能,目的是检查程序各个功能是否能够实现,并检查其中的功能错误,这种测试方法称为黑盒测试(Black-box Testing)方法。

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

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

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

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

软件测试之白盒测试题及答案解读

#include //白盒测试测验题目 //程序功能:输入年、月,输出该月份的最大天数 void main() 1{ 2 int year, int month; 3 int maxday = 0; 4 cin>>year>>month; 5 if ( month >= 1 && month <= 12 ) 6 { 7 if ( month == 2 ) 8 { 9 if ( year % 4 == 0 ) 10 { 11 if ( year % 100 == 0 ) 12 { 13 if ( year % 400 == 0 ) 14 maxday = 29; 15 else 16 maxday = 28; 17 } 18 else 19 maxday = 29; 20 } 21 else 22 maxday = 28; 23 } 24 else 25 { 26 if ( month == 4 || month == 6 || month == 9 || month == 11 ) 27 maxday = 30; 28 else 29 maxday = 31; 30 } 31 } 32 cout<<"The MaxDay is:"<

2.画出该程序的DD路径图 转换后的(D-D图): A:{1-5};B:{6-7};C:{8-9};D:{24-26};E:{10-11};F:{21-23};G:{12-13}; H:{18-20};I:{14};J:{15-17};K:{27};L:{28-31};M:{32-33};

白盒测试

白盒测试与黑盒测试两类方法对比如下图所示: 浅谈白盒测试 来源: 51Testing软件测试网采编https://www.sodocs.net/doc/0b15837440.html,/html/08/n-220008.html 针对测试,一直都有黑,白之分。由于白盒一般情况下需要有比较高的技术要求及比一般开发人员还要高的项目经验和缜密的逻辑思维能力,所以一般做信息系统的软件公司会忽略白盒测试。但个人一直觉得,对于一个健康的测试团队来讲,必须要有一个或多个熟悉白盒测试的人员。倒不一定说熟悉白盒测试的人员一定需要写代码,但一定要懂得如何去做白盒测试和白盒测试用例的设计。 一个成熟的软件公司,必须要有一个精英汇集的研发团队,人数在精不在多。这个研发团队的功能主要有两个。

其一,严密监控业界的最新动态,根据公司的技术,软件习惯及文化,及时掌握最新的相关动态及技术信息,并将筛选出的有用信息及时转换为相关生产力,向公司内部推送。 内部的推送形式也可以分两种,一种是平板传达,也就是互联网上相关消息进行筛选后直接传递给开发人员,促进全员的整体技术能力的提升;另一种是实践传达,是将业界的相关最新技术研发人员自己掌握后,针对一些闪光点,做成成品DEMO,向相关高层人员,公司领导和各个业务口的项目经理进行推广。 其二,创建,推广及维护升级公司的整体技术框架及对于技术疑难问题的解答。一般情况下,项目的进度时间要求都比较高。因为一个业务负责人,不可能像专业人士那样熟悉了解软件开发流程,他们一旦决定做一个系统,巴不得第二天就要看到成果。虽然大家都知道前期很重要,但如果项目经理的经验有点欠缺,往往就会被业务负责人牵着鼻子走,为了加快进度而忽略了前期的工作准备。在项目一开始,就给后面的项目推广,人为的增加了难度。而有效规避该问题的一个重要手段就是,整个软件开发团队有统一的系统技术框架,将最常用的功能打包封装,诸如内容管理,系统管理等功能,直接封装好提高使用就好。针对业务功能很强的业务系统,那提供给最基础的Framework,WebCommer之类的内容。也能给项目组提供很大的方便,节省很多时间。这样做的好处,除了可以提升项目后期开发的效率,缩短开发时间,避免不必要的加班外,统一的系统设计风格和统一的UI交互风格,让熟悉该软件团队的人,在接触到以前没有涉及的系统时,会有似曾相识的感觉。增加陌生用户对系统的亲和。 有了以上的研发需求,那么作为系统质量保障的测试团队,更需要对这些最底层的功能做好充分的测试,保证上层开发人员使用框架的正确性。这是一般的项目管理者都明白的道理,其实也是大家都明白的道理,好的医生治病,还没等病冒出来,就灭掉它了。 最底层的基础框架,测试方法只能是白盒测试中的单元测试。而且单元测试只能在研发的工作中进行。主要在于,单元测试除了要穷举测试用例外,还需要写比正常开发量3-4倍的代码量(该数据是我08年亲身体验得到的)。试想在一个有着Deadline 逼着的项目开发过程中,又有哪个项目经理会采纳单元测试的方案?!又有哪个开发人员愿意去加班写单元测试的代码?又有哪个测试人员有精力又做黑盒又写白盒?! 所以说,白盒测试的实施是需要很多条件的。其一,在研发项目中实施;其二,为了做到真正的测试透彻,不能有太大的测试时间压力;其三,单元测试的编码由开发人员来执行,而不是测试人员。

相关主题