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

一、问题描述:

构造程序,分别是:

•不能触发Fault

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

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

二、Fault、Error、Failure区别

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

二、结对对象:韩思明

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

双方贡献:1:1

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

结对编程照片:

  

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

 1 package com.sicnu.findnumber;
 2
 3 public class FindLastNumber {
 4
 5     public static void main(String[] args) {
 6         //找出目标值aim在数组最后出现的位置,若在数组中不存在则表示-1
 7         int array[] = {2};
 8         int aim = 2;
 9         int pos = -1;
10
11         if(array.length <= 1){
12             if(aim == array[0]){
13                 pos = 1;
14             }else{
15                 pos = -1;
16             }
17
18         }else{
19             pos = findLast(aim,array);
20
21         }
22
23         for(int i = 0; i < array.length; i++){
24             System.out.print(array[i] + "  ");
25         }
26         System.out.println();
27         System.out.println("find :"+ aim +" The last position:"+pos);
28
29
30     }
31
32
33     /**
34      * @param aim
35      * @param array
36      * @return
37      */
38     public static int findLast(int aim, int array[]){
39         int position = -1;
40         for(int i = 1; i < array.length ;i++){//wrong!
41             if(array[i] == aim){
42                 position = i;
43             }
44         }
45
46         return position + 1;
47
48     }
49
50 }

四、结果代码分析:

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

•不能触发Fault

测试用例输出:

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

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

测试用例输出:

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

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

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

五、心得体会:

  在软件测试课程学习中,通过编写此程序,我对软件中 fault,error,failure 有了深刻的理解,同时,更让我明白,软件测试的测试用例应该在同一等价划分上尽量多种,毕竟测试用例的巧合不能是测试的瓶颈。这些,也让我对软件测试有了不一样的理解。

时间: 2024-11-14 02:30:30

结对编程——关于Fault、Error、Failure程序设计的相关文章

结对编程2—Fault&amp;Error&amp;Failure

学习进度表 点滴成就 学习时间 新编写代码行数 博客量(篇) 学到知识点 第一周 8 0 0 了解软件工程 第二周 10 0 1 博文一篇 第三周 15 0 2 选择项目.调查问卷 第四周 20 80 0 结对编程 第五周 25 330 1 java的学习.软件工程 第六周 25 210 0 编译原理.软件工程 第七周 15 0 0 软件系统设计 第八周 20 256 1 软件测试.结对编程博文 1.题目描述: 构造程序,分别是: •不能触发Fault. •触发Fault,但是不能触发Error

结对编程--fault,error,failure的程序设计

一.结对编程内容: 1.不能触发Fault. 2.触发Fault,但是不触发Error. 3.触发Error,但不触发Failure. 二.结对编程人员 1.周浩,周宗耀 2.结对截图: 三.结对项目编程 1.不能触发Fault: 1 package com.hao_mini.www; 2 3 import java.util.Scanner; 4 5 public class True { 6 7 public static void main(String[] args) { 8 Scann

软件测试过程中Fault,Error,Failure的区别

Fault是程序设计上的错误.比如检索数列中最后一个指定元素的位置,应该倒序搜索.如果正序搜索即为一个fault. Error是程序运行过程中状态的错误.例如遍历数列时for(int i = 1;i < array.length;i++)这样写第一次循环便从i=1开始.实际应该从i=0开始.这就是一个error. Failure是程序运行结束后所获得的结果与预期不相同.即为Failure. 下面是练习题: 以下为练习题的答案:

软件测试作业 - fault error failure

给出的题目如下: 我的解答如下: For program 1:1. where i > 0 is the fault , it should be changed to i>= 0 to avoid x is just one element situation. 2.x[] ={} or x[]={n}(n is equal to any numb),for example x[] ={1}; //test: x[] = {};y =2 //expected = NullPointerExc

结对编程之Fault、Error、Failure

1.结对说明 结对对象:刘世麟  博客地址:http://www.cnblogs.com/liushilin/ 双方贡献:1:1 2.题目要求 构造程序,分别是: •不能触发Fault. •触发Fault,但是不能触发Error. •触发Error,但是不能产生Failure. 3.题目概述 提示用户输入两个值,两个值必须在[0,100],若不满足条件各自有自己的提示,若两个值都小于5,则输出all input less than 5,程序退出.否则根据输入的值判断使用加法还是减法,若输入的第一

结对编程(二)

结对对象:吴鹏宇2013110438 博客地址:http://www.cnblogs.com/wpy0032/ 双方贡献比例:  1:1 结对照片 题目: 构造程序,分别是: •不能触发Fault. •触发Fault,但是不能触发Error. •触发Error,但是不能产生Failure. 源程序 提示用户输入两个值,两个值必须在0~100,若不满足条件则提示错误,若两个值都小于10,则输出输入都小于10,程序退出.否则根据输入的值判断使用加法还是减法,若输入的第一个数小于第二个数,则使用减法计

PIE结对编程

学习进度条 点滴成就 学习时间 新编写代码行数 博客量 学到知识点 第一周 8 0 0 了解软件工程 第二周 7 0 1 了解软件工程 第三周 11 0 1 用例图 第四周 6 25 0 结对编程 第五周 8 30 1 类图 第六周 11 60 0 软件工程 第七周 10 40 1 软件测试 第八周 20 150 1 软件测试 项目要求: 构造程序,分别是: 不能触发Fault. 触发Fault,但是不能触发Error. 触发Error,但是不能产生Failure. 结对对象:杜敏  学号:20

结对编程--fault,error,failure

结对编程对象:张忠玉 结对照片: 结对题目:输入一定个数的数字,对其排序后输出最大值. 1 package com.jkxy.zy.selectsort; 2 3 import java.util.Scanner; 4 5 /** 6 * 7 * 构造程序,分别是: 8 •不能触发Fault. 9 •触发Fault,但是不能触发Error. 10 •触发Error,但是不能产生Failure.*/ 11 public class Selectsort { 12 13 public static

20165219 2017-2018-2《Java程序设计》结对编程一 第一周总结

20165219 2017-2018-2<Java程序设计>结对编程一 第一周总结 结对对象 20165219王彦博 20165232何彦达 需求分析 实现一个程序,要求: 1 支持整数运算 2 支持多运算符运算 3 支持分数运算,支持真分数运算 3 统计正确率 扩展需求: 设计思路 这是一个需要支持复杂运算的程序,不同于简单的单运算符的四则运算,需要设计多个类来实现运算,比如加减乘除以及平方的运算. nml图(部分) 代码进度 整数计算类 public class IntNumber { p