搜档网
当前位置:搜档网 › 判定三角形的程序及黑盒白盒测试

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

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

黑盒白盒测试实验报告

学院:计算机科学与工程

专业:软件工程

姓名:张子晗

学号:152210702236

软件测试计划

测试目的

1.练习并掌握软件测试管理的一般过程与步骤

2.掌握测试管理的人工过程和能通过相关管理软件实现以

下操作:

1)创建和管理多个测试组和用户

2)配置测试环境,编写详细测试计划,安排测试进度

3)实施测试,执行测试

4)对测试进行评估

测试题目

关于三角形问题的测试

测试方法

1.对于主题进行黑盒测试,测试内容包括等价类划分测试,

边界值分析测试,决策表方法使用。

2.对于主题进行白盒测试,测试内容包括语句覆盖测试,分

支覆盖测试,条件覆盖测试,分支/条件覆盖测试,条件组合覆盖测试以及基本路径测试。

测试资料

1.黑盒测试:

黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。

2.白盒测试:

白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。

采用什么方法对软件进行测试呢?常用的软件测试方法有两大类:静态测试方法和动态测试方法。其中软件的静态测试不要求在计算机上实际执行所测程序,主要以一些人工的模拟技术对软件进行分析和测试;而软件的动态测试是通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,而达到发现程序错误的过程。在动态分析技术中,最重要的技术是路径和分支测试。

3.黑盒与白盒测试的比较:

数据整理

测试的所得到的用例实验报告,BUG报告,需要进行反馈和最后的归档,归档的工作按项目计划中所规定的进行。反馈的工作在测试项结束后,整理成测试总结报告后进行,具体的日期在项目计划中有规定。

不同阶段的测试都要重复以上步骤。

三角形问题黑盒测试报告

1.问题描述:

完成一段程序,要求实现这样的功能。输入三个整数,构成三角形的三条边,输入范围是1-100,判断结果是等腰三角形,等边三角形,不构成三角形或是一般三角形,直角三角形,判断结果均打印输出。

2.程序代码(c++):

#include

using namespace std;

void main()

{

inta,b,c;

cout<<”请输入三条边的长度(1-100)”<

cin>>a>>b>>c;

if(a>=1&&b>=1&&c>=1&&a<=100&&b<=100&&c<=100)

{

if(a+b>c&&a+c>b&&b+c>a)

{

cout<<”能够构成三角形”;

if(a==b&&b==c)

cout<<”为等边三角形”;

else if

((a==b&&a!=c)||(b==c&&c!=a)||(a==c&&a!b))

cout<<”为等腰三角形”;

else

cout<<”为一般三角形”;

}

else

cout<<”不能构成三角形”;

}

else

cout<<”输入的值超出给定范围”;

}

3.测试方法:

黑盒测试(等价类划分+边界值分析+决策表方法)

1)等价类划分

本程序共计有四种可能的输出:一般三角形,等腰三角形,等边三角形,不构成三角形。

2)边界值分析方法

3)决策表方法

i.确定规则个数,本题的决策表共计四个条件。

C1:a,b,c构成三角形?

C2:a=b?

C3:a=c?

C4:b=c?

每个条件可以取两个值,共计有16种规则。

ii.列出所有的条件桩和动作桩

iii.输入输入项。

iv.输入动作项,得到初始决策表。

v.化简,合并相似规则,最后得到三角形问题的最终决策表。vi.

白盒测试(语句覆盖,判定覆盖及基本路径测试方法)程序的流程图如下

1)语句覆盖

2)判定覆盖

3)路径测试

黑盒测试用例设计案例

黑盒测试用例设计案例 【例1】假设现有以下的三角形分类程序。该程序的功能是,读入代表三角形边长的3个整数,判定它们能否组成三角形。如果能够,则输出三角形是等边、等腰或任意三角形的分类信息。图9.11显示了该程序的流程图和程序图。为以上的三角形分类程序设计一组测试用例。 【解】 第一步:确定测试策略。在本例中,对被测程序的功能有明确的要求,即:

