资源简介

本文档中源码为软件测试课程实验相关内容,压缩包内也有详细需求说明。大致功能为测试一个输入为税前工资输出为税后工资的方法的单元测试,通过设计测试用例实现等价类划分测试,边界值分析测试以及路径覆盖测试

资源截图

代码片段和文件信息

package tax;

import java.util.Scanner;

public class TaxCalculator {
public double getIncome(String sinput) throws TaxException {
// 税前收入
double pretaxIncome = 0;
// 应纳税所得额
double taxableIncome = 0;
// 个人所得税
double tax = 0;
// 实际收入
double realIncome = 0;

// 输入字符串转为税前收入
try {
if (sinput == null) {
throw new TaxException(TaxException.MUST_BE_NUMBER);
}
pretaxIncome = Double.parseDouble(sinput);
if (pretaxIncome < 0) {
throw new TaxException(TaxException.MUST_NOT_LESS_THAN_ZERO);
} else if (pretaxIncome > 1000000) {
throw new TaxException(TaxException.MUST_NOT_RATHER_THAN_MILLION);
}
} catch (NumberFormatException e) {
throw new TaxException(TaxException.MUST_BE_NUMBER);
}

// 计算应纳税所得额
taxableIncome = pretaxIncome - TaxParameters.TAX_THRESHOLD;

// 计算个人所得税
if (taxableIncome <= 0) {
tax = 0;
} else if (taxableIncome > 0 && taxableIncome <= TaxParameters.MaxBound.LEVEL1) {
tax = taxableIncome * TaxParameters.Rate.LEVEL1 - TaxParameters.QuickDeduction.LEVEL1;
} else if (taxableIncome > TaxParameters.MaxBound.LEVEL1 && taxableIncome <= TaxParameters.MaxBound.LEVEL2) {
tax = taxableIncome * TaxParameters.Rate.LEVEL2 - TaxParameters.QuickDeduction.LEVEL2;
} else if (taxableIncome > TaxParameters.MaxBound.LEVEL2 && taxableIncome <= TaxParameters.MaxBound.LEVEL3) {
tax = taxableIncome * TaxParameters.Rate.LEVEL3 - TaxParameters.QuickDeduction.LEVEL3;
} else if (taxableIncome > TaxParameters.MaxBound.LEVEL3 && taxableIncome <= TaxParameters.MaxBound.LEVEL4) {
tax = taxableIncome * TaxParameters.Rate.LEVEL4 - TaxParameters.QuickDeduction.LEVEL4;
} else if (taxableIncome > TaxParameters.MaxBound.LEVEL4 && taxableIncome <= TaxParameters.MaxBound.LEVEL5) {
tax = taxableIncome * TaxParameters.Rate.LEVEL5 - TaxParameters.QuickDeduction.LEVEL5;
} else if (taxableIncome > TaxParameters.MaxBound.LEVEL5 && taxableIncome <= TaxParameters.MaxBound.LEVEL6) {
tax = taxableIncome * TaxParameters.Rate.LEVEL6 - TaxParameters.QuickDeduction.LEVEL6;
} else if (taxableIncome > TaxParameters.MaxBound.LEVEL6) {
tax = taxableIncome * TaxParameters.Rate.LEVEL7 - TaxParameters.QuickDeduction.LEVEL7;
}

// 实际收入
realIncome = pretaxIncome - tax;
return realIncome;
}

}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件     1224090  2018-12-28 09:20  TIM图片20181228143913.png
     目录           0  2018-12-28 14:34  TaxTest\
     文件         353  2018-12-28 14:34  TaxTest\.classpath
     文件         383  2018-12-28 14:34  TaxTest\.project
     目录           0  2018-12-28 14:34  TaxTest\bin\
     目录           0  2018-12-28 14:34  TaxTest\bin\tax\
     文件        1536  2018-12-28 14:34  TaxTest\bin\tax\TaxCalculator.class
     文件        2938  2018-12-28 14:34  TaxTest\bin\tax\TaxCalculatorTest.class
     文件         808  2018-12-28 14:34  TaxTest\bin\tax\TaxException.class
     文件         415  2018-12-28 14:34  TaxTest\bin\tax\TaxParameters$MaxBound.class
     文件         427  2018-12-28 14:34  TaxTest\bin\tax\TaxParameters$QuickDeduction.class
     文件         435  2018-12-28 14:34  TaxTest\bin\tax\TaxParameters$Rate.class
     文件         348  2018-12-28 14:34  TaxTest\bin\tax\TaxParameters.class
     目录           0  2018-12-28 14:34  TaxTest\src\
     目录           0  2018-12-28 14:34  TaxTest\src\tax\
     文件        2439  2018-12-28 14:34  TaxTest\src\tax\TaxCalculator.java
     文件         501  2018-12-28 14:34  TaxTest\src\tax\TaxException.java
     文件         658  2018-12-28 14:34  TaxTest\src\tax\TaxParameters.java
     目录           0  2018-12-28 14:34  TaxTest\test\
     目录           0  2018-12-28 14:34  TaxTest\test\tax\
     文件        3970  2018-12-28 14:34  TaxTest\test\tax\TaxCalculatorTest.java

评论

共有 条评论