任务03——简单程序测试及 GitHub Issues 的使用
一、测试他人代码
我被老师安排测试傅瞻昱学长的代码,测试时每道题我的计算结果都被判错,可是我是用计算器算的啊!与付瞻昱学长交流了一下,学长提交的代码是未完成的,所以
我帮学长检查bug的这个任务也只能先放一放了。
二、根据他人提出的issue修改自己的代码
首先感谢徐杨易同学仔细认真的帮我指出问题,感激不尽,下面是他帮我指出的问题,可惜的是他把10个issue放在一个里面了
根据每个问题我都有所考虑:
1和2、数学是严谨的东西,分母不能为0,而且不可以带有#&等字符,如果用户错误输入非法字符和分母为0时,程序判断答案错误我觉得是对的。
3、我理解为用户脑袋炸了可以随时终止程序,所以加了一条语句,用户输入"Esc"时,可以结束程序;
4、这里面我觉得最难的就是不知道如何判断,这道题是否与前面的题重复,现在也没有想到解决办法,不知道是不是应该用数组储存数据,之后进行判断;
5和6、没有给予用户输入第二次答案的机会,但是根据许杨易同学的意见,如果用户答案错误的话,显示正确答案
7、之前DenominatorIsOne函数在判断分母是否为1的时候,引入了分子分母两个量,导致代码冗长;
8、代码的确有很多地方不太符合格式标准,还应该多学习下正确的格式(《阿里巴巴Java开发手册》:https://yq.aliyun.com/articles/69327?spm=5176.8217306.rtdmain.2.4wnB9y)
在代码测试阶段,自己发现了一个bug,负号不产生在前面,而是在分数线后面出现
反复阅读代码后发现,是在计算分子分母的公约数阶段出现了错了,负数和正数在计算最大公约数时使最大公约数为负,所以在除以最大公约数之后,导致分子变正,分母变负,
所以在计算最大公约数的函数里面,将计算的最大公约数加上绝对值。
做完这次的任务三之后,在任务二的基础上又增加了了一个待解决的问题,分别是:
①:答案输入小数时如何进行判断是否正确;
②:五个式子以内以及带括号的运算该怎么进行;
③:避免生成重复的算式;
每次的任务都是提高自己水平的重要环节,可以学习到很多课本上学不到的知识,每次的代码测试也是完善自己代码、提高水平的一个阶段,希望今天遗留的三个问题有朝一日可以解决。
上周二,付瞻昱学长完成了任务二的代码,以下是我检查学长的代码,并提出的issue