(1)判断能否组成三角形; (2)识别等边三角形; (3)识别等腰三角形; (4)识别任意三角形。因此可首先用黑盒法设计测试用例,然后用白盒法验证其完整性,必要时再进行补充。 第二步:根据本例的实际情况,在黑盒法中首先可用等价分类法划分输入的等价类,然后用边界值分析法和猜错法作补充。 等价分类法: 有效等价类 输入3个正整数: (1)3数相等 (2)3数中有2个数相等,比如AB相等 (3)3数中有2个数相等,比如BC相等 (4)3数中有2个数相等,比如AC相等 (5)3数均不相等 (6)2数之和不大于第3数,比如最大数是A

(7)2数之和不大于第3数,比如最大数是B (8)2数之和不大于第3数,比如最大数是C 无效等价类: (9)含有零数据 (10)含有负整数 (11)少于3个整数 (12)含有非整数 (13)含有非数字符 边界值法: (14)2数之和等于第3数 猜错法: (15)输入3个零 (16)输入3个负数 第三步:提出一组初步的测试用例,如下表所示:

第四步:用白盒法验证第三步产生的测试用例的充分性。结果表明,上表中的前8个测试用例,已能满足对被测程序图的完全覆盖,不需要再补充其他的测试用例。

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

实验二测试报告 一、核心程序代码 /** 判断三角形的类 */ 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、定义 白盒测试又称结构测试、透明盒测试、逻辑驱动测试、基于代码的测试。盒子指被测试的软件,白盒指盒子是可视的。白盒测试是一种测试用例设计方法,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例。白盒测试主要针对被测程序的源代码,主要用于软件验证,不考虑软件的功能实现,只验证内部动作是否按照设计说明书的规定进行。 2、目的 我们一方面注重软件功能需求的实现,另一方面还要注重程序逻辑细节,主要是因为软件自身的缺陷,具体如下: 1)逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。日常处理往往被很好地了解,而“特殊情况”的处理则难于发现。 2)我们经常相信某逻辑路径不可能被执行,而事实上,它可能在正常的基础上被执行。程序的逻辑流有时是违反直觉的,只有路径测试才能发现这些错误。 3)代码中的笔误是随机且无法杜绝的。笔误出现在主流上和不明显的逻辑路径上的机率是一样的。很多被语法检查机制发现,但是其他的会在测试开始时才会被发现。 4)功能测试本身的局限性。如果程序实现了没有被描述的行为,功能测试是无法发现的,例如病毒,而白盒测试很容易发现它。 3、目标 采用白盒测试必须遵循以下几条原则,才能达到测试的目标: 1)保证一个模块中的所有独立路径至少被测试一次。 2)所有逻辑值均需测试真(true) 和假(false)两种情况。 3)检查程序的内部数据结构,保证其结构的有效性。 4)在上下边界及可操作范围内运行所有循环。 4、黑白灰区别 黑盒测试技术:也称功能测试或数据驱动测试,只关注规格说明中的功能,测试者在程序接口对软件界面和软件功能进行测试,它只检查实现了的功能是否按照“用户需求说明书”的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。主要用于软件确认测试,结合兼容、性能测试等方面,但黑盒测试不能保证已经实现的各个部分都被测试到。黑盒测试适用于各阶段测试。 白盒测试技术:只关注软件产品的测试,深入到代码一级的测试,它是知道产品内部结构,通过测试来检测产品内部动作是否按照“设计规格说明书”的规定正常进行,按照程

白盒测试方法习题及答案

