软件测试作业.docx
《软件测试作业.docx》由会员分享,可在线阅读,更多相关《软件测试作业.docx(13页珍藏版)》请在冰豆网上搜索。
软件测试作业
软件测试报告
班级:
2012级软件工程2班学号:
41212223姓名:
张瑞文
一、实验设备(环境)及要求
●开发环境:
Eclipsev3.7及以上版本;JUnitv4.10及以上版本;文本编辑软件。
●系统要求:
Windows7/Windows98/Me/XP/NT/2000,IE5以上。
2、题目描述
自动售货机程序,分别对此程序进行功能性测试和结构性测试。
3、测试流程
1.编写自动售货机程序,源代码详见附件一;
2.下载安装Eclipse+JUnit+EclEmma,搭建结构性测试环境;
3.对程序进行结构性测试,测试代码详见附件二;
4.完成测试报告。
4、测试过程
1.编写源程序
2.搭建结构性测试环境
(1)解压eclemma软件包,并放到eclipse安装目录的dropins文件夹下:
(2)重新启动eclipse软件,菜单栏会出现新的图标:
(3)查看Windows的Customizeperspective项中的CommandGroupsAvailabiity多了Coverage项:
3.结构性测试
(1)编写测试用例,同功能性测试的“SaleMachineTest.java”;
(2)先点击运行查看,代码覆盖率为33.1%;
红色--未执行,黄色--条件没有全部执行、绿色--已经执行
(3)完善测试代码,直到代码覆盖率达到100%;
5、作业总结
在这次作业中,我使用了Junit和EclEmma这两个Eclipse插件对简易自动售货机程序进行了反复测试。
通过编写不同的测试用例,最终使代码覆盖率达到100%。
通过本次作业,我练习使用了测试中的两个常用的测试工具,并且懂得了在测试用例的编写中需要尽可能多的覆盖整个代码,以测试整个程序的正确性。
附件一:
自动售货机程序源代码
publicclassSaleMachine{
privateintcountOfBeer,countOfOrangeJuice,countOfFiveCents,countOfOneDollar;
privateString[]typeOfGoods={"Beer","OrangeJuice"};
privateStringresultOfDeal;
publicSaleMachine(){
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){
if(money.equalsIgnoreCase("5C")){
if(type.equals(typeOfGoods[0])){
if(countOfBeer>0){
countOfBeer--;
countOfFiveCents++;
resultOfDeal="InputInformation\n"+"Type:
Beer;Money:
5Cents;Change:
0\n\n"+currentState();
returnresultOfDeal;
}
else{
resultOfDeal="FailureInformation\n"+"BeerShortage";
returnresultOfDeal;
}
}
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="FailureInformation\n"+"OrangeJuiceShortage";
returnresultOfDeal;
}
}
else{
resultOfDeal="FailureInformation\n"+"TypeError";
returnresultOfDeal;
}
}
elseif(money.equalsIgnoreCase("1D")){
if(countOfFiveCents>0){
if(type.equals(typeOfGoods[0])&&countOfBeer>0){
countOfBeer--;
countOfFiveCents--;
countOfOneDollar++;
resultOfDeal="InputInformation\n"+"Type:
Beer;Money:
1Dollar;Change:
5Cents\n\n"+currentState();
returnresultOfDeal;
}
elseif(type.equals(typeOfGoods[1])&&countOfOrangeJuice>0){
countOfOrangeJuice--;
countOfFiveCents--;
countOfOneDollar++;
resultOfDeal="InputInformation:
\n"+"Type:
OrangeJuice;Money:
1Dollar;Change:
5Cents\n\n"+currentState();
returnresultOfDeal;
}
else{
if(type.equals(typeOfGoods[0])&&countOfBeer<=0){
resultOfDeal="FailureInformation\n"+"BeerShortage";
returnresultOfDeal;
}
elseif(type.equals(typeOfGoods[1])&&countOfOrangeJuice<=0){
resultOfDeal="FailureInformation\n"+"OrangeJuiceShortage";
returnresultOfDeal;
}
else{
resultOfDeal="FailureInformation\n"+"TypeError";
returnresultOfDeal;
}
}
}
else{
resultOfDeal="FailureInformation\n"+"ChangeShortage";
returnresultOfDeal;
}
}
resultOfDeal="FailureInformation\n"+"MoneyError";
returnresultOfDeal;
}
}
附件二:
自动售货机程序测试代码
importstaticorg.junit.Assert.*;
importorg.junit.After;
importorg.junit.Before;
importorg.junit.Test;
publicclassSaleMachineTest{
SaleMachinesaleMachine=newSaleMachine();
@Before
publicvoidsetUp()throwsException{
}
@After
publicvoidtearDown()throwsException{
}
@Test
publicvoidtestOperation1(){
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"));
}
@Test
publicvoidtestOperation2(){
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("Beer","5C"));
}
@Test
publicvoidtestOperation3(){
SaleMachinesaleMachine=newSaleMachine(6,6,0,6);
StringexpectedResult="FailureInformation\n"+"BeerShortage";
assertEquals(expectedResult,saleMachine.operation("Beer","5c"));
}
@Test
publicvoidtestOperation4(){
SaleMachinesaleMachine=newSaleMachine(6,6,6,0);
StringexpectedResult="FailureInformation\n"+"OrangeJuiceShortage";
assertEquals(expectedResult,saleMachine.operation("OrangeJuice","5c"));
}
@Test
publicvoidtestOperation5(){
SaleMachinesaleMachine=newSaleMachine(6,6,6,6);
StringexpectedResult="FailureInformation\n"+"TypeError";
assertEquals(expectedResult,saleMachine.operation("apple","5c"));
}
@Test
publicvoidtestOperation6(){
StringexpectedResult="InputInformation\n"+"Type:
Beer;Money:
1Dollar;Change:
5Cents\n\n"+"CurrentState\n"+"Beer:
5\n"+"OrangeJuice:
6\n"+"5Cents:
5\n"+"1Dollar:
7";
assertEquals(expectedResult,saleMachine.operation("Beer","1D"));
}
@Test
publicvoidtestOperation7(){
StringexpectedResult="InputInformation:
\n"+"Type:
OrangeJuice;Money:
1Dollar;Change:
5Cents\n\n"+"CurrentState\n"+"Beer:
6\n"+"OrangeJuice:
5\n"+"5Cents:
5\n"+"1Dollar:
7";
assertEquals(expectedResult,saleMachine.operation("OrangeJuice","1D"));
}
@Test
publicvoidtestOperation8(){
SaleMachinesaleMachine=newSaleMachine(6,6,0,6);
StringexpectedResult="FailureInformation\n"+"BeerShortage";
assertEquals(expectedResult,saleMachine.operation("Beer","1D"));
}
@Test
publicvoidtestOperation9(){
SaleMachinesaleMachine=newSaleMachine(6,6,6,6);
StringexpectedResult="FailureInformation\n"+"TypeError";
assertEquals(expectedResult,saleMachine.operation("apple","1D"));
}
@Test
publicvoidtestOperation10(){
SaleMachinesaleMachine=newSaleMachine(6,6,6,0);
StringexpectedResult="FailureInformation\n"+"OrangeJuiceShortage";
assertEquals(expectedResult,saleMachine.operation("OrangeJuice","1D"));
}
@Test
publicvoidtestOperation11(){
SaleMachinesaleMachine=newSaleMachine(0,6,6,6);
StringexpectedResult="FailureInformation\n"+"ChangeShortage";
assertEquals(expectedResult,saleMachine.operation("OrangeJuice","1D"));
}
@Test
publicvoidtestOperation12(){
SaleMachinesaleMachine=newSaleMachine(6,6,6,6);
StringexpectedResult="FailureInformation\n"+"MoneyError";
assertEquals(expectedResult,saleMachine.operation("OrangeJuice","0"));
}
}