文档库 最新最全的文档下载
当前位置:文档库 › 白盒测试实验报告 (3)

白盒测试实验报告 (3)

白盒测试实验报告 (3)
白盒测试实验报告 (3)

软件学院综合性、设计性实验报告

一、实验目的

1.通过实验熟悉测试用例设计

2.通过实验熟悉白盒测试

二、实验仪器或设备

计科楼计算机

三、总体设计(设计原理、设计方案及流程等)

程序流程图:

二:程序

public class Test

{

static void dowork(int x,int y,int z)

{

int k=0,j=0;

if((x>3)&&(z<10))

{

k=x*y-1;

j=(int)Math.sqrt(k);

}

if((x==4)||(y>5))

{

j=x*y+10;

}

j=j%3;

System.out.println("k="+k);

System.out.println("j="+j);

}

public static void main(String[] args)

{

dowork(4,6,5);

}

}

四、实验步骤(包括主要步骤、代码分析等)

代码分析

public class Test

{

static void dowork(int x,int y,int z)

{

int k=0,j=0;

if((x>3)&&(z<10))

{

k=x*y-1;

j=(int)Math.sqrt(k);

}

if((x==4)||(y>5))

{

j=x*y+10;

}

j=j%3;

System.out.println("k="+k);

System.out.println("j="+j);

}

public static void main(String[] args)

{

dowork(4,6,5);

}

}

三、测试用例

1.语句覆盖

x=4,y=6,z=5

3.条件覆盖

x>3为真,记为T1

x>3为假,记为-T1

z<10为真,记为T2

z<10为假,记为-T2

x=4为真,记为T3

x=4为假,记为-T3

y>5为真,记为T4

5.条件组合覆盖

1.X>3,Z<10,记为T1,T2

2.X>3,Z>=10,记为T1,-T2

3.X<=3,Z<10,记为–T1,T2

4.X<=3,Z>=10记为–T1,-T2

5.X=4,Y>5 记为T3,T4

6.X=4,Y<=5 记为T3,-T4

7.X<>4,Y>5 记为–T3,T4

逻辑覆盖法:

语句覆盖:测试用例能使被测程序中的每条执行语句至少执行一次

判断覆盖:测试用例能使被测程序中的每个判断至少取得一次“真”和一次“假”。又称分支覆盖。

条件覆盖:测试用例能使被测程序中的每个判断的每个条件至少取得一次“真”和一次“假”。如果判断中只有一个条件,则条件覆盖便满足判断覆盖,否则,不一定。

判断/条件覆盖:测试用例既满足判断覆盖,又满足条件覆盖。

条件组合覆盖:测试用例使每个判定中所有可能的条件取值组合至少执行一次。

教师签名:

年月日

实验1-白盒测试实验报告

实验1-白盒测试实验报告

第一章白盒测试 实验1 语句覆盖 【实验目的】 1、掌握测试用例的设计要素和关键组成部 分。 2、掌握语句覆盖标准,应用语句覆盖设计测 试用例。 3、掌握语句覆盖测试的优点和缺点。 【实验原理】 设计足够多的测试用例,使得程序中的每个语句至少执行一次。 【实验内容】 根据下面提供的程序,设计满足语句覆盖的测试用例。 1、程序1源代码如下所示: #include void main()