[试题分类]:[04]白盒测试方法/[0400][综合]白盒测试方法 1. 下面不属于白盒测试能保证的是。 A. 模块中所有独立途径至少测试一次 B. 测试所以逻辑决策真和假两个方面 C. 在所有循环的边界内部和边界上执行循环体 D. 不正确或漏掉的功能 答案:D 分数:1 题型:单选题 难度:1 2. 因果图方法是根据()之间的因果关系来设计测试用例的。 A. 输入与输岀 B. 设计与实现 C. 条件与结果 D. 主程序与子程序 答案:A 分数:1 题型:单选题 难度:1 3. 使用白盒测试方法时,确定测试数据应根据()和指定的覆盖标准 A. 程序的内部逻辑 B. 程序的复杂程度 C. 使用说明书 D. 程序的功能 答案:A 分数:1 题型:单选题 难度:1 4. 软件测试中常用的静态分析方法是()和接口分析。 A. 引用分析 B. 算法分析 C. 可靠性分析 D. 效率分析 答案:A 分数:1 题型:单选题 难度:1 5. 软件测试中常用的静态分析方法是引用分析和()。 A. 引用分析 B. 算法分析 C. 可靠性分析 D. 接口分析 答案:D 分数:1 题型:单选题 难度:1 6. 白盒方法中常用的方法是()方法。 A. 路径测试 B. 等价类 C. 因果图 D. 归纳测试

答案:A 分数:1 题型:单选题 难度:1 7. 在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看作是() A. 路径的集合 B. 循环的集合 C. 目标的集合 D. 地址的集合 答案:A 分数:1 题型:单选题 难度:1 8. 软件测试白箱测试是对软件的结构进行测试,下述: I.边缘值分析n.语句测试 皿.分值测试IV .路经测试 )是其应包括的内容。 A. I B. n和皿 C.皿和V D. n .皿和V 答案:D 分数:1 题型:单选题 难度:1 9. 在进行单元测试时,常用的方法是()。 A. 采用白盒测试,辅之以黑盒测试 B. 采用黑盒测试,辅之以白盒测试 C. 只适用白盒测试 D. 只适用黑盒测试 答案:A 分数:1 题型:单选题 难度:1 10. 白盒测试法一般使用于()测试。 A. 单元 B. 系统 C. 集成 D. 确认 答案:A 分数:1 题型:单选题 难度:1 [试题分类]:[04] 白盒测试方法/[0401]逻辑覆盖法 11. 关于条件测试错误的是() A. 可以检查程序中所包含的逻辑条件 B. 条件中包含的错误有布尔算子错误 C. 条件中包含的错误有布尔变量错误 D. 条件中包含的错误有接口错误 答案:D 分数:1 题型:单选题 难度:1

三角形黑盒测试技术实验报告

黑盒测试技术—三角形问题 实验报告 一、问题描述 输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型并输出(等边三角形、等腰三角形、一般三角形),如果不构成三角形输出不能构成三角形。 要求: (1)输入三个整数a、b、c,必须满足以下条件:1≤a≤200;1≤b≤200;1≤c≤200。 (2)容错处理:输入空值的提示;输入的值满足类型的提示; (3)不限制开发环境,不限制开发语言; (4)尽可能不对自己的程序进行测试设计。 (5)请分别采用边界值分析法、等价类分析法、决策表分析法、基于场景分析法设计测试用例; (6)正文格式(除源代码用小五号单倍行距),其他行距固定值20,字号小四。 二、程序主要源代码 using System; using System.Collections.Generic; using https://www.sodocs.net/doc/ca11846712.html,ponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace software_test { public partial class FrmTest : Form { public FrmTest() { InitializeComponent(); } private void btnOk_Click(object sender, EventArgs e) { string numbera = "a"; string numberb = "b"; string numberc = "c"; String txta = txtA.Text;

白盒测试方法习题测验及答案

