软件工程课上,老师要求我们带电脑进行单元测试的课上测验,结果是错漏百出啊,想想真是汗颜,很多都没法检测出来。老师给出的代码如下:
int Largest(int list[], int length) { int i,max; for(i = 0; i < (length – 1); i ++ ) { if(list[i] > max) { max=list[i]; } } return max; }
当时写出的外部测试代码后,进行测试输出123,结果输出只是2,很快(length-1)这里发现改为length就OK了,但是自己却考虑不到一些边界如负数,还有含0的数组,或者是有相同的数的数组,很值得自己注意。后面通过老师的讲解才知道了这些东西,然后在回寝室后,自己进行了一些修改,代码如下:
{ int i,max; if (list[0]==NULL||length==0) { return 0; } max=list[0]; for (i=0;i<length;i++) { if(list[i]>max) { max=list[i]; } } return max; }
经过这次的学习,使我更加懂得对小单元代码的测试,这样能够避免更多的错误和浪费时间去重复测试程序的对错。