简单程序测试及Issues的使用
一、Clone别人的项目
使用Git来clone别人的项目,最简单的方法就是在打开IDEA选择Check out from Version Control中的Github后输入需要clone的url经能够将别人的的项目下载到自己的IDEA中。
二、程序测试
我测试的是项诗茹的程序,在测试的过程中主要发现了一下一些问题:
- 程序没有任何输入限制。
而且在输入错误内容后程序直接崩溃,无法继续运行。
- 程序交互不是很友好。
比如在做错任何一题以后都无法继续做题,直接显示是否查看答案,查看答案后直接显示所有的答案,包括还没有回答的答案。
- 在生成题目未加限制。
会出现题目重复出现,算式中出现N/N这种数字,以及在整数运算没有出现过除法。
- 分数的答案判断系统无法完成判断。
输入任何正确答案,包括分数,小数等都无法进行判断。只要时碰到分数问题都无法进行有效的判断。
- 程序代码未进行合理划分。
程序功能划分不明确,部分代码存在冗余。
我的程序是沈卓民测试的,他在测试的时候发下我的程序存在以下一些问题
- 程序会生成2÷2这类算式。
这个问题其实是一个较为正常的整数之间的除法。
- 会存在除数为0的情况。
这个的确是我在考虑程序的时候只想到了分数时分母不能为零,却忽略了整数除法中无法除数也不能为零。
解决方法为在判断除法时多进行一次判断,若被除数为零的时候直接重新随机一个不为零的整数。
where(number2[0] == 0){
number2 = randomInt();
}
- 程序会生成已生成的算式
这个问题在编写代码的时候就有考虑到,但是编写的时候大致计算了一下概率,随机数的范围在1-100时算式的重复概率大概是千万级别的,后来和老师讨论过这个问题,将随机数的范围为缩小到1-10的时候,概率就大概变成了千级别的。
我解决的方法是写一个查重的函数,将每一个正常输出的算式保存在数组中,如果出现存在的算式,那么就重新进行算式的随机。
public static boolean isQuestionExist(String number[],String symbol){
for (int i=0;i<NUM_OF_QUESTION;i++){
if (question[i].equals(number[1]+symbol+number[2])){
return true;
}
else {
question[i] = number[1]+symbol+number[2];
NUM_OF_QUESTION++;
return false;
}
}
return false;
}
三、总结
在测试别人的代码的时候除了老师所列出来的问题以外,也可以测试一些自己在编写代码的时候所遇到的问题。
同时也能够查看一下别人是如何解决自己在编写代码的时候的所碰到的问题。通过查看不同的解决方法能够优化自己的代码。