[试题分类]: [04]白盒测试方法/[0400][综合]白盒测试方法 1. 下面不属于白盒测试能保证的是。 A.模块中所有独立途径至少测试一次 B.测试所以逻辑决策真和假两个方面 C.在所有循环的边界内部和边界上执行循环体 D.不正确或漏掉的功能 答案:D 分数:1 题型:单选题 难度:1 2.因果图方法是根据()之间的因果关系来设计测试用例的。 A.输入与输出 B.设计与实现 C.条件与结果 D.主程序与子程序 答案:A 分数:1 题型:单选题 难度:1 3.使用白盒测试方法时,确定测试数据应根据()和指定的覆盖标准。 A.程序的内部逻辑 B.程序的复杂程度 C.使用说明书 D.程序的功能 答案:A 分数:1 题型:单选题 难度:1 4.软件测试中常用的静态分析方法是()和接口分析。 A.引用分析 B.算法分析 C.可靠性分析 D.效率分析 答案:A 分数:1 题型:单选题 难度:1 5.软件测试中常用的静态分析方法是引用分析和()。 A.引用分析 B.算法分析 C.可靠性分析 D.接口分析 答案:D 分数:1 题型:单选题 难度:1 6.白盒方法中常用的方法是()方法。 A.路径测试 B.等价类 C.因果图 D.归纳测试 答案:A 分数:1 题型:单选题

7.在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看作是() A.路径的集合 B.循环的集合 C.目标的集合 D.地址的集合 答案:A 分数:1 题型:单选题 难度:1 8.软件测试白箱测试是对软件的结构进行测试,下述: Ⅰ.边缘值分析Ⅱ.语句测试 Ⅲ.分值测试Ⅳ.路经测试 ()是其应包括的内容。 A.Ⅰ B.Ⅱ和Ⅲ C.Ⅲ和Ⅳ D.Ⅱ.Ⅲ和Ⅳ 答案:D 分数:1 题型:单选题 难度:1 9.在进行单元测试时,常用的方法是()。 A.采用白盒测试,辅之以黑盒测试 B.采用黑盒测试,辅之以白盒测试 C.只适用白盒测试 D.只适用黑盒测试 答案:A 分数:1 题型:单选题 难度:1 10.白盒测试法一般使用于()测试。 A.单元 B.系统 C.集成 D.确认 答案:A 分数:1 题型:单选题 难度:1 [试题分类]: [04]白盒测试方法/[0401]逻辑覆盖法 11.关于条件测试错误的是() A.可以检查程序中所包含的逻辑条件 B.条件中包含的错误有布尔算子错误 C.条件中包含的错误有布尔变量错误 D.条件中包含的错误有接口错误 答案:D 分数:1 题型:单选题 难度:1 12.关于条件中包含的错误类型说法错误的是() A.关系算子错误 B.算术表达式错误 C.条件中包含的错误有布尔变量错误 D.条件中包含的错误有接口错误

三角形判断-白盒测试

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

由程序流程图得如下控制流图:

采用逻辑覆盖设计测试用例并执行测试用例:(1)语句覆盖: (2)判定覆盖

(3)条件覆盖: (4)判定-条件覆盖: (5)条件组合覆盖:

(6)路径覆盖: 基路径方法设计测试用例并执行测试用例:

三、测试结果分析 经过以上测试发现:程序无法结束,达不到预测结果。其余均能正确执行达到预期结果。 四、实验思考 附录:程序代码 #include "stdio.h" void Judge(int m_num1,int m_num2,int m_num3) { scanf("%d %d %d",&m_num1,&m_num2,&m_num3); while(1< m_num1 <200&&1< m_num2<200 &&1< m_num3 <200) { if(!(m_num1+m_num2<=m_num3 || m_num1+m_num3<=m_num2 || m_num2+m_num3<=m_num1)) { if (m_num1==m_num2 && m_num1==m_num3) printf("等边三角形"); else if (m_num1==m_num2 || m_num1==m_num3 || m_num2==m_num3) printf("等腰三角形"); else printf("一般三角形"); } else { printf("不是三角形"); } } } void main() { int a,b,c; Judge(a,b,c); } int a,b,c; Judge(a,b,c); }

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

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

