实验1 白盒测试实验报告

合集下载

软件测试白盒测试实验

软件测试白盒测试实验

实验1测试实现源程序,使用路径测试法测试以下程序(要求完成实验报告)#include<iostream.h>/*static */int sign=0;static char m='T',n='T';//int logicExample(int,int);int logicExample(int x,int y){int magic=0;if(x>0&&y>0){magic=x+y+10;sign++;}else{magic=x+y-10;m='F';}if(magic<0){magic=0;sign+=2;}else n='F';return magic;}main(){int x,y;//static int sign=0;//static char m='T',n='T',char p[4][5]={"acef","abef","acdf","abdf"};cout<<"---------------"<<'\n';cout<<"请输入x:";cin>>x;cout<<"请输入y:";cin>>y;cout<<"magic 已知:0"<<endl;cout<<"---------------"<<'\n';cout<<"测试结果分别是:"<<'\n';cout<<"---------------"<<'\n';cout<<"x的值y的值logic的值判定M 判定N 覆盖路径"<<endl;cout<<"---------------------------------------------------------"<<'\n';cout<<x<<" "<<y<<" "<<logicExample(x,y)<<" "<<m;cout<<" "<<n<<" "<<p[sign]<<endl; }《软件测试与质量保证》实验报告书实验一白盒测试学生姓名:学号:班级:指导老师:专业:软件工程提交日期:201X年12月XX日白盒测试实验报告一实验内容1、系统地学习和理解白盒测试的基本概念、原理,掌握白盒测试的基本技术和方法;2、举例进行白盒测试,使用路径覆盖进行测试。

白盒测试实验报告范本

白盒测试实验报告范本

实验一:白盒软件测试一、实验目的通过简单程序白盒测试,熟悉测试过程,对软件测试行程初步了解,并养成良好的测试习惯。

熟练掌握如何运用基路径测试方法进行测试用例设计,初步熟悉如何利用程序插装技术进行逻辑覆盖率分析。

二、实验内容背景:被测测试程序功能:计算被输入日期是星期几;程序定义:已知公元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、题目内容描述针对实验一编写的源代码进行白盒测试。

要求绘制出程序的控制流图,采用逻辑覆盖和基路径方法设计测试用例。

执行测试用例,并分析测试结果。

可以使用C++Test对代码进行静态检查和动态测试。

2、测试用例的编写根据条件绘制程序流程图如下:开scanf(%d %d%d,&m_num1,m_num2,&m_nu3m_num1+m_num2<=m_nuScan(EO3不是潣瑵m_num1+m_n<<end角m3<=m_numm_num2+m_nm3<=m_numm_num1==m_um结m_num1==m_等边潣瑵um角<<endm_num1==m_umm_num1==m_umcoum_num2==m_等腰三角um<<endcou一般三角<<endl由程序流程图得如下控制流图:111114采用逻辑覆盖设计测试用例并执行测试用例:(1)语句覆盖:测试路测试结1-2-3-不是三角1-2-3-6-7-8一般三角1-2-3-6-7-8-等边三角1-2-3-6-7-8-10-1等腰三角形(2)判定覆盖测试结果测试路径输入M_num1M_num2M_num33541-2-3-6-7-8-一般三角形.(3)条件覆盖:输入测试结果测试路径M_num2M_num3M_num11-2-3-5213不是三角形11-2-3-6-523不是三角形1-2-3-6-7-5321不是三角形333 1-2-3-6-7-8-9等边三角形4531-2-3-6-7-8-一般三角形3341-2-3-6-7-8-10-13等腰三角形34基路径方法设计测试用例并执行测试用例:、测试结果分析3.经过以上测试发现:程序无法结束,达不到预测结果。

白盒测试实验报告

白盒测试实验报告

白盒测试实验报告一、实验目的本次白盒测试实验的主要目的是深入理解白盒测试的基本原理和方法,通过对给定程序的分析和测试,掌握代码覆盖的评估标准,提高测试用例的设计能力,发现程序中的逻辑错误和潜在缺陷,从而保障软件的质量和可靠性。

二、实验环境本次实验使用的编程环境为具体编程环境名称,测试工具为具体测试工具名称。

三、实验内容1、被测试程序的功能描述被测试程序是一个简单的数学计算程序,用于实现两个整数的加法、减法、乘法和除法运算。

程序接收用户输入的两个整数,并根据用户选择的运算类型进行相应的计算,最后输出计算结果。

2、程序代码分析以下是被测试程序的部分关键代码:```pythondef add_numbers(num1, num2):return num1 + num2def subtract_numbers(num1, num2):return num1 num2def multiply_numbers(num1, num2):return num1 num2def divide_numbers(num1, num2):if num2!= 0:return num1 / num2else:return "除数不能为 0"```3、测试用例设计为了全面测试程序的功能,设计了以下测试用例:|测试用例编号|输入数据(num1, num2, 运算类型)|预期输出|||||| 1 |(5, 3, 'add')| 8 || 2 |(5, 3,'subtract')| 2 || 3 |(5, 3,'multiply')| 15 || 4 |(6, 2, 'divide')| 3 || 5 |(5, 0, 'divide')|除数不能为 0 |4、代码覆盖分析在执行测试用例的过程中,使用测试工具对代码的覆盖情况进行了分析。

结果显示,语句覆盖达到了 100%,但分支覆盖只达到了 80%。

最新白盒测试实验报告

最新白盒测试实验报告
二:程序
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;
(五)DIY手工艺品的“价格弹性化”执行路径
小饰品店往往会给人零乱的感觉,采用开架陈列就会免掉这个麻烦。“漂亮女生”像是个小超市,同一款商品色彩丰富地挂了几十个任你挑,拿上东西再到收银台付款。这也符合女孩子精挑细选的天性,更保持了店堂长盛不衰的人气。覆盖条件
覆盖分支
1 4, 4, 5
ace
T1,T2,T3,T4
3,5,5
动漫书籍□化妆品□其他□abe
3、竞争对手分析-T1,T2,-T3,T4
be
4,4,11
abe
(3)优惠多T1,-T2,T3,-T4
300-400元1632%be
可是创业不是一朝一夕的事,在创业过程中会遇到很多令人难以想象的疑难杂症,对我们这些80年代出生的温室小花朵来说,更是难上加难。
4.
判断覆盖:测试用例能使被测程序中的每个判断至少取得一次“真”和一次“假”。又称分支覆盖。
条件覆盖:测试用例能使被测程序中的每个判断的每个条件至少取得一次“真”和一次“假”。如果判断中只有一个条件,则条件覆盖便满足判断覆盖,否则,不一定。
判断/条件覆盖:测试用例既满足判断覆盖,又满足条件覆盖。
条件组合覆盖:测试用例使每个判定中所有可能的条件取值组合至少执行一次。

实验一白盒实验

实验一白盒实验

实验一、白盒测试一、实验目的: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 白盒测试技术(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、计算机(要求: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、对一个已知的程序进行测试。

白盒测试(一)

白盒测试(一)

XX大学软件质量控制和测试实验(实习)报告实验(实习)名称白盒测试(一)实验(实习)日期 2011-12-2 得分指导老师系专业班级 1 姓名学号一、实验目的理解白盒测试的基本方法,掌握语句覆盖、分支覆盖、条件覆盖、路径覆盖等代码覆盖测试策略,并能应用白盒测试技术设计测试用例二、实验内容1.题目一:使用逻辑覆盖测试方法测试以下程序段(必做)void DoWork (int x,int y,int z){1 int k=0, j=0;2 if ( (x>3)&&(z<10) )3 {4 k=x*y-1;5 j=sqrt(k);6 }7 if((x==4)||(y>5))8 j=x*y+10;9 j=j%3;10 }说明:程序段中每行开头的数字(1~10)是对每条语句的编号。

(1)画出程序的控制流图(用题中给出的语句编号表示)。

(2)分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。

2.题目二:折半查找(选做)请按要求对下面的java 代码进行测试。

代码的功能是:用折半查找法在元素呈升序排列的数组中查找值为key 的元素。

public int binSearch ( int array[], int key ) {int mid, low, high;low = 0;high = array.length-1;while ( low <= high ) {mid = (low +high)/2;if ( key = = array [mid] )return mid;else if ( key < array [mid] )high = mid -1;elselow = mid + 1}return -1;}(1)试计算此程序段的McCabe 复杂性;(2)用基本路径覆盖法给出测试路径;(3)为各测试路径设计测试用例。

软件工程实验报告

软件工程实验报告

软件工程实验报告学号:姓名:专业:年月实验一:白盒测试一、实验目的巩固白盒测试知识,对于给定的待测程序,能熟练应用基本控制流覆盖方法设计测试用例;能够执行白盒测试过程,并撰写白盒测试分析报告。

二、实验内容白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试,一般用来分析程序的内部结构。

测试规划基于产品内部结构进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分使用,则这种测试方法称为白盒测试方法。

白盒测试将被测程序看做一个打开的盒子,测试者能够看到被测源程序,可以分析被测程序的内部结构,此时测试的焦点集中在根据其内部结构设计测试用例。

白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说这种测试是“基于覆盖率的测试”。

测试内容包括语句覆盖测试、分支覆盖测试、条件覆盖测试、分支/条件覆盖测试、条件组合覆盖测试和基本路径测试。

三、程序代码要求:实现对不少于10个随机输入的数的冒泡排序算法。

#include<iostream>using namespace std;int main(){double a[100];int N;int i = 0, j = 0;cin >> N;//排序元素的个数for (i = 0; i <= N; i++){cin >> a[i];}for (i = 0; i < N-1 ; i++) {for (j = 0; j < N - 1 - i; j++){if (a[j] > a[j + 1]) {int tmp;tmp = a[j];a[j] = a[j + 1];a[j + 1] = tmp;}}}for (i = 0; i < N; i++){cout << a[i] <<" ";}cout << endl;return 0;}四、程序流程图五、测试内容(1)语句覆盖测试测试结果:①②测试结果分析:输入元素时需要输入的元素个数大于最初输入的元素个数。

软件测试实验报告一

软件测试实验报告一

广西科技大学实验报告专业:软件工程班级:软件132 学生姓名:李广贵学号:201300406067 指导老师:李威龙一,实验目的(1)掌握白盒测试技术,并能应用白盒测试技术设计测试用例(2)能用Junit实施测试二,实验内容(1)用白盒测试的基路径测试法测试一段代码(2)编写一个java类,并用Junit测试编写的java类三,实验过程(一)白盒测试1,用基路径测试法测试下面代码:public class Mysort {int result;public void sort(int iRecordNum,int iType){int x=0;int y=0;while(iRecordNum>0){if(iType==0){x=y+2;}else{if(iType==1){x=y+5;}else{x=y+10;}}iRecordNum--;result=x;}}public int getResult(){return result;}}2,控制流图程序的控制流图如图1所示:图13,计算圈复杂度流图中区域的数量对应于圈复杂度,,从图中可以直观的看出,其区域数为。

因此其圈复杂度为44,寻找独立路径1 path1:1-2-3-4-5-10-3-112 path2:1-2-3-4-6-7-9-10-3-113 path3:1-2-3-4-6-8-9-10-3-114 path4:1-2-3-115,导出测试用例为了确保基本路径集中的每一条路径的执行,根据判断节点给出的条件,选择适当的数据以保证某一条路径可以倍测到。

(二)Junit测试(1)编写一个java类,用Junit测试结果正误public class Caculator {private int result; //静态变量,用于存储运行结果public void add(int n){result=result+n;}public void substract(int n){result=result-1;//Bug:正确的应该是result=result-n;}public void multiply(int n){//此方法尚未写好}public void divide(int n){result=result/n;}public void square(int n) {result=n*n;}public void squareRoot(int n) {for(;;); //Bug:死循环}public void clear(){result=0; //将结果清零}public int getResult(){return result;}}(2)生成JUnit测试框架完整代码如下:import static org.junit.Assert.*;import org.junit.After;import org.junit.Before;import org.junit.Test;import org.junit.Ignore;public class CaculatorTest {Caculator calculator=new Caculator();@Beforepublic void setUp() throws Exception {}@Afterpublic void tearDown() throws Exception {}@Testpublic void testAdd() {calculator.add(1);calculator.add(3);assertEquals(4, calculator.getResult()); }@Testpublic void testSubstract() {calculator.add(5);calculator.add(3);assertEquals(2, calculator.getResult()); }@Ignore("Multiply() Not yet implemented") public void testMultiply() {fail("尚未实现");}@Testpublic void testDivide() {fail("尚未实现");}}四,实验结果及分析:1,白盒测试:(1)测试用例如下:用例编号路径输入数据预期输出1 Path1:1-2-3-4-5-10-3-11 iRecording=1,iType=0 X=22 path2:1-2-3-4-6-7-9-10-3-11 iRecording=1,iType=1 X=5X=103 path3:1-2-3-4-6-8-9-10-3-11 iRecordNum=1,iType=34 path4:1-2-3-11 iRecordNum=1 X=0(2)结果分析:设计四个测试用例分别覆盖四条路径,并给出预期结果。

白盒测试实验报告

白盒测试实验报告

关于三角形问题的白盒测试实验报告一、实验目的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<<"等边三角形"<<endl;else if (m_num1==m_num2 || m_num1==m_num3 || m_num2==m_num3)cout<<"等腰三角形"<<endl;elsecout<<"一般三角形"<<endl;}else{cout<<"不是三角形"<<endl;}}}void main(){int a,b,c;Judge(a,b,c);}。

白盒-黑盒测试与及QTP自动化测试实验报告

白盒-黑盒测试与及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软件进行功能测试和回归测试。

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

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

第一章白盒测试实验1 语句覆盖【实验目的】1、掌握测试用例的设计要素和关键组成部分。

2、掌握语句覆盖标准,应用语句覆盖设计测试用例。

3、掌握语句覆盖测试的优点和缺点。

【实验原理】设计足够多的测试用例,使得程序中的每个语句至少执行一次。

【实验内容】根据下面提供的程序,设计满足语句覆盖的测试用例。

1、程序1源代码如下所示:#include <iostream.h>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 <<”普通三角形”;}输入数据预期输出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源代码如下所示:输入数据预期输出x=6 z=3 x=4 y=6k=35 j=34x=6 z=3 x=3 y=5k=29 j=25x=6 z=11 x=4 y=8k=0 j=42x=6 z=3 x=2 y=4k=23 j=03、程序3源代码如下所示:预期输出x y magic4418400040100-585-1-104、程序4源代码如下所示:printf("请输入借书证号:");scanf("%d",&borrowerid);for(int i=0;i<10;i++){if(borrowers[i].id==borrowerid){ a=i; flag=false; break; }}if(a==0)printf("\n您的借书证号出错.\n");if(borrowers[a].books==4) {printf("\n您已达最大借书量.\n");flag=true;}}printf("请输入图书编号:");scanf("%d",&bookid);printf("借书成功!!\n");printf("借书证号图书编号剩余借书量\n");printf("%d %d %d\n",borrowers[a].id,bookid,borrowers[a].books-1); }缺陷:1.当输入借书证号为非数值型时程序会陷入死循环2.当输入图书编号为非数值型时程序会异常退出5、程序5源代码如下所示:#include<stdio.h>int Search(int somearray[],int size,int value){for(int i=1;i<=size;i++){if(sonearray[i]==value)return i;}return -1;}void main(){int size=6;int value;int array[size]={5,8,-56,235,-65,449};do{printf(“请输入一个整数:”);scanf(“%d”,&value);}while(int(value)!=value);if(int(value)==value)Search(array,size+1,value);}程序存在错误:修改错误后程序依然无法输出,定义value直接退出程序【实验要求】1、实验前认真听讲,服从安排,独立思考并与小组成员合作完成实验。

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

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

软件测试白盒测试实验报告软件测试白盒测试实验报告引言:软件测试是确保软件质量的重要环节之一。

在软件开发过程中,白盒测试是一种常用的测试方法,通过对软件内部结构进行检查,以验证其是否符合设计要求和预期功能。

本文将对进行的白盒测试实验进行详细报告和分析。

实验目的:本次实验的目的是通过对一个简单的软件系统进行白盒测试,验证其内部逻辑和代码的正确性,并发现可能存在的缺陷和错误。

通过实验,我们希望能够了解白盒测试的基本原理和方法,并掌握其实际应用技巧。

实验环境:本次实验使用的软件系统是一个简单的计算器应用,开发语言为Java。

实验环境包括Java开发工具集(JDK)和集成开发环境(IDE),以及相关的测试工具和框架。

实验过程:1. 理解需求:首先,我们仔细阅读了计算器应用的需求文档,了解了其基本功能和预期行为。

2. 设计测试用例:根据需求文档,我们设计了一系列测试用例,覆盖了计算器应用的各个功能模块和边界条件。

测试用例包括输入合法数字、输入非法字符、进行加减乘除运算等。

3. 编写测试代码:根据设计的测试用例,我们编写了相应的测试代码。

测试代码主要包括模拟用户输入、调用计算器应用的相关方法,并对返回结果进行断言和验证。

4. 执行测试:在完成测试代码编写后,我们使用测试工具和框架对计算器应用进行了测试。

测试过程中,我们记录了每个测试用例的执行结果和异常情况,并对其进行了分类和整理。

实验结果:经过测试,我们发现了一些计算器应用存在的问题和潜在的缺陷。

其中,一些常见的问题包括:1. 输入非法字符时,计算器应用没有进行有效的错误处理,导致程序崩溃或返回错误结果。

2. 在进行除法运算时,计算器应用没有对除数为零的情况进行判断和处理,导致程序异常。

此外,我们还发现了一些较为隐蔽的问题,例如:1. 在进行大数计算时,计算器应用没有进行溢出检查和处理,导致结果不准确。

2. 在进行浮点数计算时,计算器应用没有进行舍入误差的处理,导致结果不精确。

白盒测试实验报告

白盒测试实验报告

《软件测试技术》实验报告实验序号:03 实验项目名称:使用基本路径覆盖法测试自动售货机程序一、实验目的及要求理解并掌握分支和条件覆盖测试法,能够实际运用;理解并掌握基本路径覆盖测试法,能够实际运用使用Eclipse+JUnit+EclEmma进行单元测试。

二、实验设备(环境)及要求●开发环境:Eclipse v3.7及以上版本;JUnit v4.10及以上版本;文本编辑软件。

●硬件要求:CPU PIV 以上,256M 内存,1G 硬盘空间。

●系统要求:Windows98/Me/XP/NT/2000,IE 5 以上。

三、实验内容与步骤1.下载并安装Eclipse+JUnit+EclEmma实验环境;2.通读自动售货机程序,并在Eclipse环境下运行该程序;3.设计自动售货机程序相关的分支覆盖测试用例并进行测试4.设计自动售货机程序相关的条件覆盖测试用例并进行测试。

5.使用基本路径测试法设计测试用例;⏹绘制程序控制流图:⏹计算环路复杂度;⏹确定基本路径;⏹设计测试用例6.完整填写以下表格编号输入值Type输入值money状态预期输出实际情况001 Beer 5C 各资源剩余Input InformationType: Beer; Money: 5 Cents; Change: 0Current StateBeer: 5Orange Juice: 65 Cents: 71 Dollar: 6002 OrangeJuice 5C 各资源剩余Input InformationType: OrangeJuice; Money: 5 Cents; Change: 05角零钱Change Shortage 样008 OrangeJuice 1D 各资源均有剩余Input InformationType: OrangeJuice; Money: 1 Dollar;Change: 5 CentsCurrent StateBeer:6Orange Juice: 55 Cents: 51 Dollar: 7与预期不一样009 OrangeJuice 1D 没有橙汁Failure InformationOrangeJuice Shortage与预期不一样010 Cola 1D 各资源剩余Failure InformationType Error与预期一样011 Beer 1D 没有零钱Failure InformationChange Shortage与预期不一样012 OrangeJuice 4C 各资源剩余Failure InformationMoney Error与预期一样用有缺陷的代码测试结果:修改代码后:所有测试成功、使用EclEmma检测测试用例覆盖率达100%五、分析与讨论这次试验基于上次的试验,围绕白盒测试的基本路径覆盖法测试进行测试。

白盒测试实验报告-范例

白盒测试实验报告-范例

实验报告书实验一白盒测试学生姓名:李庆忠专业:计算机科学与技术学号: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可覆盖所有判定。

条件覆盖是指选择语句多数的测试,使得程序判定中的每个条件能获得各种不同的结果。

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

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、操作系统:Windows 102、开发工具:Eclipse3、编程语言:Java三、实验内容本次实验选取了一个简单的 Java 程序,该程序的功能是计算两个整数的和、差、积、商。

以下是程序的代码:```javapublic class Calculator {public static void main(String args) {int num1 = 10;int num2 = 5;int sum = calculateSum(num1, num2);int difference = calculateDifference(num1, num2);int product = calculateProduct(num1, num2);int quotient = calculateQuotient(num1, num2);Systemoutprintln("两数之和为:"+ sum);Systemoutprintln("两数之差为:"+ difference);Systemoutprintln("两数之积为:"+ product);Systemoutprintln("两数之商为:"+ quotient);}public static int calculateSum(int num1, int num2) {return num1 + num2;}public static int calculateDifference(int num1, int num2) {return num1 num2;}public static int calculateProduct(int num1, int num2) {return num1 num2;}public static int calculateQuotient(int num1, int num2) {if (num2 == 0) {Systemoutprintln("除数不能为 0");return -1;}return num1 / num2;}}```四、实验步骤1、代码审查对程序的整体结构进行分析,包括类的定义、方法的声明和调用等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章白盒测试
实验1 语句覆盖
【实验目的】
1、掌握测试用例的设计要素和关键组成部分。

2、掌握语句覆盖标准,应用语句覆盖设计测试用例。

3、掌握语句覆盖测试的优点和缺点。

【实验原理】
设计足够多的测试用例,使得程序中的每个语句至少执行一次。

【实验内容】
根据下面提供的程序,设计满足语句覆盖的测试用例。

1、程序1源代码如下所示:
#include <iostream.h>
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 <<”普通三角形”;
}
输入数据预期输出
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源代码如下所示:
输入数据预期输出
x=6 z=3 x=4 y=6k=35 j=34
x=6 z=3 x=3 y=5k=29 j=25
x=6 z=11 x=4 y=8k=0 j=42
x=6 z=3 x=2 y=4k=23 j=0
3、程序3源代码如下所示:
预期输出
x y magic
4418
400
040
100-585
-1-10
4、程序4源代码如下所示:
printf("请输入借书证号:");
scanf("%d",&borrowerid);
for(int i=0;i<10;i++)
{
if(borrowers[i].id==borrowerid)
{ a=i; flag=false; break; }
}
if(a==0)
printf("\n您的借书证号出错.\n");
if(borrowers[a].books==4) {
printf("\n您已达最大借书量.\n");flag=true;
}
}
printf("请输入图书编号:");
scanf("%d",&bookid);
printf("借书成功!!\n");
printf("借书证号图书编号剩余借书量\n");
printf("%d %d %d\n",borrowers[a].id,bookid,borrowers[a].books-1); }
缺陷:1.当输入借书证号为非数值型时程序会陷入死循环
2.当输入图书编号为非数值型时程序会异常退出
5、程序5源代码如下所示:
#include<stdio.h>
int Search(int somearray[],int size,int value)
{
for(int i=1;i<=size;i++)
{
if(sonearray[i]==value)
return i;
}
return -1;
}
void main()
{
int size=6;
int value;
int array[size]={5,8,-56,235,-65,449};
do
{
printf(“请输入一个整数:”);
scanf(“%d”,&value);
}while(int(value)!=value);
if(int(value)==value)
Search(array,size+1,value);
}
程序存在错误:
修改错误后程序依然无法输出,定义value直接退出程序【实验要求】
1、实验前认真听讲,服从安排,独立思考并与小组成员合作完成实验。

2、撰写实验报告。

3、提交文件统一压缩(命名:姓名+实验项目名称,如张三_语句覆盖.zip)。

实验心得
通过本次实验掌握测试用例的设计要素和关键组成部分,也掌握语句覆盖标准,应用语句覆盖设计测试用例和语句覆盖测试的优点和缺点,了解了白盒测试的基本过程,并能独立查找解决程序中的错误,本次实验受益良多。

相关文档
最新文档