软件测试技术-随堂练习01答案(共8页).docx

上传人:飞****2 文档编号:12255108 上传时间:2022-04-24 格式:DOCX 页数:8 大小:134.51KB
返回 下载 相关 举报
软件测试技术-随堂练习01答案(共8页).docx_第1页
第1页 / 共8页
软件测试技术-随堂练习01答案(共8页).docx_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《软件测试技术-随堂练习01答案(共8页).docx》由会员分享,可在线阅读,更多相关《软件测试技术-随堂练习01答案(共8页).docx(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上随堂练习011. FindBugsA.查看 FindBugs发现的问题,一共有几类问题,各是什么含义?将这几类问题翻译成中文;答:一共有以下三种类型的问题:1. Bug: Invocation of toString on combination in solver.Matrix.main(String)The code invokes toString on an array, which will generate a fairly useless result such as C16f0472. Consider using Arrays.toString to

2、 convert the array into a readable String that gives the contents of the array. 中文:在组合代码调用toString数组,这将产生一个相当无用的结果。考虑使用Arrays.toString方法将数组转化成可读的字符串。2. Bug: solver.Mpute() concatenates strings using + in a loopThe method seems to be building a String using concatenation in a loop. In each iteration,

3、 the String is converted to a StringBuffer/StringBuilder, appended to, and converted back to a String. This can lead to a cost quadratic in the number of iterations, as the growing string is recopied in each iteration. Better performance can be obtained by using a StringBuffer (or StringBuilder in J

4、ava 1.5) explicitly.中文:这个方法似乎是建立在一个循环中使用连接字符串。在每个迭代中,字符串转换为StringBuffer / StringBuilder,附加到,转换回一个字符串。这可能导致成本数量的二次迭代,在每个迭代字符串复制。可以获得更好的性能通过使用StringBuffer显式(或StringBuilder Java 1.5中)。 3. Bug: Unread field: gui.MainWindow.m_gameOutputThis field is never read. Consider removing it from the class.中文:gui.

5、MainWindow.m_gameOutput这个属性没有被读。这个字段是不会被程序读的。考虑把它从类中移除。B.如何解决 FindBugs指出的问题?请修改Sudoku程序,以改正所有 FindBugs指出的问题。注意:同类错误仅需记录一次修改思想即可。答:1. 使用Arrays.toString将数组转换为字符串。2. 将String类型的该变量定义为StringBuffer类型的,并在循环体中用append()方法替代+操作。3. 通过”查找”找出对应的属性的所有代码,并注释删除。(或者调用print方法输出该属性)2. Junit源程序:package sale;public clas

6、s SaleMachine private int countOfBeer, countOfJuice, countOfFiveCents, countOfOneDollar;private String typeOfGoods = Beer, Juice;private String resultOfDeal;public SaleMachine()initial();public void initial()/默认售货机countOfBeer = 3;countOfJuice = 3;countOfFiveCents = 3;countOfOneDollar = 3;public Sale

7、Machine(int fiveCents, int oneDollar, int numOfBeer, int numOfOrange)/带参数的初始化售货机countOfFiveCents = fiveCents;countOfOneDollar = oneDollar;countOfBeer = numOfBeer;countOfJuice = numOfOrange;public String currentState()/返回当前售货机状态String state = 库存 n + 啤酒: + countOfBeer + n + 橙汁: + countOfJuice + n + 五角

8、硬币: + countOfFiveCents + n + 一元硬币: + countOfOneDollar;return state;public String buy(String type, int money)/用户购买的方法。type是用户选择的产品,money是用户投币种类if(money=50) /如果用户投入5角钱if(type.equals(typeOfGoods0) /如果用户选择啤酒if(countOfBeer0) /如果还有啤酒countOfBeer-;countOfFiveCents+;resultOfDeal = 请取出饮料;return resultOfDeal;e

9、lseresultOfDeal = 目前该饮料已经售完;return resultOfDeal;else if (type.equals(typeOfGoods1) /用户选择橙汁if(countOfJuice 0)countOfJuice-;countOfFiveCents+;resultOfDeal = 请取出饮料;return resultOfDeal;elseresultOfDeal = 目前该饮料已经售完;return resultOfDeal;elseresultOfDeal = 目前不提供该饮料;return resultOfDeal;else if(money=100) /如果

10、用户投入一元钱if(countOfFiveCents 0) /如果售货机有零钱if(type.equals(typeOfGoods0)&countOfBeer0)/如果用户选择啤酒而且还有啤酒countOfBeer-;countOfFiveCents-;countOfOneDollar+;resultOfDeal = 请取饮料,并取回找钱;return resultOfDeal;else if (type.equals(typeOfGoods1)&countOfJuice0)/如果用户选择橙汁而且还有橙汁countOfJuice -;countOfFiveCents -;countOfOneD

11、ollar +;resultOfDeal = 请取饮料,并取回找钱;return resultOfDeal;elseif(type.equals(typeOfGoods0)&countOfBeer=0)resultOfDeal = 目前该饮料已经售完;return resultOfDeal;else if(type.equals(typeOfGoods1)&countOfJuice=0)resultOfDeal = 目前该饮料已经售完;return resultOfDeal;elseresultOfDeal = 目前不提供该饮料;return resultOfDeal;elseresultOf

12、Deal = 对不起,目前不能找钱,请投 5 角硬币;return resultOfDeal;resultOfDeal = 请投 5 角或者1 元的硬币;return resultOfDeal;测试程序以下测试场景均基于上述程序:测试场景:投币 1 元购买橙汁三次,然后投币 1 元购买啤酒三次。预期结果:显示“对不起,目前不能找钱,请投 5 角硬币”函数代码:public void test_NoCoin()SaleMachine sm = new SaleMachine();assertEquals(sm.buy(orange, 100), 请取饮料,并取回找钱);assertEquals(

13、sm.buy(orange, 100), 请取饮料,并取回找钱);assertEquals(sm.buy(orange, 100), 请取饮料,并取回找钱);assertEquals(sm.buy(beer,100), 对不起,目前不能找钱,请投 5 角硬币);测试结果:通过测试场景:投币1元,购买可乐预期结果:显示“目前不提供该饮料”函数代码:public void test_Cola()/售货机有5角,投币1元,选择非啤酒非橙汁SaleMachine sm = new SaleMachine();assertEquals(sm.buy(Cola, 100), 目前不提供该饮料);测试结果:

14、通过测试场景:投币5块,购买橙汁预期结果:显示请投 5 角或者1 元的硬币函数代码:public void test_500orange()/售货机没有啤酒剩余,用户投币5角,选择啤酒SaleMachine sm = new SaleMachine();assertEquals(sm.buy(orange, 500), 请投 5 角或者1 元的硬币);测试结果:通过测试场景:投币 1元购买啤酒一次预期结果:显示“请取饮料,并取回找钱”函数代码:public void test_50Beer3()/测试连续买三次啤酒每次投币5角SaleMachine sm = new SaleMachine()

15、;assertEquals(sm.buy(beer, 50), 请取饮料,并取回找钱);测试结果:通过测试场景:投币 5角购买啤酒四次预期结果:显示“目前该饮料已经售完”函数代码:public void test_50Beer3()/测试连续买三次啤酒每次投币5角SaleMachine sm = new SaleMachine();assertEquals(sm.buy(beer, 50), 请取出饮料);assertEquals(sm.buy(beer, 50), 请取出饮料);assertEquals(sm.buy(beer, 50), 请取出饮料);assertEquals(sm.buy

16、(beer, 50), 目前该饮料已经售完);测试结果:通过测试场景:初始化五角/一元硬币/啤酒/橙汁都为4个,投币50,购买5次橙汁预期结果:显示“请取出饮料”*4 + 目前该饮料已经售完函数代码:public void test_50Orange4()/售货机没有啤酒剩余,用户投币5角,选择啤酒SaleMachine sm = new SaleMachine(4,4,4,4);assertEquals(sm.buy(orange, 50), 请取出饮料);assertEquals(sm.buy(orange, 50), 请取出饮料);assertEquals(sm.buy(orange, 50), 请取出饮料);assertEquals(sm.buy(orange, 50), 请取出饮料);assertEquals(sm.buy(orange, 50), 目前该饮料已经售完);测试结果:通过截图:专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