白盒测试方法详细说明

白盒测试方法 一、静态结构分析法 程序的结构形式是白盒测试的主要依据。研究表明程序员38%的时间花费在理解软件系统上,因为代码以文本格式被写入多重文件中,这是很难阅读理解的,需要其它一些东西来帮助人们阅读理解,如各种图表等,而静态结构分析满足了这样的需求。 在静态结构分析中,测试者通过使用测试工具分析程序源代码的系统结构、数据结构、数据结构、内部控制逻辑等内部结构,生成函数调用关系图、模块控制流图、内部文件调用关系图、子程序表、宏和函数参数表等各类图形图标,可以清晰地标识整个软件系统的组成结构,使其便于阅读和理解,然后可以通过分析这些图标,检查软件有没有存在缺陷或错误。 其中函数调用关系图通过应用程序中各函数之间的调用关系展示了系统的结构。通过查看函数调用关系图,可以检查函数之间的调用关系是否符合要求,是否存在递归调用,函数的调用曾是是否过深,有没有存在独立的没有被调用的函数。从而可以发现系统是否存在结构缺陷,发现哪些函数是重要的,哪些是次要的,需要使用什么级别的覆盖要求...... 模块控制流图是与程序流程图相类似的由许多节点和连接节点的边组成的一种图形,其中一个节点代表一条语句或数条语句,边代表节点间控制流向,它显示了一个函数的内部逻辑结构。模块控制流图可以直观地反映出一个函数的内部逻辑结构,通过检查这些模块控制流图,能够很快发现软件的错误与缺陷 二、代码检查 代码检查包括桌面检查、代码审查和走查等,主要检查代码和设计的一致性,代码对标准的遵循、可读性,代码逻辑表达的正确性,代码结构的合理性等方面;发现违背程序编写标准的问题,程序中不安全、不明确和模糊的部分,找出程序中不可移植部分、违背程序编程风格的内容,包括变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等内容。 代码检查方法 1、代码检查法 (1)桌面检查:这是一种传统的检查方法,由程序员检查自己编写的程序。程序员在程序通过编译之后,对源程序代码进行分析、检验,并补充相关文档,目的是发现程序中的错误。由于程序员熟悉自己的程序及其程序设计风格,桌面检查由程序员自己进行可以节省很多的检查时间,但应避免主观片面性 (2)代码审查 由若干程序员和测试员组成一个审查小组,通过阅读、讨论和争议,对程序进行静态分析的过程。代码审查分两步:第一步,小组负责人提前把设计规格说明书、控制流程图、程序文本及有关要求、规范等分发给小组成员,作为审查的依据。小组成员在充分阅读这些材料后,进入审查的第二步,召开程序审查会。在会上,首先由程序员逐句简介程序的逻辑。

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

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

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

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

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

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

白盒测试流程

白盒测试指南 (说明:此白盒测试指南主要给白盒测试人员提供一些基本的白盒测试方法和技术,由于涉及的问题广泛,测试内容中的细节不一定准确和完整,还有待于各位的共同参与和不断完善,欢迎多交流!) 目的 本方案主要实施NC产品程序代码的白盒测试。使界面符合设计规范,适用于用户;保证程序创建的类与接口的完整与正确,以及程序模块单独正常运行。保证局部模块功能完备性,运行正确性与稳定性。 测试项 所要测试的类。如: nc.ui.bd.* nc.bs.bd.* nc.vo.bd.* 测试依据 1.N C产品需求报告; 需求规格说明书、用例描述清单 2.设计文档;(OOA、OOD、CRC卡) 如:AOM(Analysis Object Model)表示类间的静态关系,是多个相关的用例共用的。 ASD(Analysis Sequence Diagram)是按业务工作的顺序表示每一工作步骤执行时类间的动态关系。一个用例对应一个ASD。 CRC (Collaborators & Responsibilities Card)卡是一个类的完整表述 3.界面规范 4.编码规范 5.开发命名标准 通过的准则 1.界面测试通过的标准:界面的样式、大小、颜色、整体布局的设置;各种标签控件的使用及主 题描述以及事件源控件的使用、快捷键使用都应符合《NC系统应用框架需求报告》和《设计文档的相关规范》。 2.程序代码通过的标准:创建的类、接口、方法、属性应与《设计文档》保持一致;程序的各种 命名、注释、代码行的格式等应符合《程序开发命名标准》和《编码规范》;程序模块能独立稳定运行。 测试环境配置 1.测试工具: 2.软件环境: Client端: 操作系统:中文WINNT/2000 开发环境:VA3.5 专业版 待测试的源码包 Server端: 操作系统:WIN NT4.0

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

