博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第三次作业 105032014021
阅读量:5222 次
发布时间:2019-06-14

本文共 2980 字,大约阅读时间需要 9 分钟。

1、修正流程图:根据新修改的代码,再次修正流程图

 

2、测试用例设计:依据所有的覆盖理论,分别写出相应的测试用例设计。

测试编号

数据

预期结果

输出结果

是否通过

001

abc,abc,123,123

提示输入错误,重新输入

程序崩溃,抛出异常

×

002

123,abc,abc,123

提示输入错误,重新输入

程序崩溃,抛出异常

×

003

123,12,abc,abc

提示输入错误重新输入

程序崩溃,抛出异常

×

004

+0,+0,-0,-0,0

输出佣金0

输入的数量不满足要求,请重新输入

销售金额为:0.0

×

005

-1,-1,0,0

提示输入错误重新输入

销售金额为:0.0

×

006

0,-1,-1,0

提示输入错误重新输入

销售金额为:0.0

×

007

0,0,-1,-1

提示输入错误重新输入

销售金额问为:0.0

×

008

提示输入错误,重新输入

程序崩溃,抛出异常

×

009

2147483648,2147483648,0,0

提示输入有误重新输入

程序崩溃,抛出异常

×

010

0,2147483648,2147483648,0

提示输入有误重新输入

程序崩溃,抛出异常

×

011

0,0,2147483648,2147483648

提示输入有误重新输入

程序崩溃,抛出异常

×

012

12.3,12.3,0,0

提示输入有误重新输入

程序崩溃,抛出异常

×

013

0,13.56,13.56,0

提示输入有误重新输入

程序崩溃,抛出异常

×

014

0,0,16.9,16.69

提示输入有误重新输入

程序崩溃,抛出异常

×

015

3,3,9(销售额小于1000)

输出佣金:34.2

输出销售佣金为:34.2

016

5,20,50(销售额等于1000)

输出佣金:100

输出销售佣金为:100

017

9,20,50(销售金额大于1000小于1800)

输出佣金:148

输出销售佣金为:148

018

10,20,100(销售金额等于1800)

输出佣金:220

输出销售佣金为:220

019

30,60,90

输出佣金:604

输出销售佣金为:604

语句覆盖:001、002、003

判定覆盖:004—019

 

3、单元测试框架:采用单元测试框架Junit,初步简单的自动化执行测试用例。

package other;import org.junit.*;import org.junit.Test;public class Commission_caculatorTest {    @Test    public void testCaseOne() {        String s1 = "3";        String s2 = "3";        String s3 = "9";        Commission_caculator caculator = new Commission_caculator();        double result = caculator.Commission(s1, s2, s3);        Assert.assertEquals(34.2, result, 0.003);    }    @Test    public void testCaseTwo() {        String s1 = "5";        String s2 = "20";        String s3 = "50";        Commission_caculator caculator = new Commission_caculator();        double result = caculator.Commission(s1, s2, s3);        Assert.assertEquals(100, result, 0.003);    }    @Test    public void testCaseThree() {        String s1 = "9";        String s2 = "20";        String s3 = "50";        Commission_caculator caculator = new Commission_caculator();        double result = caculator.Commission(s1, s2, s3);        Assert.assertEquals(148, result, 0.003);    }    @Test    public void testCaseFour() {        String s1 = "10";        String s2 = "20";        String s3 = "100";        Commission_caculator caculator = new Commission_caculator();        double result = caculator.Commission(s1, s2, s3);        Assert.assertEquals(220, result, 0.003);    }    @Test    public void testCaseSix() {        String s1 = "30";        String s2 = "60";        String s3 = "90";        Commission_caculator caculator = new Commission_caculator();        double result = caculator.Commission(s1, s2, s3);        Assert.assertEquals(604, result, 0.003);    }}

 

3、测试结果:根据测试用例设计,执行测试,并给出TestRunner测试结果图。

  Commission函数的测试结果:

  

  由于只能一次性自动地向控制台输入字符串,而main函数和Input函数都是两次或两次以上从控制台读取输入。

4、测试小结:

  •      测试用例编写的心得体会。

  尽量根据程序流程图编写测试用例,可以覆盖更多的路径和条件。

  •      采用单元测试框架,和用main()方法调用的心得体会。

  可以使用System.setIn()函数向控制台一次性指定输入,使用System.setOut()函数得到控制台的输出,进而使用assertEquals()进行判断。在写主函数时,尽量用main函数的参数进行读取可以方便测试的进行以及测试用例的编写。

  •      调试与测试的不同体会。

  测试可以让程序更加完善,而调试仅仅只是修改程序对当前输入的数据的处理。

转载于:https://www.cnblogs.com/mtLin/p/6626778.html

你可能感兴趣的文章
我对IoC/DI的理解
查看>>
Struts2数据传输的背后机制:ValueStack(值栈)
查看>>
SVN的基本操作
查看>>
信用卡、借记卡
查看>>
第16章 非归档模式下的冷备份和恢复
查看>>
java web--FTP服务器创建和上下传文件(3)
查看>>
前端页面图片精致拖拽复制
查看>>
powerdesigner 左边的列表框弄不见了怎么弄出来
查看>>
[dfs][bfs] Jzoj P5806 简单的操作
查看>>
Django----admin管理工具
查看>>
Python实现简单登陆验证(文件操作)
查看>>
异步消息处理机制 简析
查看>>
机器学习实践测试驱动的开发方法pdf
查看>>
memset函数使用详解
查看>>
C# 使用CsvHelper读取.csv文件
查看>>
软工小队第二次会议 4-23
查看>>
面向对象六大设计原则:
查看>>
sky1301测试总结 just before chip comes back
查看>>
10.1、LNMT架构
查看>>
React Native 错误:A problem occurred configuring project ':app'. 和Execution failed for task ‘XXX’...
查看>>