一、题目描述
构造程序并测试,分别是:
1.不能触发Fault。
2.触发Fault,但是不能触发Error。
3.触发Error,但是不能产生Failure。
二、结对对象
结对对象博客:
结对照片:
贡献比例:
三、构造程序并测试
1.不能触发Fault.
1.1:构造例子:判断一个数是不是正数还是负数,是正数返回,否则返回-1.
1 #include<stdio.h> 2 int signNumber(int i); 3 int main(){ 4 int a,flag; 5 printf("please input:"); 6 scanf("%d",&a); 7 flag=signNumber(a); 8 if(flag==1){ 9 printf("你输入的是正数\n"); 10 }else{ 11 printf("你输入的是负数\n"); 12 } 13 return 0; 14 } 15 16 int signNumber(int i){ 17 if(i>0){ 18 return 1; //正数返回1,否则返回-1 19 } 20 return -1; 21 }
1.2:分析:程序在第20行存在fault,没考虑输入数据为0的情况
1.3:测试
1.4:结果:存在fault但没触发.
2.触发Falut,但是不能触发Error.
2.1:构造例子:输入三个数,求其中最大值与最小值之和。
1 #include<stdio.h> 2 int main(){ 3 int a[4]; 4 int max,min; 5 scanf("%d,%d,%d",&a[0],&a[1],&a[2]); 6 max=min=a[0]; 7 for(int i=1;i<3;i++){ 8 if(a[i]>=max){ 9 max=a[i]; 10 } 11 if(a[i]>=min){ 12 min=a[i]; 13 } 14 } 15 16 int sum=max+min; 17 18 printf("%d",sum); 19 }
2.2:分析:代码11行有fault,求最大值变成了求最小值
2.3:测试:input:2,2,2
max=2,min=2;
2.4: 结果:触发了fault,但没触发Error.
3.触发Error,但是不能产生Failure。
3.1:构造例子:输入三个数,求其中最大值与最小值之和。
1 #include<stdio.h> 2 int main(){ 3 int a[4]; 4 int max,min; 5 scanf("%d,%d,%d",&a[0],&a[1],&a[2]); 6 max=min=a[0]; 7 for(int i=0;i<3;i++){ 8 if(a[i]<max){ 9 max=a[i]; 10 } 11 if(a[i]>min){ 12 min=a[i]; 13 } 14 } 15 16 int sum=max+min; 17 18 printf("%d",sum); 19 }
3.2:分析:最大值和最小值求反了。
3.3:input:1,2,3
max=1,min=3; error
output:sum=4;
3.4:触发了Error,但没触发failure
三、总结
在这次结对编程中,发现与同学的配合更加默契,编程序的时候更加高效,考虑更全面,同时明白了fault,error,failure在软件测试方面的意义。