实验二+116+陈洁

测试帖连接:http://www.cnblogs.com/ZQ4162/p/6623033.html

一、实验目的

掌握基于覆盖理论与基本路径的基本白盒测试方法和实践

二、实验要求

运用逻辑覆盖测试的覆盖准则设计被测程序的测试用例,并运行测试用例检查程序的正确与否,给出程序缺陷小结。

三、实验内容

1) 被测原代码

 1 public class Caculator {
 2     public static float commission(int Headphone,int Shell,int Protector){
 3         int All = Headphone*80+Shell*10+Protector*8; float commission = 0;
 4         if(All<1000&&All>=0)
 5             commission = (float) (All*0.1); System.out.println("本次销售所得佣金为:"+commission);
 6         else if(All>=1000 && All<=1800)
 7             commission = (float) (100+(All-1000)*0.15);System.out.println("本次销售所得佣金为:"+commission);
 8         else if(All>1800)
 9             commission = (float) (100+800*0.15+(All-1800)*0.2);  System.out.println("本次销售所得佣金为:"+commission);
10         return commission;
11     }
12     public static void main(String[] args){
13         while(true)
14         {
15             int Headphone=0;
16             int Shell=0;
17             int Protector=0;
18             Scanner scanner=new Scanner(System.in) ;
19             try{
20                     System.out.println("请输入耳机的销售情况:");
21                     Headphone=scanner.nextInt();
22                     System.out.println("请输入手机壳的销售情况:");
23                     Shell=scanner.nextInt();
24                     System.out.println("请输入手机膜的销售情况:");
25                     Protector=scanner.nextInt();
26                     scanner.close();
27             }catch(Exception e){
28                 System.out.println("出现异常:"+e);
29                 System.exit(-1);
30             }
31             if(Headphone>=0&&Shell>=0&&Protector>=0)
32                 commission(Headphone,Shell,Protector);
33             else
34                 System.out.println("输入有误,请重新输入!");
35         }
36     }
37 }

DD-路径(只压缩链路经)


程序图节点


DD-路径


21,23


A


25


B


31,3,4


C


5


D


6


E


7


F


8,9


G


10


H

2)依据覆盖技术,测试用例列表:

(1)语句覆盖


用例号


测试用例


覆盖路径


预期结果


实际结果


测试结论


1


-1,-1,-1


A,B


输入有误,请重新输入!


输入有误,请重新输入!


通过


2


20,20,20


A,B,C,E,G,H


252


252


通过

(2)判定覆盖


用例号


测试用例


覆盖路径


预期结果


实际结果


测试结论


1


-1,-1,-1


A,B


输入有误,请重新输入!


输入有误,请重新输入!


通过


2


20,20,20


A,B,C,E,F


252


252


通过

(3)条件覆盖


用例号


测试用例


H>=0


S>=0


P>=0


All<=1000


All<=1800


All>1800


覆盖路径


预期结果


实际结果


测试结论


1


1,-1,-1


T


F


F


F


F


F


A,B


输入有误,请重新输入!


输入有误,请重新输入!


通过


2


-1,1,1


F


T


T


F


F


F


A,B


输入有误,请重新输入!


输入有误,请重新输入!


通过


3


10,10,10


T


T


T


T


F


F


A,B,C,D,H


98


98


通过


4


20,10,10


T


T


T


T


T


F


A,B,C,E,F,H


217


217


通过


5


20,20,20


T


T


T


T


T


T


A,B,C,E,G,H


252


252


通过

(4)条件判定覆盖


用例号


测试用例


H>=0


S>=0


P>=0


All<=1000


All<=1800


All>1800


条件1

H>=0

S>=0

P>=0


覆盖路径


预期结果


实际结果


测试结论


1


1,-1,-1


T


F


F


F


F


F


F


A,B


输入有误,请重新输入!


输入有误,请重新输入!


通过


2


-1,1,1


F


T


T


F


F


F


F


A,B


输入有误,请重新输入!


