软件测试——faul,error&failure 与 Pie模型

在这里插入图片描述

1.fault
静态存在于软件中的缺陷,通常称之为缺陷。
2.error
在运行过程中,fault出发了一个中间状态,称之为error。
3failure
通常称之为失效,是指error一直传播到软件的外面,使用户可以观察到失效的行为
举个例子更好理解:
<遍历数组>

public class CSta {
	public static void main(String args[]) {
		int numbers[]= {3,4,5};
		t1(numbers);
	}
	private static void t1(int numbers[]) {
		// TODO Auto-generated method stub
		int length=numbers.length;
		int n=1;
		double mean,sum;
		sum=0.0;
		for(int i =1;i<length;i++)//i=0
		{
			sum+=numbers[i];
			System.out.println("sum"+n+"="+sum);
			n++;
		}
		mean=sum/(double)length;
		System.out.println("sum:"+sum+"\nmean:"+mean);
		
	}
}

sum最后值应该为数组的每一位的数组相加。
我们都知道,遍历数组应该用:
for(int i =0;i<length;i++)
本来的结果是:
sum1=3.0
sum2=7.0
sum3=12.0
sum:12.0
mean:4.0

因为数组下标是从0开始的。

但这里却是 for(int i =1;i<length;i++)
因此结果为:
sum1=4.0
sum2=9.0
sum:9.0
mean:3.0

这样就导致了遍历数组不完整的问题。

在这个程序中
fault为:静态变量int i=1
error:sum=4+5=9
(正常状态是3+4+5=12)
failure:mean=3
(正常状态是12/3=4)

–整个运行过程中通过派模型来刻画–
三者对应了派模型(Pie Model):
Propagation(传播) Infection(感染) Execution(执行)
在这里插入图片描述

Pie模型的三种情况:

1.fault,error,failure全部触发,如上面的程序

2.error触发,但error与failure未触发(error不触发,failure就不会触发)
Test:int numbers[]={0,4,5}
当i=0时(正常情况全部遍历):sum=0+4+5=9; mean=3
当i=1时(非正常情况第一个数未遍历):sum=4+5=9; mean=3
结果一致,无法触发error

3.fault触发,error触发,但failure未必会触发
Test:int numbers[]={3,5,4}

public class CSta {
	public static void main(String args[]) {
		int numbers[]= {3,5,4};
		t2(numbers);
	}
	private static void t2(int[] numbers) {
		// TODO Auto-generated method stub
		double sum=0.0,mean;
		int n=1;
		int length=numbers.length-1;
		for(int i=0; i<length;i++)
		{
			sum+=numbers[i];
			System.out.println("sum"+n+"="+sum);
			n++;
		}
		mean=sum/(double)length;
		System.out.println("sum:"+sum+"\nmean:"+mean);
	}
}

分析:
非正常情况(如上程序):
sum1=3.0
sum2=8.0
sum:8.0
mean:4.0

正常情况(完整遍历数组):
sum1=3.0
sum2=8.0
sum3=12.0
sum:12.0
mean:4.0

1.fault:
int length=numbers.length-1;
for(int i=0; i<length;i++)
最后一个数没有遍历到,因此达成fault
2.error:
完整遍历:sum最终值为12.0
非完整遍历:sum最终值为8.0
因此达成error条件

3.failure
完整遍历:mean=8/2=4
非完整遍历:mean=12/3=4

两次执行结果的最终值mean相等,因此不达成failure条件

在这里插入图片描述

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值