您的位置:首页 > 其它

第三次作业 105032014021

2017-03-30 15:38 225 查看
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函数的参数进行读取可以方便测试的进行以及测试用例的编写。

调试与测试的不同体会。

  测试可以让程序更加完善,而调试仅仅只是修改程序对当前输入的数据的处理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: