完整版软件测试技术试验报告JUnit的基本应用.docx
《完整版软件测试技术试验报告JUnit的基本应用.docx》由会员分享,可在线阅读,更多相关《完整版软件测试技术试验报告JUnit的基本应用.docx(33页珍藏版)》请在冰豆网上搜索。
![完整版软件测试技术试验报告JUnit的基本应用.docx](https://file1.bdocx.com/fileroot1/2023-8/7/0a62bbed-b70a-4ac0-9cb7-9d81c164378e/0a62bbed-b70a-4ac0-9cb7-9d81c164378e1.gif)
完整版软件测试技术试验报告JUnit的基本应用
《软件测试技术》实验报告
实验序号:
3
实验项目名称:
单元测试工具
JUnit
的基本应用
学号
实验地址
姓名
指导教师
专业、班
实验时间
一、实验目的及要求
掌握在Eclipse环境下JUnit单元测试工具的安装和使用方法;针对一个实质问题,在JUnit环境下设计并履行测试用例。
二、实验要求
开发环境:
Eclipsev3.7及以上版本;JUnitv4.10及以上版本;文本编写软件。
硬件要求:
CPUPIV以上,256M内存,1G硬盘空间。
系统要求:
Windows98/Me/XP/NT/2000,IE5以上。
三、实验内容与步骤
1.下载并安装JDK
2.下载并安装Eclipse
3.下载并安装JUnit
4.通读自动售货机程序,并在Eclipse环境下运转该程序
5.在JUnit环境下履行以下表格中的测试用例,并填写完成该表格。
编
输入值
输入值
状态
预期输出
实质情
号
Type
money
况
001
Beer
5C
各资
InputInformation
源剩
Type:
Beer;Money:
5Cents;Change:
0
余
CurrentState
Beer:
5
OrangeJuice:
6
5Cents:
7
1Dollar:
6
002
OrangeJuice
5C
各资
InputInformation
源剩
Type:
OrangeJuice;Money:
5Cents;Change:
0
余
CurrentState
Beer:
6
OrangeJuice:
5
5Cents:
7
1Dollar:
6
003Beer
1D
没有
FailureInformation
啤酒
BeerShortage
5.提交测试用例程序和该程序运转结果最后画面。
6.总结本次试验,并撰写实验报告。
四、实验结果与数据办理
编
输入值
输入值
状态
号
Type
money
001
Beer
5C
各资
源剩
余
002OrangeJuice5C各资
源剩
余
003Beer
1D
没有
啤酒
预期输出
InputInformation
Type:
Beer;Money:
5Cents;Change:
0
CurrentState
Beer:
5
OrangeJuice:
6
5Cents:
7
1Dollar:
6
InputInformation
Type:
OrangeJuice;Money:
5Cents;Change:
0
CurrentState
Beer:
6
OrangeJuice:
5
5Cents:
7
1Dollar:
6
FailureInformation
BeerShortage
实质情
况
与预期
值一致
与预期
值一致
与预期
值有偏
差
实验环境变量配置。
配置达成后检查能否正确,再cmd输入java–version,java后要有空格,结果
以下列图,即配置环境变量正确。
1测试用例程序
importstaticorg.junit.Assert.*;
importorg.junit.Before;
importorg.junit.Test;
publicclassSaleMachineTest{
SaleMachinesaleMachine=newSaleMachine();
@Before
publicvoidsetUp()throwsException{
}
@Test
publicvoidtestOperation1(){
StringexpectedResult="FailureInformation\n"+
"Type:
Beer;Money:
5Cents;Change:
0\n\n"+
"CurrentState\n"+
"Beer:
5\n"+
"OrangeJuice:
6\n"+
"5Cents:
7\n"+
"1Dollar:
6";
assertEquals(expectedResult,saleMachine.operation("Beer",
"5C"));
}
}
1结果
2测试用例程序
importstaticorg.junit.Assert.*;
importorg.junit.Before;
importorg.junit.Test;
publicclassSaleMachineTest{
SaleMachinesaleMachine=newSaleMachine();
@Before
publicvoidsetUp()throwsException{
}
@Test
publicvoidtestOperation1(){
StringexpectedResult="InputInformation\n"+
"Type:
Beer;Money:
5Cents;Change:
0\n\n"+
"CurrentState\n"+
"Beer:
5\n"+
"OrangeJuice:
6\n"+
"5Cents:
7\n"+
"1Dollar:
6";
assertEquals(expectedResult,saleMachine.operation("OrangeJuice",
"5C"));
}
}
2结果
3测试用例程序
importstaticorg.junit.Assert.*;
importorg.junit.Before;
importorg.junit.Test;
publicclassSaleMachineTest{
SaleMachinesaleMachine=newSaleMachine();
@Before
publicvoidsetUp()throwsException{
}
@Test
publicvoidtestOperation1(){
StringexpectedResult="FailureInformation\n"+
"BeerShortage";
assertEquals(expectedResult,saleMachine.operation("Beer",
"1D"));
}
}
3结果
五、剖析与议论
六、教师考语成绩
署名:
日期:
附录
问题描绘
自动售货机程序:
若投入5角钱或1元钱的硬币,按下“橙汁”或“啤酒”按钮,则相应
的饮料就送出来;
若售货机没有零钱找,则显示“零钱找完”的红灯亮,这是再投入一元
硬币并按下按钮后,饮料不送出来并且1元硬币也退出来;
如有零钱找,则显示“零钱找完”的红灯灭,在送出饮料的同时退还5
角硬币。
程序流程图
实验源代码(出缺点的源代码)
publicclass
SaleMachine{
privatein
tc
ountOfBeer,countOfOrangeJuice,countOfFiveCents,countOfOneDollar;
private
St
rin
g[]typeOfGoods={"Beer","OrangeJuice"};
private
St
rin
gresultOfDeal;
public
SaleMachine()
{
initial();
}
publicvoidinitial()
{
countOfBeer=6;
countOfOrangeJuice=6;
countOfFiveCents=6;
countOfOneDollar=6;
}
publicSaleMachine(intfiveCents,intoneDollar,intnumOfBeer,intnumOfOrange)
//便于测试的初始化函数
{
countOfFiveCents=fiveCents;
countOfOneDollar=oneDollar;
countOfBeer=numOfBeer;
countOfOrangeJuice=numOfOrange;
}
publicStringcurrentState()
{
Stringstate="CurrentState\n"+
"Beer:
"+countOfBeer+"\n"+
"OrangeJuice:
"+countOfOrangeJuice+"\n"+
"5Cents:
"+countOfFiveCents+"\n"+
"1Dollar:
"+countOfOneDollar;
returnstate;
}
publicStringoperation(Stringtype,Stringmoney)
//type是用户选择的产品,money是用户投币种类
{
if(money.equalsIgnoreCase("5C"))//假如用户投入5角钱
{
if(type.equals(typeOfGoods[0]))
{
//假如用户选择啤酒
if(countOfBeer>0)//假如还有啤酒
{
countOfBeer--;
countOfFiveCents++;
resultOfDeal="InputInformation\n"+
"Type:
Beer;Money:
5Cents;Change:
n\n"+
currentState();
returnresultOfDeal;
}
else
{
resultOfDeal="FailureInformatio
returnresultOfDeal;
n"+"BeerShortage";
}
}
elseif(type.equals(typeOfGoods[1]))//用户选择橙汁
{
if(countOfOrangeJuice>0)
{
countOfOrangeJuice--;
countOfFiveCents++;
resultOfDeal="InputInformation\n"+
"Type:
OrangeJuice;Money:
5Cents;Change:
0\n\n"+
currentState();
returnresultOfDeal;
}
else
{
resultOfDeal="FailureInformatio
returnresultOfDeal;
n"+"TypeError";
}
}
else
{
resultOfDeal="FailureInformatio
returnresultOfDeal;
n"+"TypeError";
}
}
elseif(money.equalsIgnoreCase("1D"))//假如用户投入一元钱
{
if(countOfFiveCents>0)//假如用户投入一元钱
{
if(countOfFiveCents
>0)
//假如用户有零钱
{
if(type.equals(typeOfGoods[0])&&countOfBeer>0)//假如用户选择啤酒并且还有啤酒
{
countOfBeer--;
countOfFiveCents--;
countOfOneDollar++;
resultOfDeal="InputInformation\n"+
"ype:
Beer;Money:
1Dollar;
Change:
5Ce
n"+
currentState();
returnresultOfDeal;
}
elseif(type.equals(typeOfGoods[1]))//假如用户选择橙汁并且还有橙汁
{
countOfOrangeJuice--;
countOfFiveCents--;
countOfOneDollar++;
resultOfDeal="InputInformation:
\n"+
"Type:
OrangeJuice;Money:
1Dollar;Change:
5
Cents\n\n"+currentState();
returnresultOfDeal;
}
else
{
if(type.equals(typeOfGoods[0])&&countOfOrangeJuice<=0)
{
resultOfDeal="FailueInformation\n"+"BeerShortage";
returnresultOfDeal;
}
elseif(type.equals(typeOfGoods[1])&&countOfOrangeJuice<=0)
{
resultOfDeal="FailureInformation\n"+"OrangeJuiceShortage";returnresultOfDeal;
}
else
{
resultOfDeal="FailureInformatio
n"
+"TypeError";
returnresultOfDeal;
}
}
}
else
{
resultOfDeal="FailureInformation"+"ChangeShortage";
returnresultOfDeal;
}
}
else
{
resultOfDeal="FailureInformatio
returnresultOfDeal;
n"+"MoneyError";
}
}
resultOfDeal="FailureInformation"+"MoneyError";
returnresultOfDeal;
}
}
测试用例示例代码:
importstaticorg.junit.Assert.*;
importorg.junit.Before;
importorg.junit.Test;
public
class
SaleMachineTest{
SaleMachine
@Before
publicvoid
}
saleMachine=newSaleMachine();
setUp()throwsException{
@Test
public
void
testOperation1(){
StringexpectedResult="InputInformation\n"
"Type:
OrangeJuice;Money:
5Cents;Change:
0\n\n"
"CurrentState\n"+
"Beer:
6\n"+
"OrangeJuice:
5\n"+
"5Cents:
7\n"+
"1Dollar:
6";
+
+
assertEquals(expectedResult,
saleMachine.operation("OrangeJuice","5C"));
}
}