白盒测试实验一
白盒测试实验报告范本
实验一:白盒软件测试一、实验目的通过简单程序白盒测试,熟悉测试过程,对软件测试行程初步了解,并养成良好的测试习惯。
熟练掌握如何运用基路径测试方法进行测试用例设计,初步熟悉如何利用程序插装技术进行逻辑覆盖率分析。
二、实验内容背景:被测测试程序功能:计算被输入日期是星期几;程序定义:已知公元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 <iostream>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;6.cout<<"请输入日期: ";7.cin>>day;//求得输入年份之前一年末的总天数8.for(i=1; i<year; i++){9.if((i%4==0)&&(i%100!=0)||(i%400==0))10.num++;}11.total1 = 365*(year-num-1) + 366*num;//求得输入年份的总天数12.if((year%4==0)&&(year%100!=0)||(year%400==0)){//求得输入月份之前一月末的总天数13.switch(month){case 1:total2 = 0;break;case 2:total2 = 31;break;case 3:total2 = 60;break;case 4:total2 = 91;break;case 5:total2 = 121;break;case 6:total2 = 152;break;case 7:total2 = 182;break;case 8:total2 = 213;break;case 9:total2 = 244;break;case 10:total2 = 274;break;case 11:total2 = 305;break;case 12:total2 = 335;break;}}else{14.switch(month){case 1:total2 = 0;break;case 2:total2 = 31;break;case 3:total2 = 59;break;case 4:total2 = 90;break;case 5:total2 = 120;break;case 6:total2 = 151;break;case 7:total2 = 181;break;case 8:total2 = 212;break;case 9:total2 = 243;break;case 10:total2 = 273;break;case 11:total2 = 304;break;case 12:total2 = 334;break;}}//在加上输入的日,求其总和可得到从公元1年1月1日到输入日期当天的总天数15.total = total1 + total2 + day;16.int week;17. week = total % 7;18.cout<<"您输入的日期是";19.switch(week){case 0:cout<<"星期天"<<endl;break;case 1:cout<<"星期一"<<endl;break;case 2:cout<<"星期二"<<endl;break;case 3:cout<<"星期三"<<endl;break;case 4:cout<<"星期四"<<endl;break;case 5:cout<<"星期五"<<endl;break;case 6:cout<<"星期六"<<endl;break;}cout<<"**********退出程序请输入0,否则任一输入继续**********"<<endl;cin>>x;}}2、测试用例设计1)控制流图2)环路复杂度计算由图可知,图中的环路有六条,故环路复杂度为六。
实验一白盒实验
实验一、白盒测试一、实验目的:1、掌握结构性能测试技术,并能设计相应的测试用例;2、对测试用例进行优化设计;二、背景知识结构性测试力求提高测试覆盖率,逻辑覆盖(代码覆盖、结构覆盖)是对一系列测试过程的总称,它是在使用白盒测试法时,选用测试用例执行程序逻辑路径的方法结构性测试是知道产品内部工作过程,检测产品内部动作是否按照规格说明书的规定正常进行。
结构性测试允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。
通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。
逻辑覆盖按覆盖程度由低到高大致分为以下几类:(1)语句覆盖:设计若干测试用例,使程序中每一可执行语句至少执行一次;(2)判断覆盖:设计用例,使程序中的每个逻辑判断的取真取假分支至少经历一次;(3)条件覆盖:设计用例,使判断中的每个条件的可能取值至少满足一次;(4)判断/条件覆盖:设计用例,使得判断中的每个条件的所有可能结果至少出现一次,而且判断本身所有可能结果也至少出现一次;(5)条件组合覆盖。
设计用例,使得每个判断表达式中条件的各种可能组合都至少出现一次;显然,满足⑤的测试用例也一定是满足②、③、④的测试用例。
(6)路径覆盖。
设计足够的测试用例,使程序的每条可能路径都至少执行一次。
如果把路径覆盖和条件组合覆盖结合起来,可以设计出检错能力更强的测试数据用例三、实验内容使用逻辑覆盖测试方法测试以下程序段void sp (int x,int y,int z){①int k=0, j=0;②if ( (x>3)&&(z<10) )③{④k=x*y-1;⑤j=sqrt(k);⑥}⑦if((x==4)||(y>5))⑧j=x*y+10;⑨j=j%3;⑩}要求:(1)写出软件测试计划。
(2)分别以语句覆盖、判定/条件覆盖、组合覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。
实验一白盒测试(一)
实验⼀⽩盒测试(⼀)实验⼀⽩盒测试(⼀)⼀、实验⽅法:1、项⽬任务驱动教学法;2、“讲、学、练”相结合。
⼆、实验仪器与设备:1、计算机(要求:CPU 1000MHz以上,内存512M以上,磁盘空间20G以上。
);2、Eclipse;3、⼀个JAVA程序;三、实验⽬的:1、掌握⽩盒测试理论;2、掌握⽩盒测试的重要⽅法;3、掌握逻辑覆盖⽅法的原理;4、分析程序,设计逻辑覆盖的测试⽤例四、实验重点:1、逻辑覆盖⽅法的原理;2、分析程序,设计逻辑覆盖的测试⽤例。
五、实验难点:1、分析程序,设计逻辑覆盖的测试⽤例六、实验项⽬:使⽤逻辑覆盖⽅法测试⼀个JA V A程序1、实训要求:1、JAVA 程序。
2、根据⽩盒测试技术的逻辑覆盖⽅法设计程序的测试⽤例。
2、实训步骤:1、编写程序public static int DoWord(int x,int y,int z){if(x>3&&z<10)y=y/x+4;if (x==4 || y>5)y=x*y-10;return y;}2、设计测试⽤例(1)根据⽩盒测试技术的逻辑覆盖⽅法设计该程序的测试⽤例,分别满⾜:a.语句覆盖b.判定覆盖if(x>3&&z<10)y=y/x+4;if (x==4 || y>5)y=x*y-10;return y;}(2)根据上⾯设计的测试⽤例使⽤Junit编写程序进⾏测试。
要求:包括测试⽤例和预期结果,并书写实验报告。
白盒测试实验报告
白盒测试实验报告关于三角形问题的白盒测试实验报告一、实验目的1、能熟练应用功能性测试技术进行测试用例设计;2、对测试用例进行优化设计;二、实验内容1、题目内容描述针对实验一编写的源代码进行白盒测试。
要求绘制出程序的控制流图,采用逻辑覆盖和基路径方法设计测试用例。
执行测试用例,并分析测试结果。
可以使用C++Test对代码进行静态检查和动态测试。
2、测试用例的编写根据条件绘制程序流程图如下:由程序流程图得如下控制流图:采用逻辑覆盖设计测试用例并执行测试用例:(1)语句覆盖:(2)判定覆盖(3)条件覆盖:(4)判定-条件覆盖:(5)条件组合覆盖:(6)路径覆盖:基路径方法设计测试用例并执行测试用例:3、测试结果分析经过以上测试发现:程序无法结束,达不到预测结果。
其余均能正确执行达到预期结果。
4、实验思考通过本次试验,对C++test工具有了一定的认识,学会了一些基本的用法和操作,用该工具测出了一些代码规范的问题,能够分析测试结果了。
本实验用两种方法对程序进行测试,从中可看出,基路径测试比逻辑覆盖测试过程简单,但是没有逻辑覆盖测试的效果好。
所以,我觉得应该更加熟悉两种测试方法的特色,以便在以后的测试中能更快更准确的选择测试方法,快速测试,找到程序中的错误。
附录:程序代码#include "iostream.h"#include "stdio.h"void Judge(int m_num1,int m_num2,int m_num3){while(scanf("%d %d %d",&m_num1,&m_num2,&m_num3)! =EOF){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)cout<<"等边三角形"<else if (m_num1==m_num2 || m_num1==m_num3 || m_num2==m_num3)cout<<"等腰三角形"<elsecout<<"一般三角形"<}else{cout<<"不是三角形"<}}}void main(){int a,b,c;Judge(a,b,c);}第二篇:黑盒测试实验报告 12000字黑盒测试实验报告一实验内容1、系统地学习和理解黑盒测试的基本概念、原理,掌握黑盒测试的基本技术和方法;2、对一个已知的程序进行测试。
白盒测试测试报告模板
白盒测试测试报告模板:测试报告模板测试白盒测试方法黑盒测试和白盒测试接口测试是白盒测试吗篇一:白盒测试实验报告-范例广西科技大学计算机学院《软件测试技术》实验报告书实验一白盒测试学生姓名: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可覆盖所有条件。
判定/条件覆盖是指选择足够多的测试用例,使得程序判定中每个条件取得条件可能的值,并使每个判定取到各种可能的结果(每个分支都通过一次)。
实验01 白盒测试方法
实验01白盒测试方法[实验目的]1.掌握白盒测试技术2.能应用白盒测试技术设计测试用例;[预习要求]1.逻辑覆盖:逻辑覆盖按覆盖程度由低到高大致分为以下几类:(1)语句覆盖:设计若干测试用例,使程序中每一可执行语句至少执行一次;(2)判断覆盖:设计用例,使程序中的每个逻辑判断的取真取假分支至少经历一次;(3)条件覆盖:设计用例,使判断中的每个条件的可能取值至少满足一次;(4)判断/条件覆盖:设计用例,使得判断中的每个条件的所有可能结果至少出现一次,而且判断本身所有可能结果也至少出现一次;(5)条件组合覆盖。
设计用例,使得每个判断表达式中条件的各种可能组合都至少出现一次;显然,满足⑤的测试用例也一定是满足②、③、④的测试用例。
(6)路径覆盖。
设计足够的测试用例,使程序的每条可能路径都至少执行一次。
如果把路径覆盖和条件组合覆盖结合起来,可以设计出检错能力更强的测试数据用例。
2.基本路径测试:基本路径测试法在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。
步骤:(1)依据代码绘制流程图(2)确定流程图的环路复杂度(3)确定线性独立路径的基本集合(4)设计测试用例覆盖每条基本路径[实验题]三角形问题输入三个整数a,b,c,分别作为三角形的三条边,现通过程序判断三条边构成三角形的类型为:a)一般三角形b)等边三角形c)等腰三角形d)不构成三角形要求:(1)编写代码:根据题目描述使用Java编写三角形类,其中包括判定三条边构成三角形的方法。
(2)绘制控制流图:列出所编写的代码,注明语句编号,画出程序的控制流图。
(3)设计测试用例:分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。
格式参照以下表格:(4)编写测试代码,执行测试:使用JUnit编写测试代码,并在上表中记录测试结果。
白盒测试实验报告-范例
广西科技大学计算机学院《软件测试技术》实验报告书实验一白盒测试学生姓名: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可覆盖所有条件。
判定/条件覆盖是指选择足够多的测试用例,使得程序判定中每个条件取得条件可能的值,并使每个判定取到各种可能的结果(每个分支都通过一次)。
即满足条件覆盖,又满足判定覆盖。
白盒测试实验报告-范例
广西科技大学计算机学院《软件测试技术》实验报告书实验一白盒测试学生姓名: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可覆盖所有条件。
判定/条件覆盖是指选择足够多的测试用例,使得程序判定中每个条件取得条件可能的值,并使每个判定取到各种可能的结果(每个分支都通过一次)。
即满足条件覆盖,又满足判定覆盖。
黑盒白盒实验(一二)
黑盒测试(一)和白盒测试(二)实验背景知识结构性测试是知道产品内部工作过程,检测产品内部动作是否按照规格说明书的规定正常进行。
结构性测试允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。
通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。
一、逻辑覆盖结构性测试力求提高测试覆盖率。
逻辑覆盖是一系列测试过程的总称,它是在使用白盒测试法时,选用测试用例执行程序逻辑路径的方法。
逻辑覆盖按覆盖程度由低到高大致分为以下几类:(1)语句覆盖:设计若干测试用例,使程序中每一可执行语句至少执行一次;(2)判断覆盖:设计用例,使程序中的每个逻辑判断的取真取假分支至少经历一次;(3)条件覆盖:设计用例,使判断中的每个条件的可能取值至少满足一次;(4)判断/条件覆盖:设计用例,使得判断中的每个条件的所有可能结果至少出现一次,而且判断本身所有可能结果也至少出现一次;(5)条件组合覆盖。
设计用例,使得每个判断表达式中条件的各种可能组合都至少出现一次;显然,满足⑤的测试用例也一定是满足②、③、④的测试用例。
(6)路径覆盖。
设计足够的测试用例,使程序的每条可能路径都至少执行一次。
如果把路径覆盖和条件组合覆盖结合起来,可以设计出检错能力更强的测试数据用例。
二、基本路径测试如果把覆盖的路径数压缩到一定限度内,例如,程序中的循环体只执行零次和一次,就成为基本路径测试。
它是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。
设计出的测试用例要保证在测试中,程序的每一个可执行语句至少要执行一次。
①程序的控制流图控制流图是描述程序控制流的一种图示方法。
符号○称为控制流图的一个结点,一组顺序处理框可以映射为一个单一的结点。
控制流图中的箭头称为边,它表示了控制流的方向,在选择或多分支结构中分支的汇聚处,即使没有执行语句也应该有一个汇聚结点。
实验一_白盒测试
实验一白盒测试实验目的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+cC2: 1≤b≤200 C5: b<a+cC3: 1≤c≤200 C6: c<a+b程序的输出是由这三条边确定的三角形类型:等边三角形、等腰三角形、不等边三角形或非三角形。
如果输入值没有满足这些条件中的任何一个,则程序会通过输出信息来进行通知,例如,“b的取值不在允许取值的范围内。
”如果a、b和c取值满足c1、c2和c3,则给出以下四种相互排斥输出中的一个:1、如果三角形等边,则程序的输出是等边三角形。
JUnit2、如果恰好有两条边相等,则程序的输出是等腰三角形。
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)System.out.print("组成一个等边三角形"); else if(a==b||b==c||a==c)System.out.print("组成一个等腰三角形") }}}}2)根据编写的程序画出程序图;3)按照基路径测试方法,找出所有独立路径;4)根据独立路径设计测试用例;5)实施测试并分析测试结果。
实训 白盒测试用例设计
实训白盒测试用例设计实训1、实训目的1、掌握白盒测试用例的设计方法。
2、综合运用所学的白盒测试方法设计测试用例。
2、实训准备1、白盒测试用例的设计方法。
2、测试用例模板。
3、实训内容3.1基本训练实验一:下面是快速排序算法中的一趟划分算法,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小n。
算法中用到两个操作,一是取某数组元素V[i]的关键码操作getKey( ),一是交换两数组元素内容的操作Swap( ):int Partition ( datalist &list, int low, int high ) {//在区间[ low, high ]以第一个对象为基准进行一次划分,k返回基准对象回放位置。
int k = low; Element pivot = list.V[low]; //基准对象for ( int i = low+1; i <= high; i++ ) //检测整个序列,进行划分if ( list.V[i].getKey ( ) < pivot.getKey( ) && ++ k != i ) Swap ( list.V[k], list.V[i] ); //小于基准的交换到左侧去Swap ( list.V[low], list.V[k] ); //将基准对象就位return k; //返回基准对象位置}(1)试画出它的程序流程图;(2)试利用路径覆盖方法为它设计足够的测试用例(循环次数限定为0次,1次和2次)。
实验二:下面是选择排序的程序,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小n。
算法中用到两个操作,一是取某数组元素V[ i]的关键码操作getKey ( ),一是交换两数组元素内容的操作Swap( ):void SelectSort ( datalist & list ) {//对表list.V[0]到list.V[n-1]进行排序,n是表当前长度。
白盒-黑盒测试与及QTP自动化测试实验报告
本科实验报告课程名称:软件测试方法与技术实验项目:白盒-黑盒测试与QTP自动化测试实验地点:实验中心21015 {x=4,y=9,z=9}路径覆盖P(1-3-5)16 {x=0,y=5,z=10} 基本路径覆盖P (ACE)17 {x=2,y=5,z=8} 基本路径覆盖P (ABCE)18 {x=4,y=6,z=9} 基本路径覆盖P (ABCDE)六.实验结果与分析用例结果1 2 3 4 5 6 7 8 9k=8;j=1 k=35;j=1 k=0;j=0 k=35;j=1 k=0;j=0 k=35;j=1 k=0;j=0 k=19;j=01 k=0;j=110 11 12 13 14 15 16 17 18k=0;j=1 k=0;j=0 k=0;j=0 k=9;j=0 k=0;j=0 k=35;j=1 k=0;j=0 k=9;j=0 k=23;j=1 七.讨论、心得通过此次实验,了解并掌握了白盒测试的基本测试方法。
熟悉并掌握了语句覆盖,判定覆盖,条件覆盖,判定条件覆盖,条件组合覆盖,路径覆盖和基本路径覆盖的各项覆盖标准。
通过实验掌握了逻辑覆盖测试,和测试用例,掌握了流程图的绘制。
实验名称实验二黑盒测试方法一.实验目的和要求1.熟练掌握黑盒测试方法中的大家类测试方法和边界值测试方法;2.通过实验掌握如何运用黑盒测试方法设计测试用例。
3.运用所学理论,完成实验研究的基本训练过程。
二.实验内容和原理1.用你熟悉的语言编写一个判断三角形问题的程序;要求:读入代表三角形边长的三个整数,判断他们是否能组成三角形。
如果能够,则输出三}}}六.实验结果与分析七.实验结果与分析通过实验,熟练的掌握了黑盒测试方法中的等价类测试方法和边界值测试方法,掌握了如何应用黑盒测试方法设计测试用例。
一进步熟练了C语言的编程方法。
实验名称实验三 QTP自动化测试一.实验目的和要求1.了解QTP软件自动化测试原理和方法;2.掌握QTP检查点的插入,能够利用QTP软件进行功能测试和回归测试。
实验3白盒测试(一)
南京信息工程大学实验(实习)报告一、实验目的理解白盒测试的基本方法,掌握语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖等代码覆盖测试策略,并能运用相应的方法设计测试用例二、实验时间2学时三、实验准备主流PC 机一套,要求安装windows 操作系统和Office 工具及相应编程软件;四、实验内容被测程序:寻找最大数程序:max.numbers程序操作说明:从键盘输入3个整数(间隔为空格),找出并输出其中数值最大的那一个。
如果其中有一个以上的最大数(相等的情况),也要表示出来。
#include<stdio.h>1 void main()2 {3 int i,a,b,c;4 i = 0;5 while(i<100) {6 printf("Enter numbers: ");7 scanf("%d %d %d",&a,&b,&c);8 if(a>b)9 {10 if(a>c)11 printf("max. a=%d\n",a);12 else if(a==c)13 printf("max. a=c=%d\n",c);14 else15 printf("max. c=%d\n",c);16 }17 else{18 if(a==b)19 {20 if(a>c)21 printf("max. a=b=%d\n",a);22 else23 if(a==c)24 printf("max. a=b=c=%d\n",c);25 else26 printf("max. c=%d\n",c);27 }28 else{29 if(b>c)30 printf("max. b=%d\n",b);31 else32 if(b==c)33 printf("max. b=c=%d\n",b);34 else35 printf("max. c=%d\n",c);36 }37 }38 i++;39 }40 }1.程序流程图:\2.控制流图:5条件覆盖设条件(5)i<100真为T1,假为F1设条件(8) a>b真为T2,假为F2;设条件(10)a>c真为T3,假为F3;设条件(12)a==c真为T4,假为F4;设条件(18)a==b真为T5,假为F5;设条件(20)a>c真为T6,假为F6;设条件(23)a==c真为T7,假为F7;设条件(29)b>c真为T8,假为F8;设条件(32)b==c真为T9,假为F9;9圈复杂度V(G)=8个判定节点+1=9五、实验心得通过本次实验,让我对白盒测试的基本方法有了更深一步的了解,掌握了语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖等方法,学会圈复杂度的计算,收获了很多。
实验1白盒测试
实验一白盒测试用例设计班级: 11511 学号: 20113051119 姓名:张琳静一.实验目的1.掌握白盒测试用例设计方法;2.综合运用所学的白盒测试方法设计进行测试用例设计;3.掌握测试用例的编写方法。
二.实验内容及要求1.使用逻辑覆盖法测试以下程序段。
private void DoWork(int x, int y, int z)1 {2 int k = 0, j = 0;3 if ((x > 3) && (z < 10))4 {5 k = x * y - 1;6 j = (int)Math.Sqrt(k);7 }8 if ((x == 4) || (y > 5))9 j = x * y + 10;10 j = j % 3;11 lbResult.Text = "k=" + k.ToString() +" j=" +j.ToString () ;12 }说明:程序段中每行开头的数字是对每条语句的编号。
要求:(1)画出程序的控制流图(用题中给出的语句编号表示)。
(2)分别以语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和路径覆盖法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。
(3)执行测试用例,并记录测试结果。
2.基本路径测试按要求对下面的代码进行测试。
代码功能是:用折半查找在元素呈升序排列的数组中查找值为key的元素。
代码如下:private int BinSearch(int [] array,int key)1 {2 int mid,low,high;3 low=0;4 high = array.Length - 1;5 while (low <= high)6 {7 mid = (low + high) / 2;8 if (key == array[mid])9 return mid;10 else if (key < array[mid])11 high = mid - 1;12 else13 low = mid + 1;14 }15 return -1;16 }(1)画出该程序的控制流图;(2)计算该程序的环路复杂度;(3)用基本路径测试法设计测试路径,之后为各测试路径设计测试用例,并记录执行结果。
白盒测试实验报告-范例
实验报告书实验一白盒测试学生姓名:李庆忠专业:计算机科学与技术学号:17白盒测试实验报告一实验内容1、系统地学习和理解白盒测试的基本概念、原理,掌握白盒测试的基本技术和方法;2、举例进行白盒测试,使用语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖、路径覆盖进行测试。
3、通过试验和应用,要逐步提高和运用白盒测试技术解决实际测试问题的能力;4、熟悉C++编程环境下编写、调试单元代码的基本操作技术和方法;5、完成实验并认真书写实验报告(要求给出完整的测试信息,如测试程序、测试用例,测试报告等)二实验原理白盒测试原理:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。
它是把测试对象看作装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。
这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。
其又称为结构测试。
流程图如下图所示实验代码#include""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可覆盖所有判定。
条件覆盖是指选择语句多数的测试,使得程序判定中的每个条件能获得各种不同的结果。
白盒测试任务书
实验一:白盒测试任务书1.实验内容:编写一个程序,循环从标准输入读入某雇员的工作时间(以小时计)和每小时的工资数,计算并输出他的工资。
若雇员月工作小时超过40小时,则超过部分按原工资的1.5倍的加班工资来计算。
若雇员月工作小时超过50小时,则超过50的部分按原工资的3倍的加班工资来计算,而40到50小时的工资仍按照原工资的1.5倍的加班工资来计算。
2.实验要求:分别用白盒测试方法中语句覆盖条件覆盖X<=40为真记为T1x>40为假记为-T1x>50为真记为T2X<=40为真记为T1x>40为假记为-T1x>50为真记为T23.程序参考:#include <iostream.h>double main(){int hours;double payment,wage;cout<<"please input hours and per hour pay:";cin>>hours>>wage;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:"<<payment;return payment;}提交作业命名格式:。
1实验报告--白盒测试讲解
《白盒测试》一、企业发放奖金根据利润提成,利润I 低于或者等于10万元时,奖金可提10%;利润高于10万,低于20万元时候,其中10万元按10%提取,高于10万部分,可提成7.5% ;200000<1<=400000时,其中低于20万仍按上述办法提成(下同),高于20万部分按5%提 成;400000<1<=600000时,高于40万元的部分按 3%提成;600000<1<=1000000时,高于 60万元的部分按1.5%提成;1>1000000时,超过100万的部分按1%提成。
从键盘输入当月 利润,求应发放的奖金。
i>600000&&i <=1000000w=33500+(i-600000)*0.0151.使用逻辑覆盖测试方法设计测试用例w=10000+(i-100000)*0.07 5;Ti>200000&&i <=400000w=17500+(i-200000)*0.05Ti>400000&&i <=600000w=27500+(i-400000)*0.03Fw=i*0.1i>1000000w=39500+(i-1000000)*0.01规定:r=rightl=left1、判定覆盖设计相应的测试用例(为变量i赋予特定的值),可以使判定A、B、C、D、E、G分别为真和假。
表1判定覆盖测试用例2、条件覆盖表2条件覆盖测试用例3、判定-条件覆盖设计足够的测试用例,使得判断条件中的所有条件可能取值至少执行一次, 同时,所有判断的可能结果至少执行一次。
表3判定-条件覆盖测试用例4■条件组合覆盖设计足够的测试用例,使得判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果也至少出现一次。
表4条件组合覆盖测试用例4、基本路径覆盖涉设计所有的测试用例来覆盖程序中的所有可能的、独立的执行路径(1).根据测试用例编写主要代码如下:Ipublic static void main( Stri ng[] args) {// TODO Auto-ge nerated method stub2Scanner sc=new Scann er(System.i n);3double i=sc. nextDouble();4double w=1;5if(i>0&&i<=100000){6w=i*0.1;7}8if(i>100000&&i<=200000){9w=10000+(i-100000)*0.075;11if(i>200000&&i v=400000){12w=17500+(i-200000)*0.05;13}14if(i>400000&&i v=600000){15w=27500+(i-400000)*0.03;16}17if(i>600000&&i v=1000000){18w=33500+(i-600000)*0.015;19}20if(i>1000000){21w=39500+(i-1000000)*0.01;22}23System.out.println(”您所得的提成为"+w+"元!");24}可得如下程序流程图:(2)•计算程序环路复杂度为6.(3).确定基本路径⑪5—>9—>23②.5—>11—>12—>23③.5—>11—>14—>15—>23④.5—>11—>14—>17—>18—>23⑤.5—>11—>14—>17—>20—>21—>23>23⑥ 5—>11 — >14— >17— >20— >23(4) •准备测试用例,确保基本路径组中的每一条路径被执行一次。
实验1 白盒测试技术(4学时)
实验1:白盒测试用例设计实验目的1.理解白盒测试意义和目的2. 掌握逻辑覆盖测试进行白盒测试测试3.掌握独立路径测试方法。
实验内容运用覆盖及路径测试方法,使用白盒测试法为下列的 JAVA 程序设计测试用例。
下面是一个洗牌、发牌程序的规格说明:1.输入玩牌的张数,有52、48张;2.如有52张牌,则输入玩牌人数,4或2人,输入人数后打出发牌结果;如果输入人数不对,则退出程序;3.如有48张牌,则输入玩牌人数,3或4人,输入人数后打出发牌结果;如果输入人数不对,则退出程序;import java.util.*;import java.io.*;import javax.swing.*;public class cardTest {public static void main(String[] args) {String[] suit = {"黑桃", "红桃", "梅花", "方块"};String[] rank = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};ArrayList list = new ArrayList();for (int i = 0; i < suit.length; i++) {for (int j = 0; j < rank.length; j++) {list.add(suit[i] + rank[j]);}}for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i) + " ");}Collections.shuffle(list); //将list中的元素重新随机排序int cardnum = Integer.parseInt(JOptionPane.showInputDialog("有多张牌?请输入整数52,48"));if (cardnum == 48) {list.remove("红桃2");list.remove("方块2");list.remove("梅花2");list.remove("方块A");int player1 = Integer.parseInt(JOptionPane.showInputDialog("请输入人数:3或4的整数"));if (player1 == 3) {for (int i = 0; i < 3; i++) {System.out.print("玩家" + i + ": ");for (int j = i * 16; j < (i + 1) * 16; j++) {System.out.print(list.get(j+1) + " ");}System.out.println();}}else if(player1 == 4) {for (int i = 0; i < 4; i++) {System.out.print("玩家" + i + ": ");for (int j = i * 12; j < (i + 1) * 12; j++) {System.out.print(list.get(j) + " ");}System.out.println();}}else{JOptionPane.showMessageDialog(null,"输入错误!");System.exit(0);}}else {int player1 = Integer.parseInt(JOptionPane.showInputDialog("请输入人数:整数2或4"));if (player1 == 2) {for (int i = 0; i < 3; i++) {System.out.print("玩家" + i + ": ");for (int j = i * 24; j < (i + 1) * 24; j++) {System.out.print(list.get(j) + " ");}System.out.println();}}else {for (int i = 0; i < 4; i++) {System.out.print("玩家" + i + ": ");for (int j = i * 13; j < (i + 1) * 13; j++) {System.out.print(list.get(j) + " ");}System.out.println();}}}}}1.要求为加粗代码行画出控制流图;2.要求采用覆盖测试法设计测试用例;3.要求采用独立路径测试法设计测试用例。
白盒测试实验一
白盒测试实验一
一:实验目的
1.通过实验熟悉测试用例设计
2.通过实验熟悉白盒测试
二:实验内容1:
1.用Java编写一个类来完成以下函数的函数,并编写另一个类来调用该方法:
voiddowork(intx,inty,intz){
intk=0,j=0;
if((x>3)&&(z<10)){
k=x*y-1;//语句块1J=sqrt(k);}
if((x==4)||(y>5)){
j=x*y+10;//语句块2}
j=j%3;//语句块3}
步骤:
1、画出上面函数的流程图。
2.使用语句覆盖、决策覆盖、条件覆盖、决策条件覆盖、条件组合测试和路径测试设计测试用例
二:实验内容2
公共类测试{staticvoiddowork(intx,inty,intz){intk=0,j=0;if((x>3)和&(z<10)){k=x*y-1;j=(int)math.sqrt(k);}如果((x==4)|(y>5))
{j=x*y+10;}j=j%3;系统出来println(\system.out.println
(\}publicstaticvoidmain(string[]args){dowork(4,6,5);}
步骤:
1.画一张流程图。
2、分别使用语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合测试、路径测试设计测试用例。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
白盒测试实验一
一:实验目的
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
}
步骤:
1、画出上面函数的流程图。
2、分别使用语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合测试、路径测试设计测试用例
二:实验内容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);
}
}
步骤:
1、画出流程图。
2、分别使用语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合测试、路径测试设计测试用例。