一、测试方法(Right-BICEP)
6个值得测试的具体部位:
Right-结果是否正确?
B-是否所有的边界条件都是正确的?
I-能查一下反向关联吗?
C-能用其他手段交叉检查一下结果吗?
E-你是否可以强制错误条件发生?
P-是否满足性能要求?
二、测试部分
判断题目是否已出过。若出过,返回1,否则返回0。
//******判断题目存在******
int ExistQues(LinkC C,Caculation Q)
{
LinkC temp;
temp=C->next;
while(temp)
{
if((temp->ques.num1==Q.num1)&&(temp->ques.num2==Q.num2)&&(temp->ques.sign==Q.sign))
return ; //当两个数字和算符与链表中的一样,则存在
else
temp=temp->next;
}
return ;
}
三、测试计划
R-通过改变一些题目难度(如数字范围)的参数,不停出题并记录出过的题目,看是否重复。
B-把数字控制在非常小的范围内,看是否还能运行正确。
I-运行后保存出题记录,去文件中查看。
C-控制出题范围,看出的题目数是否正确。如0~1,没有乘除,没有余数和负数的情况,应有7个题。
E-故意输入错误参数,看是否正常运行。
P-把参数(如出题数量)改成比较大的数,观察运行时的情况。
四、测试步骤
(1)R【30个,3列,0行,无乘除,0,5,无余数,无负数】
清空出题记录question.txt
运行程序,并更改参数,最后出题。
继续出题...直到题目都出完
经过观察,的确没有重复的题目。
(2)B【30个,3列,0行,无乘除,0,1,无余数,无负数】
改变出题范围,出题。
由于刚才出的题目是0~3的包括0~1,所以已无题可出。
(3)I【30个,3列,0行,无乘除,0,1,无余数,无负数】
现在退出系统,并保存出题记录。打开question.txt看是否记录下来了。
(4)C【30个,3列,0行,无乘除,0,1,无余数,无负数】
由于之前已经出过0~1之内的题目了,现在先清除记录,再出题。
(5)E【个,列,行,无乘除,0,5,无余数,无负数】
输入数值范围时,故意输入下限比上限大的数,系统会主动提示出错。
(6)P【999..个,3列,0行,无乘除,0,100,无余数,无负数】
改变出题数量
由于我设置的题目数量太大,我已经等了10分钟,题还没有出完。 说明出题数量是可以保证的,但是出题时间过长。
考虑到前面没有出负数的题,下面补充一下。
【30个,3列,0行,无乘除,-1,0,无余数,无负数】