{ int b; int c; int a; 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<<"您输入的不能构成一个三角形!"; } } 输入数据预期输出 A=6,b=7,c=8普通三角形 A=3,b=4,c=5直角三角形 A=4,b=2,c=4等腰三角形 A=1,b=1,c=1等边三角形 A=20,b=10,c=1非三角形 2、程序2源代码如下所示: void DoWork(int x,int y,int z) {

实验二 白盒测试

白盒测试实验 一实验内容 1、系统地学习和理解白盒测试的基本概念、原理,掌握白盒测试的基本技术和方法; 2、举例进行白盒测试,使用语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合 覆盖、路径覆盖进行测试。 3、通过试验和应用,要逐步提高和运用白盒测试 技术解决实际测试问题的能力; 4、熟悉C++编程环境下编写、调试单元代码的基本操作技术和方法; 5、完成实验并认真书写实验报告(要求给出完整的测试信息,如测试程序、测试用例, 测试报告等) 二实验原理 白盒测试原理:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。它是把测试对象看作装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。其又称为结构测试。 对于该实验的例子给出其流程图如下图所示,我们来了解白盒测试的基本技术和方法。

语句覆盖是指选择足够的测试用例,使得程序中每个语句至少执行一次。如上例选择测试用例x=1,y=1和x=1,y=-1可覆盖所有语句。 判定覆盖是指选择足够的测试用例,使得程序中每一个判定至少获得一次“真”值和“假”值,从而使得程序的每个分支都通过一次(不是所有的逻辑路径)。选择测试用例x=1,y=1和x=1,y=-1可覆盖所有判定。 条件覆盖是指选择语句多数的测试用例,使得程序判定中的每个条件能获得各种不同的结果。选择测试用例x=1,y=1和x=-1,y=-1可覆盖所有条件。 判定/条件覆盖是指选择足够多的测试用例,使得程序判定中每个条件取得条件可能的值,并使每个判定取到各种可能的结果(每个分支都通过一次)。即满足条件覆盖,又满足判定覆盖。选择测试用例x=1,y=1和x=-1,y=-1可覆盖所有判定/条件。 条件组合覆盖是指选择足够的测试用例,使得每个判定中的条件的各种可能组合都至少出现一次(以判定为单位找条件组合)。 注:a,条件组合只针对同一个判断语句存在多个条件的情况,让这些条件的取值进行笛卡尔乘积组合。 b,不同的判断语句内的条件取值之间无需组合。 c,对于但条件的判断语句,只需要满足自己的所有取值即可。 选择测试用例x=1,y=1;x=1,y=-1,x=-1,y=1和x=-1,y=-1可覆盖所有条件组合。 路径覆盖是分析软件过程流的通用工具,有助分离逻辑路径,进行逻辑覆盖的测试,所用的流程图就是讨论软件结构复杂度时所用的流程图。 三实验方法 1、语句覆盖 测试用例输入输出magic 判定M的取值判定N的取值覆盖路径 x=1,y=1 12 T F abef x=1,y=-1 0 F T acdf 2、判定覆盖 测试用例输入输出magic 判定M的取值判定N的取值覆盖路径 x=1,y=1 12 T F abef x=1,y=-1 0 F T acdf 3、条件覆盖 测试用例输入输出magic 判定M的取值判定N的取值覆盖路径 x=1,y=1 12 T F abef x=-1,y=-1 0 T T acdf 4、判定/条件覆盖 测试用例输入输出magic 判定M的取值判定N的取值覆盖路径 x=1,y=1 12 T F abef x=-1,y=-1 0 T T acdf

黑盒测试实验报告

实验报告书 课程名称:软件测试 实验题目:黑盒测试报告 专业:教育技术学 班级:教技142 学生姓名:安卓 指导老师:郭小雪 所属学期:2017-2018学年第二学期

一、引言 1.1目的 测试报告为三角形问题和找零钱最佳组合问题项目的黑盒测试报告,目的在于总结测试阶段的测试以及分析测试结果。 实验环境 在Windows 2000(SP2) 或Windows XP 操作系统上,使用C++语言,工具作为开发环境(IDE) 实验要求 1.根据给出的程序分别使用等价类划分法、边界值分析法、判定表 方法、因果图法、正交试验法、功能图法、错误推测法来设计相应的测试用例。 2.输入数据进行测试,填写测试用例。 二、实验原理 黑盒测试原理:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看作一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试。 从理论上讲,黑盒测试只有采用穷举输入测试,把所有可能的输入都

作为测试情况考虑,才能查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但可能的输入进行测试。这样看来,完全测试是不可能的,所以我们要进行有针对性的测试,通过制定测试案例指导测试的实施,保证软件测试有组织、按步骤,以及有计划地进行。黑盒测试行为必须能够加以量化,才能真正保证软件质量,而测试用例就是将测试行为具体量化的方法之一。具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等。 等价类划分的办法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。该方法是一种重要的,常用的黑盒测试用例设计方法。 1 划分等价类 划分等价类:等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。 有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中

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

河北民族师范学院 软件测试课程设计报告 题目:NextDate函数 姓名: 班级: 学号: 指导老师: 2014.10.9 目录 第1章软件测试的概念和设计要求 (3) 1.1 测试目的 (3) 1.2 测试选题 (4) 1.3测试人员 (4) 1.4测试方法 (4) 1.5 测试资料及参考书 (4) 1.6关于黑盒测试 (4) 1.7 关于白盒测试 (5) 1.8、黑盒测试与白盒测试的比较 (6) 1.9 软件测试过程 (6) 1.10数据整理 (7) 第2章NextDate函数问题 (8) 2.1NextDate函数的黑盒测试 (8) 2.1.1.问题描述: (8) 2.1.2.程序代码(开发环境:Windowsxp xp、java): (8) 2.1.3.测试方法 (9) 2.1.4.测试用例设计 (9)

2-2NextDate函数的白盒测试 (11) 2.2.1核心程序代码 (11) 2.2.2程序流程图 (12) 2.2.3 测试用例 (12) 2.2.4程序控制流图 (14) 设计心得与体会 (14) 第1章软件测试的概念和设计要求 1.1 测试目的 1.练习和掌握软件测试管理的一般过程与步骤; 2.掌握测试管理的人工过程和能够通过相关管理软件实现以下工作: a)配置软件资产信息、软件需求、软件模型和缺陷数据库; b)创建和管理多个测试组和用户; c)配置测试环境、编写详细测试计划、安排测试进度; d)设计测试脚本、测试用例; e)实施测试、执行测试和评估测试。 1.2 测试选题 NextDate函数; 1.3测试人员 张@@:软件测试计划及相关资料的编写与收集。 李@@:对特定问题编写程序代码,并对其进行黑盒测试。 王@@:对特定问题编写程序代码,并对其进行白盒测试。 1.4测试方法 对于选题,使用黑盒测试技术,测试内容包括等价类划分测试、边界值分析测试、决策表方法使用。 使用白盒测试技术,测试内容包括语句覆盖测试、分支覆盖测试、条件覆盖测试、分支/条件覆盖测试、条件组合覆盖测试及基本路径测试。

实验二 白盒测试 (2)

实验二白盒测试 一、实验目的 1、掌握白盒测试的基本方法; 2、掌握白盒测试用例的编写。 二、实验要求 1、根据给出的程序分别使用语句覆盖、判定覆盖(也称为分支覆盖)、条件覆盖、判定-条件覆盖、条件组合测试、路径测试设计测试用例。 2、输入数据进行测试,填写测试用例。 三、实验内容 1、用C++或者Java编写一个类,完成下面函数的功能,并编写另外一个类,调用该方法:void DoWork(int x,int y,int z) { int k=0,j=0; if((x>3)&&(z<10)) { k=x*y-1; //语句块1 j=sqrt(k); } if((x= =4)||(y>5)) { j=x*y+10; //语句块2 } j=j%3; //语句块3 } 要求: (1)画出上面函数的流程图。

(2)分别使用语句覆盖、判定覆盖(也称为分支覆盖)、条件覆盖、判定-条件覆盖、条 件组合测试、路径测试设计测试用例(注意测试用例的格式)。 语句覆盖: 用例:x=4,y=6,z=8 判定覆盖: 用例1:x = 4 , y = 6 , z = 8 用例2:x = 3 , y = 5 , z = 8 条件覆盖: 用例1:x=3,y=8,z=8 用例2:x=4,y=5,z=13 判定-条件覆盖: 用例1:x=4,y=8,z=8 用例2:x=3,y=5,z=13 条件组合测试 用例1:x=4,y=8,z=8 用例2:x=4,y=3,z=13

用例3:x=2,y=8,z=8 用例4:x=2,y=3,z=13 路径测试: 用例1:x=4,y=8,z=8 用例2:x=4,y=3,z=13 用例3:x=6,y=2,z=8 用例4:x=2,y=3,z=13 (3)执行每个测试用例,执行完毕后填写测试用例。 2、用C++或者Java编写“计算被输入日期是星期几,例如公元1年1月1日是星期一,只要输入年月日,能自动回复当天是星期几。”测试用例; 程序说明: A程序思路:计算输入日期与公元1年1月1日所相差的天数,具体如下:总天数=公元1年到输入日期上一年年底天数+输入年份的1月到上月月底天数+输入日期的天数; B闰年满足条件(year%4==0)&&(year%100!=0)||(year%400==0)。 要求: (1)分析各种输入情况,结合程序输出结果,并给出详细测试用例; (2)根据(1)所划分的等价类,进行边界值分析,并给出具体的测试用例; (3)决策表测试法; ①列出输入变量month、 day、 year的有效等价类;(条件桩) ②分析程序的规格说明,给出问题规定的可能采取操作;(动作桩) ③画出决策表(简化); ④根据决策表,给出详细测试用例。 代码: #include using namespace std; int main(){ int x=1,year, month, day; while(x) { int i, num=0,total, total1, total2; cout<<"请输入年份: "; cin>>year; cout<<"请输入月份: "; cin>>month; cout<<"请输入日期: "; cin>>day; //求得输入年份之前一年末的总天数 for(i=1; i

黑盒测试软件测试实验报告2

软件测试与质量课程实验报告实验2:黑盒测试法实验

缺席:扣10分实验报告雷同:扣10分实验结果填写不完整:扣1 – 10分其他情况:扣分<=5分总扣分不能大于10分 参考代码如下: (1)程序参考答案: #include double main() { int hours; double payment,wage; wage=20; cout<<"please input hours:"; cin>>hours; if(hours>=0&&hours<=168){ if (hours<40) payment=hours*wage ; else if ((hours>=40) && (hours<=50)) payment=40*wage+(hours-40)*1.5*wage; else if (hours>50) payment=40*wage+10*1.5*wage+(hours-50)*3*wage; cout<<"The final payment are:"< void main() { int year; int month,maxmonth=12; int day,maxday; printf("请输入年份:(1000~3000)"); scanf("%d",&year); if(year<1000 || year>3000) { printf("输入错误!请从新输入!\n");

白盒测试实验报告-范例

实验报告书 实验一白盒测试 学生姓名:李庆忠 专业:计算机科学与技术学号:1341901317

白盒测试实验报告 一实验内容 1、系统地学习和理解白盒测试的基本概念、原理,掌握白盒测试的基本技术和方法; 2、举例进行白盒测试,使用语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合 覆盖、路径覆盖进行测试。 3、通过试验和应用,要逐步提高和运用白盒测试技术解决实际测试问题的能力; 4、熟悉C++编程环境下编写、调试单元代码的基本操作技术和方法; 5、完成实验并认真书写实验报告(要求给出完整的测试信息,如测试程序、测试用例, 测试报告等) 二实验原理 白盒测试原理:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。它是把测试对象看作装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。其又称为结构测试。 流程图如下图所示 实验代码 #include"stdio.h"

int main() { int x,y,z; scanf("%d%d",&x,&y); if((x>0)&&(y>0)) { z=x+y+10; } else { z=x+y-10; } if(z<0) { z=0; printf("%d\n",z); } else { printf("%d\n",z); } return 0; } 语句覆盖是指选择足够的测试,使得程序中每个语句至少执行一次。如选择测试x=1,y=1和x=1,y=-1可覆盖所有语句。 判定覆盖是指选择足够的测试,使得程序中每一个判定至少获得一次“真”值和“假”值,从而使得程序的每个分支都通过一次(不是所有的逻辑路径)。选择测试x=1,y=1和x=1,y=-1可覆盖所有判定。 条件覆盖是指选择语句多数的测试,使得程序判定中的每个条件能获得各种不同的结果。选择测试x=1,y=1和x=-1,y=-1可覆盖所有条件。 判定/条件覆盖是指选择足够多的测试,使得程序判定中每个条件取得条件可能的值,并使每个判定取到各种可能的结果(每个分支都通过一次)。即满足条件覆盖,又满足判定覆盖。选择测试x=1,y=1和x=-1,y=-1可覆盖所有判定/条件。 条件组合覆盖是指选择足够的测试,使得每个判定中的条件的各种可能组合都至少出现一次(以判定为单位找条件组合)。 注:a,条件组合只针对同一个判断语句存在多个条件的情况,让这些条件的取值进行笛卡尔乘积组合。 b,不同的判断语句内的条件取值之间无需组合。 c,对于但条件的判断语句,只需要满足自己的所有取值即可。 选择测试用例x=1,y=1;x=1,y=-1,x=-1,y=1和x=-1,y=-1可覆盖所有条件组合。 路径覆盖是分析软件过程流的通用工具,有助分离逻辑路径,进行逻辑覆盖的测试,所用的流程图就是讨论软件结构复杂度时所用的流程图。

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

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;

白盒测试和黑盒测试实验报告

软件质量保证与测试 实验指导 计算机工程学院

测试环境配置 1.setting Junit (1) start Eclipse Select windows-preferences-java-build path –class path variables (2) click new, the figure of new variable entry is shown. (3) name JUNIT_LIB

select file-选择JUnit 插件所对应的JAR文件所在地,在Eclipse的安装目录的plugins目录中 2.JUNIT的组成框架 其中,junit.framework 和junit.runner是两个核心包。 junit.framework 负责整个测试对象的框架 junit.runner 负责测试驱动 Junit的框架又可分为: A、被测试的对象。 B、对测试目标进行测试的方法与过程集合,可称为测试用例(TestCase)。

C、测试用例的集合,可容纳多个测试用例(TestCase),将其称作测试包(TestSuite)。 D、测试结果的描述与记录。(TestResult) 。 E、每一个测试方法所发生的与预期不一致状况的描述,称其测试失败元素(TestFailure) F、JUnit Framework中的出错异常(AssertionFailedError)。 JUnit框架是一个典型的Composite模式:TestSuite可以容纳任何派生自Test 的对象;当调用TestSuite对象的run()方法是,会遍历自己容纳的对象,逐个调用它们的run()方法。 3.JUnit中常用的接口和类 Test接口——运行测试和收集测试结果 Test接口使用了Composite设计模式,是单独测试用例(TestCase),聚合测试模式(TestSuite)及测试扩展(TestDecorator)的共同接口。 它的public int countTestCases()方法,它来统计这次测试有多少个TestCase,另外一个方法就是public void run(TestResult ),TestResult是实例接受测试结果,run方法执行本次测试。 TestCase抽象类——定义测试中固定方法 TestCase是Test接口的抽象实现,(不能被实例化,只能被继承)其构造函数TestCase(string name)根据输入的测试名称name创建一个测试实例。由于每一个TestCase在创建时都要有一个名称,若某测试失败了,便可识别出是哪个测试失败。 TestCase类中包含的setUp()、tearDown()方法。setUp()方法集中初始化测试所需的所有变量和实例,并且在依次调用测试类中的每个测试方法之前再次执行setUp()方法。tearDown()方法则是在每个测试方法之后,释放测试程序方法中引用的变量和实例。 开发人员编写测试用例时,只需继承TestCase,来完成run方法即可,然后JUnit获得测试用例,执行它的run方法,把测试结果记录在TestResult之中。 Assert静态类——一系列断言方法的集合 Assert包含了一组静态的测试方法,用于期望值和实际值比对是否正确,即测试失败,Assert类就会抛出一个AssertionFailedError异常,JUnit测试框架将

软件测试实验报告一

广东*融学院实验报告 课程名称:软件测试 」、实验目的及要求 1、理解测试用例的重要性。 2、熟练掌握等价类划分、边界值方法、决策表和因果图法设计测试用例。 二、实验环境及相关情况(包含使用软件、实验设备、主要仪器及材料等) 1. 使用软件:装有QTP功能测试软件 2 .实验设备:装有Windows的联网的个人计算机 三、实验内容及步骤(包含简要的实验步骤流程) 1、实验题目:登陆框测试 在各种输入条件下,测试程序的登录对话框功能。 用户名和密码的规格说明书如下:(密码规则同用户名规则。) 用户名长度为6至10位(含6位和10 位); 用户名由字符(a-z、A-Z)和数字(0-9)组成; 不能为空、空格和特殊字符。 要求:按照规格说明书,分别用等价类划分和边界值方法设计测试用例。 步骤:(1)分析规格说明书,确定输入条件、输出条件的有效等价类、无效等价类以及各个边界条件;(2)第二步:填表格并编号;(3)第三步:设计测试用例;(4)第四步:执行测试用例。 2、员工薪制冋题。 (1)年薪制员工:严重过失,扣年终风险金的4%,过失,扣年终风险金的2%。 (2)非年薪制员工:严重过失,扣月薪资的8%,过失,扣月薪资的4%。 步骤:(1)分析程序的规格说明,列出原因和结果;(2)找出原因与结果的因果关系、原因与原因之间的约束关系,画出因果图;(3)将因果图转化成决策表;(4)根据决策表,设计测试用例的输入数据和预期输出。

四、实验结果(包括程序或图表、结论陈述、数据记录及分析等,可附页) 等价类划分方法: 五、实验总结(包括心得体会、问题回答及实验改进意见,可附页) 通过本次实验,我理解了测试用例的重要性。熟练掌握了等价类划分、边界值方法、决策表和因果图法设计测试用例。 六、教师评语 1、完成所有规定的实验内容,实验步骤正确,结果正确; 2、完成绝大部分规定的实验内容,实验步骤正确,结果正确; 3、完成大部分规定的实验内容,实验步骤正确,结果正确; 4、基本完成规定的实验内容,实验步骤基本正确,所完成的结果基本正确; 5、未能很好地完成规定的实验内容或实验步骤不正确或结果不正确。 评定等级: 签名:

黑盒测试实验报告记录

黑盒测试实验报告记录

————————————————————————————————作者:————————————————————————————————日期:

黑盒测试实验报告 一实验内容 1、系统地学习和理解黑盒测试的基本概念、原理,掌握黑盒测试的基本技术和方 法; 2、对一个已知的程序进行测试。 3、通过试验和应用,要逐步提高和运用黑盒测试技术解决实际测试问题的能力; 4、完成实验并认真书写实验报告(要求给出完整的测试信息,如测试程序、测试 用例,测试报告等) 二实验原理 黑盒测试原理:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看作一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试。 从理论上讲,黑盒测试只有采用穷举输入测试,把所有可能的输入都作为测试情况考虑,才能查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但可能的输入进行测试。这样看来,完全测试是不可能的,所以我们要进行有针对性的测试,通过制定测试案例指导测试的实施,保证软件测试有组织、按步骤,以及有计划地进行。黑盒测试行为必须能够加以量化,才能真正保证软件质量,而测试用例就是将测试行为具体量化的方法之一。具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等。 等价类划分的办法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。该方法是一种重要的,常用的黑盒测试用例设计方法。 1 划分等价类 划分等价类:等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。 有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。 无效等价类:与有效等价类的定义恰巧相反。 设计测试用例时,要同时考虑这两种等价类。因为,软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。 2 边界值分析 边界值分析是通过选择等价类边界的测试用例。边界值分析法不仅重视输入条件边界,而且也必须考虑输出域边界。它是对等价类划分方法的补充。 (1)边界值分析方法的考虑:

最新白盒测试实验报告-范例

广西科技大学计算机学院《软件测试技术》实验报告书 实验一白盒测试 学生姓名:xxxx 学号:xxxx 班级:xxxx 指导老师:xxxxx 专业:计算机学院软件工程 提交日期:2014年10月20日

白盒测试实验报告 一实验内容 1、系统地学习和理解白盒测试的基本概念、原理,掌握白盒测试的基本技术和方法; 2、举例进行白盒测试,使用语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合 覆盖、路径覆盖进行测试。 3、通过试验和应用,要逐步提高和运用白盒测试技术解决实际测试问题的能力; 4、熟悉C++编程环境下编写、调试单元代码的基本操作技术和方法; 5、完成实验并认真书写实验报告(要求给出完整的测试信息,如测试程序、测试用例, 测试报告等) 二实验原理 白盒测试原理:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。它是把测试对象看作装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。其又称为结构测试。 对于该实验的例子给出其流程图如下图所示,我们来了解白盒测试的基本技术和方法。

语句覆盖是指选择足够的测试用例,使得程序中每个语句至少执行一次。如上例选择测试用例x=1,y=1和x=1,y=-1可覆盖所有语句。 判定覆盖是指选择足够的测试用例,使得程序中每一个判定至少获得一次“真”值和“假”值,从而使得程序的每个分支都通过一次(不是所有的逻辑路径)。选择测试用例x=1,y=1和x=1,y=-1可覆盖所有判定。 条件覆盖是指选择语句多数的测试用例,使得程序判定中的每个条件能获得各种不同的结果。选择测试用例x=1,y=1和x=-1,y=-1可覆盖所有条件。 判定/条件覆盖是指选择足够多的测试用例,使得程序判定中每个条件取得条件可能的值,并使每个判定取到各种可能的结果(每个分支都通过一次)。即满足条件覆盖,又满足判定覆盖。选择测试用例x=1,y=1和x=-1,y=-1可覆盖所有判定/条件。 条件组合覆盖是指选择足够的测试用例,使得每个判定中的条件的各种可能组合都至少出现一次(以判定为单位找条件组合)。 注:a,条件组合只针对同一个判断语句存在多个条件的情况,让这些条件的取值进行笛卡尔乘积组合。 b,不同的判断语句内的条件取值之间无需组合。 c,对于但条件的判断语句,只需要满足自己的所有取值即可。 选择测试用例x=1,y=1;x=1,y=-1,x=-1,y=1和x=-1,y=-1可覆盖所有条件组合。 路径覆盖是分析软件过程流的通用工具,有助分离逻辑路径,进行逻辑覆盖的测试,所用的流程图就是讨论软件结构复杂度时所用的流程图。 三实验方法

最新白盒测试实验报告

软件测试实验二 一:实验目的 1.通过实验熟悉测试用例设计 2.通过实验熟悉白盒测试 二:实验内容1: 1.用java编写一个类,完成下面函数的功能,并编写另外一个类,调用该方法: void DoWork(int x,int y,int z) { int k=0,j=0; if((x>3)&&(z<10)) { k=x*y-1; //语句块1 j=sqrt(k); } if((x= =4)||(y>5)) { j=x*y+10; //语句块2 } j=j%3; //语句块3 } 试验内容2: 1、画出上面函数的流程图。 2、分别使用语句覆盖、判定覆盖(也称为分支覆盖)、条件覆盖、判定-条件覆盖、条件组合测试、路径测试设计测试用例(注意测试用例的格式)。 3、执行每个测试用例,执行完毕后填写测试用例。

二:程序 public class Test { static void dowork(int x,int y,int z) { int k=0,j=0; if((x>3)&&(z<10)) { k=x*y-1; j=(int)Math.sqrt(k); } if((x==4)||(y>5)) { j=x*y+10; } j=j%3; System.out.println("k="+k); x>3 and z<10 x==4 or y>5 k=x*y-1 j=sqrt(k) T F T a c e b j=j%3 j=x*y+10 F d

System.out.println("j="+j); } public static void main(String[] args) { dowork(4,6,5); } } 三:设计测试用例 1.语句覆盖 x=4,y=6,z=5 2.判定覆盖 x,y,z (x>3) and (z<10) (x=4) or (y>5) 执行路径4,6,7 真真ace 2,5,10 假假abd 3.条件覆盖 x>3为真,记为T1 x>3为假,记为-T1 z<10为真,记为T2 z<10为假,记为-T2 x=4为真,记为T3 x=4为假,记为-T3 y>5为真,记为T4 y>5为假,记为-T4 x,y,z 执行路径覆盖条件 覆盖分支 be 3,5,5 abe -T1,T2,-T3,T4 4,4,11 abe T1,-T2,T3,-T4 be 4. 5.判定—条件覆盖 覆盖分支x,y,z 执行路径覆盖条件 1 4, 4, 5 ace T1,T2,T3,T4 ce 2 2, 6,11 abd -T1,-T2,-T3,-T4 bd

功能测试实验报告-模版

《软件质量保证与测试实验》课程 实验报告 实验2:功能测试和Uft工具使用 学号: 姓名: 班级:

一、实验类型 参照《实验指导书》 一、实验目的和要求 1. 实验目的 参照《实验指导书》 2. 实验要求 参照《实验指导书》 二、实验步骤 参照《实验指导书》 三、实验环境 参照《实验指导书》 四、测试方法 参照《实验指导书》,结合教材内容简单描述所使用的测试方法 五、实验题目和测试用例 (一)实验题目 第1题A加B程序的加法功能测试 这是一个计算1~100之间两个整数之和的加法器程序,用Java语言编写。程序的具体要求:如果输入数据为1~100之间两个整数,则计算和并输出;否则给出提示信息“请输入1~100之间的整数”。 第2题Windows系统自带的计算器程序除法功能测试

(二)设计测试用例 针对每一个题使用等价类划分方法设计测试用例(见附录1) 六、实验过程和记录 (一)第1题的实验过程和记录 (1)准备一个Excel表文件,表名取为“加法-测试参数化表- 学号-姓名”,文件名取为“等价类-1至100加法-测试用例及测试记录-学号-姓名”,内容为根据等价类划分方法设计的测试用例; (2)启动UFT,工作空间命名为学号,在选择插件对话框中勾 选“Java插件”,新建一个测试“EX2-1”并新建解决方案“EX2-1”; (3)在数据视图界面的“数据”选项卡中“Action1”导入Excel 表文件数据; (4)在“Action1”中对数据进行编辑,删除作为标题的第一 行; (5)进行录制脚本设置,设置“可执行文件”为本次实验的A 加B版本1中的APLUSB程序; (6)录制脚本,为输出结果插入检查点,录制完成后在编辑脚本页面修改脚本代码(见附录3); (7)在流程界面中,为Action1设置操作调用属性,将迭代方 式设置为“从行1运行到行23”; (8)运行脚本,记录运行结果,填写测试记录(见附录4)。 注意: (1)成功录制脚本并运行,观察脚本运行情况

白盒测试实验报告范本

实验一:白盒软件测试 一、实验目的 通过简单程序白盒测试,熟悉测试过程,对软件测试行程初步了解,并养成良好的测试习惯。熟练掌握如何运用基路径测试方法进行测试用例设计,初步熟悉如何利用程序插装技术进行逻辑覆盖率分析。 二、实验内容 背景: 被测测试程序功能:计算被输入日期是星期几; 程序定义:已知公元1年1月1日是星期一,只要输入年月日,能自动回复当天是星期几; 测试环境:Windows vista、Dev C++; 说明:本次测试采用插桩测试法,由于程序简单,手动输入测试用例。 程序说明: A程序思路:计算输入日期与公元1年1月1日所相差的天数,具体如下:总天数=公元1年到输入日期上一年年底天数+输入年份的1月到上月月底天数+输入日期的天数 B闰年满足条件(year%4==0)&&(year%100!=0)||(year%400==0) (1)分析各种输入情况,结合程序输出结果,并给出详细测试用例; (2)根据(1)所划分的等价类,进行边界值分析,并给出具体的测试用例; (3)决策表测试法; ①列出输入变量month、 day、 year的有效等价类;(条件桩) ②分析程序的规格说明,给出问题规定的可能采取操作;(动作桩) ③画出决策表(简化); ④根据决策表,给出详细测试用例。 代码:(被测部分为while循环内部语句) #include using namespace std; int main() { int x=1,year, month, day; while(x) { 1.int i, num=0,total, total1, total2; 2.cout<<"请输入年份: "; 3.cin>>year; 4.cout<<"请输入月份: "; 5.cin>>month;

白盒测试实验报告

白盒测试实验报告 一实验内容 1、系统地学习和理解白盒测试的基本概念、原理,掌握白盒测试的基本技术和方法; 2、举例进行白盒测试,使用语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合 覆盖、路径覆盖进行测试。 3、通过试验和应用,要逐步提高和运用白盒测试技术解决实际测试问题的能力; 4、熟悉C++编程环境下编写、调试单元代码的基本操作技术和方法; 5、完成实验并认真书写实验报告(要求给出完整的测试信息,如测试程序、测试用例, 测试报告等) 二实验原理 白盒测试原理:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。它是把测试对象看作装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。其又称为结构测试。 对于该实验的例子给出其流程图如下图所示,我们来了解白盒测试的基本技术和方法。 语句覆盖是指选择足够的测试用例,使得程序中每个语句至少执行一次。如上例选择测

试用例x=1,y=1和x=1,y=-1可覆盖所有语句。 判定覆盖是指选择足够的测试用例,使得程序中每一个判定至少获得一次“真”值和“假”值,从而使得程序的每个分支都通过一次(不是所有的逻辑路径)。选择测试用例x=1,y=1和x=1,y=-1可覆盖所有判定。 条件覆盖是指选择语句多数的测试用例,使得程序判定中的每个条件能获得各种不同的结果。选择测试用例x=1,y=1和x=-1,y=-1可覆盖所有条件。 判定/条件覆盖是指选择足够多的测试用例,使得程序判定中每个条件取得条件可能的值,并使每个判定取到各种可能的结果(每个分支都通过一次)。即满足条件覆盖,又满足判定覆盖。选择测试用例x=1,y=1和x=-1,y=-1可覆盖所有判定/条件。 条件组合覆盖是指选择足够的测试用例,使得每个判定中的条件的各种可能组合都至少出现一次(以判定为单位找条件组合)。 注:a,条件组合只针对同一个判断语句存在多个条件的情况,让这些条件的取值进行笛卡尔乘积组合。 b,不同的判断语句内的条件取值之间无需组合。 c,对于但条件的判断语句,只需要满足自己的所有取值即可。 选择测试用例x=1,y=1;x=1,y=-1,x=-1,y=1和x=-1,y=-1可覆盖所有条件组合。 路径覆盖是分析软件过程流的通用工具,有助分离逻辑路径,进行逻辑覆盖的测试,所用的流程图就是讨论软件结构复杂度时所用的流程图。 三实验方法 1、语句覆盖 测试用例输入输出magic 判定M的取值判定N的取值覆盖路径 x=1,y=1 12 T F abef x=1,y=-1 0 F T acdf 2、判定覆盖 测试用例输入输出magic 判定M的取值判定N的取值覆盖路径 x=1,y=1 12 T F abef x=1,y=-1 0 F T acdf 3、条件覆盖 测试用例输入输出magic 判定M的取值判定N的取值覆盖路径 x=1,y=1 12 T F abef x=-1,y=-1 0 T T acdf 4、判定/条件覆盖 测试用例输入输出magic 判定M的取值判定N的取值覆盖路径 x=1,y=1 12 T F abef x=-1,y=-1 0 T T acdf 5、条件组合覆盖

实验一_白盒测试

实验一白盒测试 实验目的 1、掌握白盒测试的基础知识,了解白盒测试又叫结构性测试,是基于 被测程序的源代码的测试方法; 2、掌握白盒测试的主要检查内容、测试目的及实施步骤; 3、掌握白盒测试的3种基本测试方法:逻辑覆盖、路径测试和数据流 测试; 实验要求 1、复习教材的有关内容,掌握白盒测试的3种基本测试方法; 2、掌握一门编程语言,能编写代码并执行程序; 3、对具体程序的源代码,能分别使用3种测试方法设计测试用例,并 实施测试、分析测试结果; 实验设备与器材 a)硬件:P4以上计算机,512M内存以上,2G以上空闲硬盘空间 b)软件:Windows操作系统、java程序设计软件、office系列软件 实验原理 1、白盒测试的目的和检查内容; 2、白盒测试的基本方法; 3、根据白盒测试方法设计测试用例及实施测试。 实验内容 1、使用例子---三角形问题来进行路径测试。 以下是问题陈述:

三角形问题接受三个整数a、b、c作为输入,用做三角形的边。整数a、b、c 必须满足以下条件: C1: 1≤a≤200 C4: a<b+c C2: 1≤b≤200 C5: b<a+c C3: 1≤c≤200 C6: c<a+b 程序的输出是由这三条边确定的三角形类型:等边三角形、等腰三角形、不等边三角形或非三角形。如果输入值没有满足这些条件中的任何一个,则程序会通过输出信息来进行通知,例如,“b的取值不在允许取值的范围内。”如果a、b和c取值满足c1、c2和c3,则给出以下四种相互排斥输出中的一个: 1、如果三角形等边,则程序的输出是等边三角形。JUnit 2、如果恰好有两条边相等,则程序的输出是等腰三角形。 3、如果没有两条边相等,则程序输出的是不等边三角形。 4、如果c4、c5和c6中有一个条件不满足,则程序输出的是非三 角形。 对上述问题进行以下测试工作: 1)对上面的问题陈述,使用自己熟悉的编程语言(java)写出程序; public class test{ public static void main (String arg[]){ Scanner input=new Scanner(System.int); System.out.print("请输入3条边(中间空格隔开)"); double a=input.nextDouble(); double b=input.nextDouble(); double c=input.nextDouble(); int s1=0,s2=0; if(a>0&&b>0&&c>0&&a<200&&b<200&&c<200){ if(a+b>c&&b+c>a&&c+a>b){ if(a==b&&b==c)

相关文档
相关文档 最新文档