zoukankan      html  css  js  c++  java
  • 结对编程——关于Fault、Error、Failure程序设计

    一、问题描述:

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

    二、结对对象:周芳

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

         双方贡献: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;
    
        }
    
    }

    四、结果代码分析:

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

    •不能触发Fault

    测试用例输出:

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

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

    测试用例输出:

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

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

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

    五、心得体会:

      在软件测试课程学习中,通过编写此程序,我对软件中 fault,error,failure 有了深刻的理解,当然在寻找触发error,但是不触发failure的用例,也花费了不少的时间。

  • 相关阅读:
    rzchecktree用作类别权限的问题
    VirtualStringTree 动态建树/Checktree
    一键处理打印机因任务不能取消,无法接着打印
    Delphi从Internet下载文件
    仿迅雷客户端的浏览器自定义协议的小程序
    用最少的代码为你的窗体实现剪贴板操作
    delphi2010获取鼠标指向窗口的位置及鼠标在窗口内的相对位置坐标
    datasnap 上传/下载大文件(本Demo以图传片文件为例)
    dephi中用idhttp提交cookie
    delphi2010 向另一个窗口发送鼠标点击事件
  • 原文地址:https://www.cnblogs.com/a294098789/p/5408021.html
Copyright © 2011-2022 走看看