三角形基本路径覆盖测试 于名飞学号2220130799 刘振昌学号2220130793 陈诗明学号2220120200 张超宁学号2220120210 王永峰学号2220120193 1三角形基本路径覆盖测试

对于上述三角形基本路径覆盖测试程序流程,根据条件判定来生成测试用例,得到的测试用例如下: 用例输入取值覆盖路径 case1 a=8, b=9, c=10 0→1→3→5→7→8→9→10→11 case2 a=8, b=20, c=9 0→1→3→5→7→8→9→10→12 case3 a=20, b=8, c=9 0→1→3→5→7→8→9→12 case4 a=8, b=9, c=30 0→1→3→5→7→8→12 case5 a=10, b=10, c=30 0→1→2→3→5→7→13→14→12 case6 a=10, b=10, c=9 0→1→2→3→5→7→13→14→15 case7 a=10, b=30, c=10 0→1→3→4→5→7→13→16→17→12 case8 a=10, b=9, c=10 0→1→3→4→5→7→13→16→17→15 case9 a=30, b=10, c=10 0→1→3→5→6→7→13→16→18→19→12 case10 a=9, b=10, c=10 0→1→3→5→6→7→13→16→18→19→15 case11 a=10, b=10, c=10 0→1→2→3→4→5→6→7→13→16→18→20

2开发环境 操作系统: Window7 开发环境: VS2008、C# 运行环境: Window 2000/XP/2003/7/8、.net FrameWork 2.0 屏幕分辨率要求大于1024x768 3编程思路 完成该系统,实现基本的判定条件和路径覆盖,从编程的角度来说比较简单,但为了能够实现较好的可视化效果,希望能够将程序执行路径的每一步分别顺序输出,并能够在可视化的流程图上动态展现出来。 3.1参考故障树知识库来表示流程 为了达到较好的可视化效果,这里面将路径执行过程参考故障树知识库的形式进行组织。 1)产生式知识表示法 产生式表示方法由前提和结论两部分组成,这种格式容易对知识进行扩展,有助于系统推理的实现。其基本形式如下: IF P THEN R 其中,P代表产生式规则的前提,R代表该规则的结论或操作。例如: IF “a=b”THEN “将match+1” 2)调度器 按照系统建造者所给的控制知识,从议程中选择一个项作为系统下一步要执行的动作。 3)执行器 应用知识库中的及黑板中记录的信息,执行调度器所选定的动作。

(完整版)实验四三角形组成问题程序的白盒测试

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

实验分析续 开始 (a+b>c)&&(a+c>b)&&(b+c>a) a==b || a==c || b==c Y a==c && a==b && b==c Y 不是三角形 N 普通三角形 N 等腰三角形 N 等边三角形 Y 结束 a b c d e f g 1 2 3 4567 8 图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)控制流图 1 2 6 5 4 3 7 8 图2-1 三角形组成的控制流图 (2)环形复杂度 方法一:V(G)=3(封闭区域)+1=4 方法二:V(G)=10(边数)—8(节点)+2=4 方法三:V(G)=3(判定节点1、2、3)+1=4

