首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件测试 >

一个小程序分支覆盖(Branch Coverage)急需哪些用例

2013-06-26 
一个小程序分支覆盖(Branch Coverage)需要哪些用例?// incomeList[]: the array recording the individual

一个小程序分支覆盖(Branch Coverage)需要哪些用例?


// incomeList[]: the array recording the individual income items 
// childList[]: the array recording the ages of children afforded by this person 
// parentList[]: the array recording the ages of parents afforded by this person  
public double computeTax(double[] incomeList, int[] parentList, int[] childList) { 
  double taxAmount = 0.0; 
  double incomeAmount = 0.0; 
 
  // calculate the income amount 
  for (int i = 0; i < incomeList.length; i++) { 
    incomeAmount = incomeAmount + incomeList[i]; 
  } 
 
  // calculate the basic tax 
  if (incomeAmount <= 40000) { 
    taxAmount = incomeAmount * 0.02; 
  } else if (incomeAmount > 40000 && incomeAmount <= 80000) { 
    taxAmount = 800 + incomeAmount * 0.07; 
  } else if (incomeAmount > 80000 && incomeAmount <= 120000) { 
    taxAmount = 800 + 2800 + incomeAmount * 0.12; 
  } else if (incomeAmount > 120000) { 
    taxAmount = 800 + 2800 + 4800 + incomeAmount * 0.17; 
  } 
 
  // calculate the tax exemption from having children 
  int taxExemption = 0; 
  int numOfChild = childList.length; 
  while (numOfChild > 0) { 
    if (childList[numOfChild - 1] < 18) { 
      taxAmount = taxAmount - 4000; 

      taxExemption = taxExemption + 4000; 
    } 
    numOfChild--; 
  } 
 
  // calculate the tax exemption from having parents 
  for (int j = 0; j < parentList.length; j++) { 
    if (parentList[j] > 60) { 
      taxAmount = taxAmount - 2000; 
      taxExemption = taxExemption + 2000; 
    } 
  } 
 
  // the maximum tax exemption is 8000 each person 
  if (taxExemption <= 8000) { 
    if (taxAmount >= 0) { 
      return taxAmount; 
    } else { // i.e., taxAmount <0      
      return 0; 
    } 
  } else { // i.e., taxExemption > 8000 


    taxAmount = taxAmount + (taxExemption - 8000); 
    return taxAmount; 
  } 

branch
[解决办法]
晕死!

仅凭经验就知道,这是很坏的味道,需要重构了。

重构的方法有几十种,其根本地是重新考虑领域模型,学会“抽象、继承和多态”,删除大部分 else if 语句。

热点排行