软件单元测试与代码规范
20112807
蔡容玉
信1101-1班
软件单元测试与代码规范 一个单元测试 简单的例子: 查找list[]中的最大值: int Largest(int list[], int length);
首份实现代码如下:
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;
}
编写的实现程序如下:
#include<stdio.h> int main(){ int Largest(int list[],int length); int a[4]; int i,m; printf("请输入四个数:"); for(i=0;i<4;i++) { scanf("%d",&a[i]); } m=Largest(a,4); printf("最大数是:"); printf("%d\n",m); return 0; } 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; }
测试结果1如下:
测试结果2如下:
明显结果不正确,因为测试模块中函数Largest的循环条件
for(i=0;i<(length-1);i++)
编写得不正确,循环比较只到第三位数,而没有比较第四位数,正确的应该是:
for(i=0;i<(length);i++)
将程序改过来之后的运行结果如下:
另外考虑到输入数组为空时的情况,将程序改为:
#include<stdio.h> int main(){ int Largest(int list[],int length); int a[4]; int i,m; /*printf("请输入四个数:"); for(i=0;i<4;i++) { scanf("%d",&a[i]); }*/ m=Largest(a,4); printf("最大数是:"); printf("%d\n",m); return 0; } int Largest(int list[],int length){ int i,max; for(i=0;i<(length);i++) { if(list[i]>max) {max=list[i];} } return max; }
运行的结果为:
软件单元测试完毕,谢谢!