zoukankan      html  css  js  c++  java
  • 软件测试第二次作业

    知识点内容回顾:

    主要介绍了三个概念之间的区别

    首先说最根本问题

    Fault,什么事falut呢,代码中存在的问题,也就是和运行环境啊什么的没关系,你的代码就是有问题的,换句话说,你的实现是有问题的,但是这个问题不一定会被触发也不一定会导致error,但是无论是否导致了error都是有fault的。

    其次是Error,在代码执行的过程中,运行了上面的Faults,就会出现错误,(当然也有可能不出现错误),但是这个状态称之为error,可能会导致failure

    接下来说Failure,这个就是最终出现了错误的行为,那么就是failures了。

    一般来说是Fault->Error->Failure这样的感觉

    一切的根源是代码中的faults,faults会产生Error最终有可能导致failures。。。

    接下来说说本周的作业题

    public int findLast (int[] x, int y) { 
    
            //Effects: If x==null throw               
    
            //               NullPointerException 
    
            // else return the index of the last element 
    
            // in x that equals y. 
    
            // If no such element exists, return -1     
    
            for (int i=x.length-1; i > 0; i--) 
    
            { 
    
                    if (x[i] == y) 
    
                    { 
    
                            return i; 
    
                    } 
    
            } 
    
            return -1; 
    
    }
    
     // test: x=[2, 3, 5]; y = 2 
    
    // Expected = 0
    
          

    1.Fault:for循环的控制条件i > 0这里应该是i>=0,否则将不会访问x[0];

    2.一个不执行fault的样例

    x = {} y = 3;

    这样情况会直接访问无效内存导致程序挂掉

    3.执行了fault但是没有返回错误的值

    x={1,2,3} y = 2

    期望是1,答案也是1

    4.导致错误但不会失败的

    x={1,2,3},y =0

    期望答案是-1,实际答案是-1;

    public static int lastZero (int[] x) {
    
            //Effects: if x==null throw 
    
            //           NullPointerException 
    
            // else return the index of the LAST 0 in x. 
    
            // Return -1 if 0 does not occur in x 
    
            for (int i = 0; i < x.length; i++) 
    
            {
    
                     if (x[i] == 0) 
    
                    { 
    
                            return i;
    
                    } 
    
            } 
    
            return -1; 
    
    }
    
    // test: x=[0, 1, 0] 
    
    // Expected = 2

    1.fault代码是找数组中最后一个0的位置,但是却实现的是查询第一个0的位置

    2.不执行fault,因为从循环处就有fault(方向反了)所以不存在不执行fault的用例

    3.执行fault但不Error的情况是数组只有一个元素,无论正反遍历都不会有区别(都是只遍历下标为0不存在正反)

    比如x={4};

    4.执行fault导致error但没有failure的,当x中只有一个或没有0的时候

    x = {1,0,2,3}

    答案为1期望答案也为1

  • 相关阅读:
    python将url转变成二维码图片
    flask使用tablib导出excel数据表
    sql根据时间戳按年月日分组统计
    Django单元测试
    set object is not JSON serializable 解决方式
    Git 版本恢复命令reset
    Flask 中command的使用
    kali安装vmtools失败
    如何清除window上的RDP连接记录
    爬虫背景调研----用python编写网络爬虫(一)
  • 原文地址:https://www.cnblogs.com/Durandal/p/5256524.html
Copyright © 2011-2022 走看看