输入有误,请重新输入!


通过


3


10,10,10


T


T


T


T


F


F


T


A,B,C,D,H


98


98


通过


4


20,10,10


T


T


T


T


T


F


T


A,B,C,E,F,H


217


217


通过


5


20,20,20


T


T


T


T


T


T


T


A,B,C,E,G,H


252


252


通过

(5)路径覆盖


用例号


测试用例


覆盖路径


预期结果


实际结果


测试结论


1


-1,-1,-1


A,B


输入有误,请重新输入!


输入有误,请重新输入!


通过


2


10,10,10


A,B,C,D,H


98


98


通过


3


20,10,10


A,B,C,E,F,H


217


217


通过


4


20,20,20


A,B,C,E,G,H


252


252


通过

3)相应Junit测试脚本、执行结果

 1 import org.junit.Test;
 2 import static org.junit.Assert.assertEquals;
 3 import java.util.Arrays;
 4 import java.util.Collection;
 5 import org.junit.runner.RunWith;
 6 import org.junit.runners.Parameterized;
 7 import org.junit.runners.Parameterized.Parameters;
 8
 9 @RunWith(Parameterized.class)
10
11 public class test1Test {
12
13      private int a;
14      private int b;
15      private int x ;
16      private float expected;
17      @Parameters
18      @SuppressWarnings("unchecked")
19      public static Collection date(){
20          Object[][] object={{1,6,9,21.2f},{16, 5, 9,160.3f},{15, 6, 5,145.0f},{30, 11, 22,397.2f}};
21          return Arrays.asList(object);
22      }
23      public test1Test(int a,int b,int x,float expected)
24      {
25          this.a=a;
26          this.b=b;
27          this.x=x;
28          this.expected=expected;
29      }
30
31     @Test
32     public void testAdd() {
33         Caculator c=new Caculator();
34          float result=0;
35          result=c.ca(a,b,x);
36          System.out.println(result);
37          assertEquals(expected,result,0.01);
38 }
39 }

4、测试小结:

1通过此次实验对白和测试有了进一步的了解,掌握了如何画DD路径图,以及对测试覆盖的各种方法有了更深入的了解。

2.深入了解了junit,使用junit单元测试框架极大加快了测试速度与效率能够同时测试多个用例节约测试时间。

时间: 2024-08-10 15:06:42

实验二+116+陈洁的相关文章

实验四+116+陈洁

一.实验目的 1) 学习QTP工具的使用 2)了解黑盒自动化测试 二.实验要求 (1)对被测程序进行黑盒测试用例设计 (2)对QTP的飞机订票系统的任一界面或控件实现自动化测试.(测试的具体自选) (3)写出该程序的缺陷. 三.实验内容 1.对QTP的样例小程序飞机订票系统,实现自动化测试.(学号被3整除,测3a;余1,测3b:余2,测4a) 2.要求: 1)写出飞机订票系统的被测需求. 自行选择需要测试的部分,根据自己的能力,可大,可小. 描述,被测程序,与被测部分的功能. 2)设计测试用例.

实验三+116+陈洁

一.实验目的 掌握黑盒测试用例设计方法 二.实验要求 (1)对被测程序进行黑盒测试用例设计 (2)运用等价类.边界值.决策表.状态图法等进行测试用例设计. (3)对手机上任意一款音乐软件进行黑盒测试实践. 三.实验内容 1.对被测程序运用不同的测试技巧进行测试用例设计,并执行测试,撰写测试小结. 测试帖链接:http://www.cnblogs.com/k511959373/p/6792729.html 1)被测项目界面. 2)测试用例设计表 等价类: 输入等价类 有效等价类 无效等价类 输入值

实验二+001+陈定国

