白盒测试实验报告

  • 格式:doc
  • 大小:386.00 KB
  • 文档页数:16

下载文档原格式

  / 16
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《软件测试技术》实验报告

实验序号:03 实验项目名称:使用基本路径覆盖法测试自动售货机程序

修改代码后:

五、分析与讨论

这次试验基于上次的试验,围绕白盒测试的基本路径覆盖法测试进行测试。重点在于对测试用例的设计,试验中借助了程序流程控制图来设计用例。

附件:

修改后的实现代码:

package test3;

public class SaleMachine {

private int countOfBeer, countOfOrangeJuice, countOfFiveCents, countOfOneDollar;

private String[] typeOfGoods = {"Beer", "OrangeJuice"};

private String resultOfDeal;

public SaleMachine()

{

initial();

}

public void initial()

{

countOfBeer = 6;

countOfOrangeJuice = 6;

countOfFiveCents = 6;

countOfOneDollar = 6;

}

public SaleMachine(int fiveCents, int oneDollar, int numOfBeer, int numOfOrange)

//便于测试的初始化函数

{

countOfFiveCents = fiveCents;

countOfOneDollar = oneDollar;

countOfBeer = numOfBeer;

countOfOrangeJuice = numOfOrange;

}

public String currentState()

{

String state = "Current State\n" +

"Beer: " + countOfBeer + "\n" +

"Orange Juice: " + countOfOrangeJuice + "\n" +

"5 Cents: " + countOfFiveCents + "\n" +

"1 Dollar: " + countOfOneDollar;

return state;

}

public String operation(String type, String money)

//type是用户选择的产品,money是用户投币种类

{

if(money.equalsIgnoreCase("5C")) //如果用户投入5角钱

{

if(type.equals(typeOfGoods[0])) //如果用户选择啤酒

{

if(countOfBeer>0) //如果还有啤酒

{

countOfBeer--;

countOfFiveCents++;

resultOfDeal = "Input Information \n" +

"Type: Beer; Money: 5 Cents; Change: 0\n\n" + currentState();

return resultOfDeal;

}

else

{

resultOfDeal = "Failure Information \n" + "Beer Shortage";

return resultOfDeal;

}

}

else if (type.equals(typeOfGoods[1])) //用户选择橙汁

{

if(countOfOrangeJuice > 0)

{

countOfOrangeJuice--;

countOfFiveCents++;

resultOfDeal = "Input Information \n" +

"Type: OrangeJuice; Money: 5 Cents; Change: 0\n\n" + currentState();

return resultOfDeal;

}

else

{

resultOfDeal = "Failure Information \n" + "OrangeJuice Shortage";

return resultOfDeal;

}

}

else

{

resultOfDeal = "Failure Information \n" + "Type Error";

return resultOfDeal;

}

}

else if(money.equalsIgnoreCase("1D")) //如果用户投入一元钱

{

if(countOfFiveCents > 0) //如果用户有零钱

{

if(type.equals(typeOfGoods[0])&&countOfBeer>0)//如果用户选择啤酒而且还有啤酒

{

countOfBeer--;

countOfFiveCents--;

countOfOneDollar++;

resultOfDeal = "Input Information \n" +

"Type: Beer; Money: 1 Dollar; Change: 5 Cents\n\n" + currentState();

return resultOfDeal;

}

else if (type.equals(typeOfGoods[1])&&countOfOrangeJuice>0)//如果用户选择橙汁而且还有橙汁

{

countOfOrangeJuice --;

countOfFiveCents --;

countOfOneDollar ++;

resultOfDeal = "Input Information \n" +

"Type: OrangeJuice; Money: 1 Dollar; Change: 5 Cents\n\n" + currentState();

return resultOfDeal;

}

else

{

if(type.equals(typeOfGoods[0])&&countOfBeer<=0)

{

resultOfDeal = "Failure Information \n" + "Beer Shortage";

return resultOfDeal;

}

else

if(type.equals(typeOfGoods[1])&&countOfOrangeJuice<=0)

{

resultOfDeal = "Failure Information \n" + "OrangeJuice Shortage";

return resultOfDeal;

}

else