zoukankan      html  css  js  c++  java
  • 学习软件单元测试

    软件课上,学习单元测试,王老师给我们亮出一个求最大值的函数,要求我们在10分钟内对该函数进行用例测试,原代码如下:

     1 int Largest(int list[], int length)
     2 {
     3     int i,max;
     4     for(i = 0; i < (length – 1); i ++ )
     5     {
     6           if(list[i] > max) 
     7           {
     8               max=list[i];
     9             }
    10      }
    11      return max;
    12 }

    因为,前几天刚敲过类似的代码,所以,看出max没有赋初值,并且for循环应为i<length;

    很欣喜的给max=0;

    输入数组{2,3,4,6,9}  输出 max=9  对了

    输入数组{-9 8 3}     输出  max=8  也对哦

    输入数组{-9 -8 -6}  输出  max=0  奇怪,怎么不对呢?

    。。。

    原来max初值不该赋0 ,应该赋数组中的一个值--------max=list[0];

    这样应该就对了吧

    输入{-9 -8 -1}  输出 max=-1   对了

    输入{9 9 -4}   输出  max=9  对了

    原以为这样就可以了,老师又问,如果数组为空怎么办?????

    数组为空,C中编译都通不过。(老师发话了:把电脑合上吧!课下完成后发到博客上)

    课下:

    有C定义一个数组,初始化为空时,编译都通不过,最后在同学的提醒下,想到用malloc动态分配内存,解决了数组为空的问题(C语言还得再学啊!)

    最终代码如下:

     1 #include<stdio.h>
     2 #include<stdlib.h>  //malloc动态分配内存
     3 void main()
     4 {
     5      void Largest(int list[],int length);
     6      int *p1;      //数组所分配区域第一个字节的地址
     7      int i;
     8      int n;
     9      printf("输入数组个数:");
    10      scanf("%d",&n);
    11      p1=(int *)malloc(n*sizeof(int));
    12     while(n!=0)
    13     {
    14         printf("输入数组元素:
    ");
    15          for(i=0;i<n;i++)   
    16       {
    17              scanf("%d",p1+i);
    18        }
    19        break;   //一次数组输入完成,跳出
    20      }
    21     Largest(p1,n);
    22 }
    23 void Largest(int list[],int length)  //求数组元素中最大数
    24 {
    25      int i;
    26      int max=list[0];
    27      if(list==NULL||length==0)   //数组为空
    28      {
    29         printf("数组不能为空
    ");
    30       }
    31      else 
    32       {
    33           for(i=0;i<length;i++)
    34        {
    35           if(list[i]>max)
    36          {
    37              max=list[i];
    38           }
    39         }
    40     printf("max=%d
    ",max);
    41        }
    42 }

    运行结果:

       这次测试还有不到位的,就是没有实现都去读取文件中事先存好的测试用例,下面我们将会再完善一下。

    通过这次课,这次作业,感受到,只有保证了一个个函数单元的正确,才更有利于整个程序的运行,也有利于调试,明白编程时养成单元测试的习惯是多么的重要。

  • 相关阅读:
    测试开发系列之Python开发mock接口(三)
    测试开发系列之Python开发mock接口(二)
    测试开发系列之Python开发mock接口(一)
    python单元测试unittest
    Linux–Nginx攻略
    cookies和session
    Selenium-------ActionChainApi接口详解
    Selenium-----wait的三种等待
    Selenium-Switch与SelectApi接口
    app token session rsp
  • 原文地址:https://www.cnblogs.com/fengxiaolan/p/3588559.html
Copyright © 2011-2022 走看看