【软件测试】错误分析(homework2)

1)了解错误类型:

Fault : A static defect in the software.【一个静态的在软件中产生的错误。】

Failure : External, incorrect behavior with respect to the requirements or other description of the expected behavior.【外部的表现,不正确的行为,相对于预期的行为的要求或其他描述。】

Error : An incorrect internal state that is the manifestation of some fault.【不正确的内部状态,是一种错误的表现形式。】

2)RIP模型:

Reachability 可达性

Infection 感染性

Propagation 传播性

3)Tarantula 公式:

4)程序用例分析:

要求:

如下给出两个程序,每个程序给出一个测试用例,并且这个用例出现错误的结果。

分别回答四个问题:

① 分辨错误(fault)。

② 如果可能的话,识别出没有执行错误的测试用例。

③ 如果可能的话,识别出执行了错误但是没有得出错误结论的测试用例。

④ 如果可能的话,识别出一个得到error却没有得到failure结论的测试用例。

程序1:

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

回答:

① for循环中的判断条件应该是i>=0,不应该是i>0。

②  如果x=0,则不会经过for循环,所以不会执行错误的代码位置。

③ 只要是x中和y相等大小的元素不是在x中的第一个位置,那么就会运行了代码行且不会报错。

例如:x=[1,2,3,4,5] y=3,那么就可以经过代码行,且不会有错误出现。

④ 当x中元素个数只有一个时,会出现得到error却没有failure的情况。

程序2:

 1 public static int lastZero (int[] x) {
 2   //Effects: if x==null throw NullPointerException
 3   // else return the index of the LAST 0 in x.
 4   // Return -1 if 0 does not occur in x
 5   for (int i = 0; i < x.length; i++)
 6   {
 7     if (x[i] == 0)
 8     {
 9       return i;
10     }
11   }
12   return -1;
13 }
14
15 // test: x=[0, 1, 0]
16 // Expected = 2

回答:

① for (int i = 0; i < x.length; i++) 有错误,应该是 for (int i = x.length-1; i >= 0; i --)

② 所有的测试用例都会经过错误的代码行。

③ 当x中只有一个元素时,例如x=[1],这时会运行错误的代码行却没有报错。

④ 当x的数组中有0时,会出现得到error没有failure的情况。

时间: 2024-12-22 13:22:37

【软件测试】错误分析(homework2)的相关文章

软件测试技术 homework2

Code 1 1.fault是迭代的条件应该是 i >= 0 而不是 i > 0 2.当测试用例是 [3,2,1],1 时. 3.当测试用例是 [2,3,4],1 . 4.当测试用例是 [2],1 . Code 2 1.fault是应该逆序迭代,正确为for(int i = x.length-1;i>=0;i--) 2.当测试用例是[0,1]时. 3.当测试用例是 [1,0,0]. 4.当测试用例是 [0].

软件测试:homework2

题目: 首先我们需要搞懂fault,error,failure的区别: 百度搜索到的解释: Software Fault: A static defect in the software;(eg: virus)Software Failure: External, incorrect behavior with respect to the requirements or other description of the expected behavior;( eg: high body tem

软件测试 homework2

(1)for循环中i>0应改为i>=0 x = [ 3 2 5],y = 2 x = [ 3 4 5],y = 2 x = [  2 ],y = 2 (2)for 循环中应改为for(i = x.length -1 ; i >= 0; i--) x = [  0 2 ] x = [  2 0 0] x = [  0 ]

软件测试homework2

一. public intfindLast(int[] x, inty) {//Effects: If x==null throwNullPointerException// else return the index of the last element// in x that equals y.// If no such element exists, return -1for (inti=x.length-1; i> 0; i--){if (x[i] == y){return i;}}r

软件测试第六周——白盒测试

概述: 软件白盒测试,也称为结构化测试.基于代码的测试,是一种 测试用例设计方法,它从程序的控制结构导出测试用例.  用软件白盒测试产生的 测试用例能够:  1)保证一个模块中的所有独立 路径至少被使用一次;  2)对所有逻辑值均需测试true和false;  3)在上下边界及可操作范围内运行所有循环;  4)检查内部 数据结构以确保其有效性.  这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部 逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的

软件测试(二)之 Failure, Error &amp; Fault

知识回顾 软件测试中的错误主要分为三种:Failure, Error 和 Fault. 下面就分析一下它们的不同: Fault的定义:可能导致系统或功能失效的异常条件(Abnormal condition that can cause an element or an item to fail.),可译为“故障”. Error的定义:计算.观察或测量值或条件,与真实.规定或理论上正确的值或条件之间的差异(Discrepancy between a computed, observed or me

软件测试随手记(转)

最近在准备网易测试工程师的实习笔试,边学边记了一些常考的知识点,放在这里以便复习之用. V模型 瀑布模型 驱动函数(一般为Main函数) 桩函数 黑盒测试: 等价类划分(逐个覆盖). 边界值分析(有序的三个点:边界值及边界值前后的两个点). 状态转换测试法(起始状态.输入.输出.结束状态) n-switch覆盖 状态表(找到隐藏的状态转换) 因果图法(逻辑图) 语法测试 白盒测试: 语句测试 分支/判定测试 控制流图 条件测试(每一个布尔操作数的真值价值都被测试用例覆盖至少一次) 数据流测试(定

软件测试理论与经验--阅读笔记

第1章 测试员的角色 测试人员的角色到底是什么?能够定义的很清楚吗? 经验1-测试员是项目的前灯 测试就是要找到信息,有关项目或者产品的关键信息决策都需要根据这些信息来决定. 经验2-测试员的使命决定要做的一切 使命可能决定于行业.公司.项目或者团队的个性,测试项目也是千差万别.我们的使命是以客户为中心, 明确需求,提高工作效率及降低风险.要经常动态调整自己的使命,不要侧重某一方面而疏忽另一方面. 经验3-测试员为很多客户服务 测试员提供的服务时至关重要的,客户可以是项目经理.程序员.技术文档编

《软件测试的艺术(原书第2版)》【PDF】下载

<软件测试的艺术(原书第2版)>[PDF]下载链接: https://u253469.ctfile.com/fs/253469-231196343 内容简介 本书以一次自评价测试开篇,从软件测试的心理学和经济学入手,探讨了代码检查.走查与评审.测试用例的设计.模块(单元)测试.系统测试.调试等主题,以及极限测试.互联网应用测试等高级主题,全面展现了作者的软件测试思想.第3版在前两版的基础上,结合软件测试的最新发展进行了更新,覆盖了可用性测试.移动应用测试以及敏捷开发测试等内容. 本书适合软件开