首页 > 实验二 164 张增进

实验二 164 张增进

一、实验目的

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

二、实验要求

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

三、实验内容

根据各位同学自己的被测程序,分别作出各类白盒测试技术的用例设计和相应的Junit脚本。

所有的覆盖的技术:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖、路径覆盖,基本路径测试方法。

包括的内容有:

1) 被测原代码:

public class CodeModification {private static Scanner scanner;/** 耳机80元,手机壳10元,手机贴膜8元*/public static float commission(int headphoneNum,int mpShellNum,int csProtectorNum){int total = headphoneNum*80+mpShellNum*10+csProtectorNum*8;float commission = 0;if(total<1000){commission = (float) (total*0.1);}else if(total>=1000 && total<=1800){commission = (float) (1000*0.1+(total-1000)*0.15);}else if(total>1800){commission = (float) (1000*0.1+800*0.15+(total-1800)*0.2);}return commission;}public static int inputHandle(Scanner sc, int index){int data = 0;String[] prompt = {"请输入耳机销量:","请输入手机壳销量:","请输入手机贴膜销量:"};while(true){System.out.println(prompt[index]);String dataString = sc.nextLine();try{data = Integer.parseInt(dataString);if (data<0) {System.out.println("输入数量不满足要求");continue;}return data;}catch(Exception e){System.out.println("输入数量不满足要求");}}}public static void main(String[] args) {while(true){System.out.println("请分别输入三种手机配件的销售情况:");scanner = new Scanner(System.in);int headphoneNum = inputHandle(scanner, 0);int mpShell = inputHandle(scanner, 1);int csProtectorNum = inputHandle(scanner, 2);float tax = commission(headphoneNum,mpShell,csProtectorNum);System.out.println("佣金额为:"+tax+"元");}}
}

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

DD路径图:

程序图:

DD:

1

A

2

B

3

C

4

D

5

E

6

F

7

G

8

H

9

I

10

J

11

K

12

P

所有的条件:

A/1、开始

B/2、输入耳机销量

C/3、字符串里面是不是纯数字

D/4、判断数字是否大于0

E/5、输入手机销量

F/6、输入手机贴膜销量

G/7、计算销售额

H/8、销售额<1000

I/9、销售额 > 1000

J/10、销售额 < 1800

K/11、销售额 > 1800

P/12、结束

测试用例:

语句覆盖、路径覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖:

测试编号

耳机数量

手机数量

手机膜数量

预计结果

实际结果

执行路径

是否通过

1

100

100

100

1820.0

1820.0

A-B-C-D-E-C-D-F-C-D-F-G-H-I-J-K-P

2

-12

3

3

输入不满足要求

输入不满足要求

A-B-C-D-B

3

12

-12

32

输入不满足要求

输入不满足要求

A-B-C-D-E-C-D-E

4

12

12

-32

输入不满足要求

输入不满足要求

A-B-C-D-E-C-D-F-C-D-F

5

10

10

10

182.0

182.0

A-B-C-D-E-C-D-F-C-D-J-H-P

6

100

10

10

1496.0

1496.0

A-B-C-D-E-C-D-F-C-D-J-H-I-J-P

 条件覆盖、判定/条件覆盖、组合覆盖:

测试编号

耳机数量

手机数量

手机膜数量

预计结果

实际结果

执行路径

是否通过

10

133

134

233

2628.8

2628.8

A-B-C-D-E-C-D-F-C-D-F-G-H-I-J-K-P

11

a

c

d

输入不满足要求

输入不满足要求

A-B-C-D-E-C-D-F-C-D-J-H-P

12

200

a

100

输入不满足要求

输入不满足要求

A-B-C-D-E-C-D-F-C-D-J-H-I-J-P

 测试代码:

import static org.junit.Assert.*;import java.util.Scanner;import org.junit.After;
import org.junit.Before;
import org.junit.Test;public class CodeModificationTest {@Beforepublic void setUp() throws Exception {}@Afterpublic void tearDown() throws Exception {}@SuppressWarnings("deprecation")@Testpublic void testCommission() {String data1 = CodeModification.commission(10, 10, 10)+"";assertEquals("98.0",data1);}@SuppressWarnings("deprecation")@Testpublic void testCommission1() {String data2 = CodeModification.commission(10, 20, 30)+"";assertEquals("136.0",data2);}@SuppressWarnings("deprecation")@Testpublic void testCommission2() {String data3 = CodeModification.commission(20, 20, 20)+"";assertEquals("252.0",data3);}}

 测试结果:

 

测试总结:

  未找到缺陷。

     又进一步学习了测试代码的方法和技巧。

 

转载于:https://www.cnblogs.com/123zzj/p/6705890.html

更多相关:

  • CentOS7自带的git版本1.8.3.1,这个版本有点低了。于是决定折腾升级, 实操记录在此: 1、确认你的当前git版本 在终端输入: git --version   2、使用root账号 在终端终入: su root 然后输入root账号的密码,注意linux下输密码时界面是没有变化的   3、配置存储库 启用Wa...

  • 今天做TJU的OJ ,其中一道题是先读入一个字符串,再读入一个整数,循环往复,直到字符串是空,也就是说回车键结束循环。 但是cin对空格和回车都不敏感,都不影响继续读入数据,所以需要一种新的方式检测回车。 方法一:利用getchar()函数 1 //**************************将输入的单词逆序输出*****...

  • 题目描述: 根据输入的运算符对输入的整数进行简单的整数运算。 运算符只会是加+、减-、乘*、除/、求余%、阶乘!六个运算符之一。 输出运算的结果,如果出现除数为零,则输出“error”,如果求余运算的第二个运算数为0,也输出“error”。 输入: 输入为一行。先输入第一个整数,空格输入运算符,然后再空格输入第二个整数,回车结束...

  • 1、调出命令窗口:开始---->运行---->cmd,或者是window+R组合键   2、输入命令:netstat -ano,列出所有端口的情况。在列表中我们观察被占用的端口,比如是4300,我们拿它来做实验。 3、查看被占用端口对应的PID,输入命令:netstat -aon|findstr "4300",回车,记下最后一位...

  • 关于这个问题其实我很早之前就研究过,只是一直都是弄一次就不管了,下次就忘记怎么弄了,又去查,现在就写个笔记吧。 win8/8.1 在开始的界面输入netplwiz,或者点击win+r打开运行,输入netplwiz,然后回车 会弹出这个框框 然后会然你输入密码,输入之后点击确定就可以了。   winXP/7: 这个系统有点不同 使用...