用例名称输入数据预期输出测试用例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 不是三角形

三角形黑盒测试

1实验项目名称:黑盒测试 2实验目的和要求: 目的:让学生掌握黑盒测试的用法和原理 要求: 三角形问题: 从键盘输入三个整数a、b、c。(1≤a、b、c ≤ 100) 判断是否构成三角形,若能构成三角形,指出构成的是等边三角 形?等腰三角形?不等边三角形? 要求编程并使用黑盒测试方法进行测试,要求使用边界值测试、等 价类测试、决策表测试、因果图测试法分别进行测试。 3实验原理 黑盒测试又称为功能测试或数据驱动测试,把程序看成一个黑盒子,完全不考虑程序的内部结构和处理程序,只是在程序的接口进行测试,以检查程序功能是否正常,程序是否能适当接收输入数据产生正确的输出数据。 4主要仪器设备 计算机、windows系统、winT-C编程与测试 5实验内容及步骤 (1)认真读题并了解目的 (2)准备环境及工具

(3)编程: #include void main() { while(1) { int a,b,c; printf("please Input a,b,c:"); scanf("%d %d %d",&a,&b,&c); if(a<1||a>100||b<1||b>100||c<1||c>100) printf("输入范围在1到100\n"); else if(a+b>c&&a+c>b&&b+c>a){ if(a==b&&b==c&&c==a){ printf("等边三角形\n"); } else if(a==b||b==c||a==c){ printf("等腰三角形\n"); } else{ printf("不等边三角形\n"); } } else{ printf("非三角形"); } getch(); } } (4)画流程图

三角形白盒测试

一.三角形问题: 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.下面不属于白盒测试能保证的是(D)。 A.模块中所有独立途径至少测试一次 B.测试所有逻辑决策真和假两个方面 C.在所有循环的边界内部和边界上执行循环体 D.不正确或漏掉的功能 2.因果图方法是根据(a)之间的因果关系来设计测试用例的。 A.输入与输出 B.设计与实现 C.条件与结果 D.主程序与子程序 3.使用白盒测试方法时,确定测试数据应根据(a)和指定的覆盖标准。 A.程序的内部逻辑 B.程序的复杂程度 C.使用说明书 D.程序的功能 4.软件测试中常用的静态分析方法是(a)和接口分析。 A.引用分析 B.算法分析 C.可靠性分析 D.效率分析 5.白盒方法中常用的方法是(a)方法。 A.路径测试 B.等价类 C.因果图 D.归纳测试 6.在进行单元测试时,常用的方法是(a)。 A.采用白盒测试,辅之以黑盒测试 B.采用黑盒测试,辅之以白盒测试 C.只适用白盒测试 D.只适用黑盒测试 7.在软件工程中,白盒测试法可以用于测试程序的内部结构。此方法将程序看做是(a)。 A.路径的集合 B.循环的集合 C.目标的集合 D.地址的集合 8. 对下面个人所得税程序中满足语句覆盖测试用例的是(D ) If(income < 800) taxrate=0; Else if(income <=1500) taxrate=0.05; Else if(income <2000) taxrate=0.08; Exle taxrate=0.1; A income = (800,1500,2000,2001) B income = (800,801,1999,2000) C income = (799,1499,2000,2001) D income = (799,1500,1999,2000) 二简答题 1.白盒测试有几种方法? 答:白盒测试方法分为两大类:静态测试方法和动态测试方法。 静态测试方法:检查软件的表示和描述是否一致,没有冲突或者没有歧义。 动态测试方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。 2.比较白盒测试和黑盒测试? 答:使用白盒测试方法时,测试根据程序的内部逻辑和指定的覆盖标准; 黑盒测试法是通过分析程序的接口功能设计测试用例的。 3.写几个白盒测试的工具 4.Linux基本命令

三角形程序白盒测试

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

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

白盒测试也称结构测试或逻辑驱动测试

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

相关主题