软件单元测试与代码规范

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;
}

运行的结果为:

软件单元测试完毕,谢谢!

posted @ 2014-03-05 20:01  20112807  阅读(805)  评论(1编辑  收藏  举报