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