您的位置:首页 > 编程语言

结对编程——关于Fault、Error、Failure程序设计

2016-04-19 09:21 267 查看

一、问题描述:


构造程序,分别是:
•不能触发Fault
•触发Fault,但是不能触发Error
•触发Error,但是不能产生Failure

二、Fault、Error、Failure区别

  Fault:可能导致系统或功能失效的异常条件,可译为“故障”。
  Error:计算、观察或测量值或条件,与真实、规定或理论上正确的值或条件之间的差异,译为“错误”。Error是能够导致系统出现Failure的系统内部状态。
  Failure:当一个系统不能执行所要求的功能时,即为Failure,可译为“失效”。


[b]二、结对对象:韩思明[/b]


博客地址:http://www.cnblogs.com/a294098789/

双方贡献:1:1

  队友优点:认真负责、细心细致、有很好的代码编写水平、注重代码的规范和格式。好队友!

结对编程照片:

  



三、采用语言:java(代码实现如下):



package com.sicnu.findnumber;

public class FindLastNumber {

public static void main(String[] args) {
//找出目标值aim在数组最后出现的位置,若在数组中不存在则表示-1
int array[] = {2};
int aim = 2;
int pos = -1;

if(array.length <= 1){
if(aim == array[0]){
pos = 1;
}else{
pos = -1;
}

}else{
pos = findLast(aim,array);

}

for(int i = 0; i < array.length; i++){
System.out.print(array[i] + "  ");
}
System.out.println();
System.out.println("find :"+ aim +" The last position:"+pos);

}

/**
* @param aim
* @param array
* @return
*/
public static int findLast(int aim, int array[]){
int position = -1;
for(int i = 1; i < array.length ;i++){//wrong!
if(array[i] == aim){
position = i;
}
}

return position + 1;

}

}



[b]四、结果代码分析:[/b]





错误分析:此题所要找的是,目标值在数组中出现的最后一个位置,应该是从数组从后往前找,而题中代码是,从前往后找,并且是从数组的第二个往后找的,所以是出错代码!

•不能触发Fault



测试用例输出:



数组为单个元素,当数组元素只有一个时,如题上代码,直接比较的是数组的值与目标值,并没有调用findLast()方法,所以并没有触发Fault。

•触发Fault,但是不能触发Error

测试用例输出:



调用了findLast()方法,也就是触发了Fault,但是程序结果仍然是正确,因为8在数组中只有一个且正好处于最中间的位置,此时最后一个出现和第一个出现位置是相同的,所以并未触发Error。

•触发Error,但是不能产生Failure



在查找目标值5时,本来程序查找的先后顺序出错,找的是第一个出现的值,但是由于程序又出错在是从第二个找起的,本来第一出现的5被略过,就找到了位于第5个位置的5,因此最后程序运行的结果阴差阳错是正确的。


[b][b]五、心得体会:[/b][/b]


  在软件测试课程学习中,通过编写此程序,我对软件中 fault,error,failure 有了深刻的理解,同时,更让我明白,软件测试的测试用例应该在同一等价划分上尽量多种,毕竟测试用例的巧合不能是测试的瓶颈。这些,也让我对软件测试有了不一样的理解。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: