关于程序的单元测试

通过这次小程序的测试,我发现自己在编写程序的时候考虑的不够全面,在课堂上我学到了很多的东西,例如测试软件的最小单位是模块或者函数,函数的许多部位值得测试,例如:

    Right-结果是否正确?
    B-是否所有的边界条件都是正确的?
    I-能查一下反向关联吗?
    C-能用其他手段交叉检查一下结果吗?
    E-你是否可以强制错误条件发生?
    P-是否满足性能要求?

  在编写程序是也要注意边界条件,也要满足一致性,我们期望的或产生的数据必须符合某种特定的格式。

还要考虑有序性,区间性,引用/耦合性,存在性(给定的事物存在吗,为空,是否为0等),基数性,时间性。并且好的测试还应具有许多品质,例如:自动化,彻底的,可重复的,独立的,专业的。

编写程序时还应注意到代码规范的问题,代码风格规范和代码设计规范,代码要注意简明,易读,无二义性。

这次要测试的是一个输出数组中最大值的程序,在测试时我们很多人没有注意到很多细节的问题,例如如果输入的数全部相等,如果输入的数为空,如果输入的数全部是负数等等,在这种情况下我们的程序应该有相应的应急处理。下面是我的编写代码:

#include<stdio.h>
  int Largest(int list[], int length)
        {
               int i,max=0;
               for(i = 0; i <length; i ++ )

               {
                  if(list[i] > max) 
                  {
                    max=list[i];
                  }
              }
                  return max;
        }

     int main()
  {
        int i,a[9],num,n;
        printf("请输入要输入数字的个数:");
        scanf("%d",&n);
        for(i=0;i<n;i++)
       {

       scanf("%d",&a[i]);
       }
          if (n!=0)
     {

          num=Largest(a,n);
          printf("输出最大值:%d\n",num);

      }
          else
  
           printf("没有最大值");
 

           return 0;
  }

原文地址:https://www.cnblogs.com/feiji/p/3581030.html