白盒测试实验报告
- 格式:doc
- 大小:386.00 KB
- 文档页数:16
《软件测试技术》实验报告
实验序号: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