一.实验目的 掌握基于覆盖理论与基本路径的基本白盒测试方法和实践 二.实验要求 运用逻辑覆盖测试的覆盖准则设计被测程序的测试用例,并运行测试用例检查程序的正确与否,给出程序缺陷小结. 三.实验内容 1) 被测原代码 import java.util.Scanner; public class Triangle{ public static void main(String[] args) { while(true){ System.out.println("请输入三角形的三条边:");

实验二+063+陈彧

一.实验目的 掌握基于覆盖理论与基本路径的基本白盒测试方法和实践 二.实验要求 运用逻辑覆盖测试的覆盖准则设计被测程序的测试用例,并运行测试用例检查程序的正确与否,给出程序缺陷小结. 三.实验内容 根据各位同学自己的被测程序,分别作出各类白盒测试技术的用例设计和相应的Junit脚本. 所有的覆盖的技术:语句覆盖.判定覆盖.条件覆盖.判定/条件覆盖.组合覆盖.路径覆盖,基本路径测试方法. 1) 被测原代码 package Test1; import java.io.IOException; imp

实验二+061+陈小兰

被测代码地址:http://www.cnblogs.com/chenyp1996/p/6619103.html 一.实验目的 掌握基于覆盖理论与基本路径的基本白盒测试方法和实践 二.实验要求 运用逻辑覆盖测试的覆盖准则设计被测程序的测试用例,并运行测试用例检查程序的正确与否,给出程序缺陷小结. 三.实验内容 根据各位同学自己的被测程序,分别作出各类白盒测试技术的用例设计和相应的Junit脚本. 所有的覆盖的技术:语句覆盖.判定覆盖.条件覆盖.判定/条件覆盖.组合覆盖.路径覆盖,基本路径测试方法.

实验二十四:SD卡模块

  驱动SD卡是件容易让人抓狂的事情,驱动SD卡好比SDRAM执行页读写,SD卡虽然不及SDRAM的麻烦要求(时序参数),但是驱动过程却有猥琐操作.除此此外,描述语言只要稍微比较一下C语言,描述语言一定会泪流满面,因为嵌套循环,嵌套判断,或者嵌套函数等都是它的痛.. 史莱姆模块是多模块建模的通病,意指结构能力非常脆弱的模块,暴力的嵌套行为往往会击垮模块的美丽身躯,好让脆弱结构更加脆弱还有惨不忍睹,最终搞垮模块的表达能力.描述语言预想驾驭SD卡,关键的地方就是如何提升模块的结构能力.简单而言,描述

【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二十三:DS1302模块

实验二十三:DS1302模块 DS1302这只硬件虽然曾在<建模篇>介绍过,所以重复的内容请怒笔者懒惰唠叨了,笔者尽可以一笑带过,废话少说让我们进入正题吧.DS1302是执行事实时钟(Real Time Clock)的硬件,采用SPI传输. 表示23.1 访问(地址)字节. [7] [6] [5] [4] [3] [2] [1] [0] 1 A5 A4 A3 A2 A1 A0 R/W DS1302作为从机任由主机蹂躏 ... 啊,是任由主机访问才对.对此,访问便有方向之分.如表23.1所示,访

操作系统(实验二、作业调度模拟程序实验)

实验二.作业调度模拟程序实验 专业 商业软件工程   姓名 丘惠敏 学号 201406114203 一.        实验目的   (1)加深对作业调度算法的理解: (2)进行程序设计的训练. 二.        实验内容和要求 用高级语言编写一个或多个作业调度的模拟程序. 单道批处理系统的作业调度程序.作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所运行的时间等因素. 三.        实验方法.步骤及结果测试   1.   

1111《操作系统教程》实验二 作业调度模拟程序

实验二 作业调度模拟程序 一.目的和要求 1. 实验目的 (1)加深对作业调度算法的理解: (2)进行程序设计的训练. 2.实验要求 用高级语言编写一个或多个作业调度的模拟程序. 单道批处理系统的作业调度程序.作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所运行的时间等因素. 作业调度算法: 1) 采用先来先服务(FCFS)调度算法,即按作业到达的先后次序进行调度.总是首先调度在系统中等待时间最长的作业. 2) 短作业优先 (SJF