软件测试(二)

第二次作业

对于以下两个程序

1、找出fault

2、如果可能的话,找出一个测试用例不执行fault

3、如果可能的话,找出一个测试用例执行fault,但是不产生error

4、如果可能的话,找出一个测试用例产生error,但是不会导致failure

public intfindLast(int[] x, inty) {
//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

  

public static intlastZero(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)、for循环不能遍历数组中的每一个元素,应该把for循环中的控制条件修改为i >= 0

(2)、x数组为空的情况下,会抛出空指针,不会执行fault

(3)、test: x = [ 3,5,2]; y = 2;

Expected = 2

    数组中的第一个元素不是需要找到的元素,所以不会产生error

(4)、test: x = [ 2,5,2]; y = 3;

Expected = -1

    数组中没有需要找到的元素,所以会返回-1,产生了error,但没有产生failure。

对于第二段代码

(1)、不能按照要求寻找到数组中的最后一个0的位置,而是找出的第一个0出现的位置。

(2)、x数组为空的情况下,会抛出空指针,不会执行fault

(3)、test: x = [0,1,2];

Expected = 0

    数组中只有一个0,无论怎么查找,都会返回这个0的索引,执行了fault,但是不会产生error

(4)、test: x = [ 1,2,0,3];

Expected = 2

    

时间: 2024-10-17 00:45:48

软件测试(二)的相关文章

软件测试 (二) 六年软件测试感悟

不知不觉已经从事软件测试六年了,2006毕业到进入外包公司外包给微软做软件测试, 到现在加入著名的外企.六年的时间过得真快. 长期的测试工作也让我对软件测试有了比较深入的认识.但是我至今还是一个底层的测试人员,我的看法都比较狭隘,如有错误还请批评改正. 阅读目录: 软件测试人员应该居安思危 测试人员应该比开发人员更熟悉业务需求 学会如何和开发人员相处 测试人员应该懂一些基本的编程 测试人员搭建开发环境 写文档是测试人员的核心能力 测试后期应该做两天交叉测试 测试人员的瓶颈 尽量实现自动化 自动化

软件测试二

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) {

c#_自动化测试 (五) 读写64位操作系统的注册表

非Web程序(桌面程序)的设置一般都存在注册表中. 给这些程序做自动化测试时, 需要经常要跟注册表打交道. 通过修改注册表来修改程序的设置. 本章介绍如何利用C#程序如何操作注册表, 特别是如何操作64位操作系统的注册表. 阅读目录 自动化测试经常需要修改注册表 Windows注册表简介 C#修改注册表 32位机器和64位机器注册表的区别 C#程序访问64位操作系统的注册表 自动化测试经常需要修改注册表 很多系统的设置(比如:IE的设置)都是存在注册表中. 桌面应用程序的设置也是存在注册表中.

软件测试基本方法(二)之白盒测试

白盒测试 概念:按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作. 分类:白盒测试是基于覆盖的测试,尽可能覆盖程序的结构特性和逻辑路径,所以其具体方法有逻辑覆盖.循环覆盖.基本路径覆盖.逻辑覆盖又可进一步分为语句覆盖.判定(分支)覆盖.条件覆盖.判定-条件覆盖.条件组合覆盖等.白盒测试主要用于单元测试(我们需要了解程序源码和结构,而且基于输入输出,适合单元模块).下面重点介绍常用的几种白盒测试方法. 语句覆

软件测试概论(二)_1

软件测试贯穿整个软件开发生命周期,与软件开发息息相关,因此了解必要的开发模型和测试模型是非常有必要的! 一.软件开发模型 1.1 大爆炸模型 1.2 边写边改模型 1.3 瀑布模型 1.4 快速原型模型 1.5 螺旋模型 1.6 迭代模型 1.7 敏捷开发模型 1.8 开发模型小结 二.软件测试模型 2.1 V模型 2.2 W模型 2.3 X模型 2.4 H模型 三.软件开发和软件测试的关系 一.软件开发模型 软件开发模型是软件开发全过程,能够覆盖软件生命周期的基本阶段,确定设计的方法.过程及工

软件测试江湖(二)神兵利器篇

在上一篇文章中我们介绍了江湖上流传的各种软件测试的武功秘籍和心法,相信看过的小伙伴内力得到了很大的提升.如果没有,一定是你看的姿势不对,换个姿势再试试看.但是,内力只是基础,想要把我们的内力完美的发挥出来,还需要趁手的神兵利器.下面我把江湖上的顶尖神兵分别介绍给大伙. 功能测试篇   功能测试,是软件测试里的入门级心法,自然也有与之相对应的兵器来发挥心法的最大功力. 1) 屠龙刀之QTP 屠龙刀是金庸小说里排名第一的宝刀,重剑无锋,无坚不摧.素有"武林至尊,宝刀屠龙.号令天下,莫敢不从"

软件测试理论基础总结(二)

1.软件开发的生命周期? 软件生命周期是指从软件产品的设想开始到软件不再使用而结束的时间: 2.软件生命周期的模型? ①瀑布模型 特点:从上一项活动接受本项活动的工作对象,作为输入:利用这一输入实施本项活动应完成的内容:给出本项活动的工作成果,作为输出传给 下一项活动: 瀑布模型的优缺点: ②螺旋模型 特点:瀑布模型(系统化)+快速原型(迭代过程)+风险分析: 一个螺旋式周期: 确定目标,选择方案,选定完成目标的策略: 风险角度分析该策略: 启动一个开发阶段: 评价前一步的结果,计划下一轮的工作

Liam的软件测试学习历程(二):查找错误的两道例题

观察两段代码并回答下列问题: (1) 发现错误代码: (2) 试着编写测试用例,不执行fault部分: (3) 执行fault部分,但不出现error情况: (4) 出现error情况,但不发生failure. 代码一: public int findLast (int[] x, int y) { //Effects: If x==null throw NullPointerException // else return the index of the last element // in

软件测试心得之二

这两天一直在看之前已经设计的Test Case,看着还算是简单,但不知道是根据什么来设计的,感觉使一些软件的安装步骤,只是在这个过程中增加了一般用户不会注意的地方.另外,从今天开读<软件测试>这本入门书籍.

软件测试入门随笔——软件测试基础知识(二)

POINT one:软件测试生命周期--V模型 V模型左边为开发阶段,右边为测试阶段.单元测试和功能测试应检测程序的执行是否满足程序设计的要求:系统测试应检测系统功能.性能的质量特性是否达到系统要求的指标:验收测试确定软件的实现是否满足用户需要或合同的要求. 单位测试:对单元模块的功能.性能进行测试,比如能不能完成登录功能等等.主要由开发人员完成,要求具备一定的读.改代码的能力,有静态测试方法(代码分析)和动态测试方法(白盒.或黑盒) 集成测试:以<软件概要设计说明书>为依据,检验软件单元和已