软件测试作业2 — 软件测试中的错误Failure, Error, Fault的区别

软件测试中的错误Failure, Error, Fault的区别:

Failure: External, incorrect behavior with respect to the requirements or other description of the expected behavior(预期行为出错或与其他的外部行为描述不符)。指软件在运行时出现的功能的丧失,类似于看病时病人发病的症状。

Fault: A static defect in the software(软件中的静态缺陷)。指可能导致系统或功能失效的异常条件,类似于病人发病的病因。

Error: An incorrect internal state that is the manifestation of some 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 {
10 return i;
11 }
12 }
13 return -1;
14 }
15 // test: x=[2, 3, 5]; y = 2
16 // Expected = 0

1.  找到程序中的Fault:

  Fault:循环条件出错,i>0会忽略数组中的第一个值,故应改为i>=0.

2.  设计一个未执行Fault的测试用例:

  x=null; y=5

3.  设计一个执行Fault,没有触发Error的测试用例:

  数组x的第一个元素不是与y相等的唯一的元素即可避免Error,如x = [2, 3, 2, 6],  y = 2.

4.  设计一个触发Error,但不导致Failure的测试用例:

  当数组只有一个元素的时候,循环无法进行,返回-1,触发Error。但若x中唯一的元素与y不相等,则Failure不会产生。如x = [7], y = 4。

 题目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 } return -1;
12 }
13 // test: x=[0, 1, 0]
14 // Expected = 2

1.  找到程序中的Fault:

  Fault:循环错误,程序为从前往后遍历,应改为从后往前遍历即 for (int i=x.length-1; i >= 0; i--)。

2.  设计一个未执行Fault的测试用例:

  程序总会执行int i=0 故肯定会执行Fault,及时x=null也会执行Fault。

3.  设计一个执行Fault,没有触发Error的测试用例:

  当x=null时执行Fault且会抛出异常但不会触发Error。

4.  设计一个触发Error,但不导致Failure的测试用例:

  当数组中不为空且只有一个元素等于0时或者没有元素为0时会触发Error但不会导致Failure。如x=[1, 0, 2].

时间: 2024-10-17 10:25:34

软件测试作业2 — 软件测试中的错误Failure, Error, Fault的区别的相关文章

软件测试(二)之 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

[译]Javascript中的错误信息处理(Error handling)

本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU&list=PL6n9fhu94yhUA99nOsJkKXBqokT3MBK0b 在Javascript中使用try/catch/finally来处理runtime的错误.这些runtime错误被称为exceptions.各种各样的原因都可能导致exception.比如,使用没有申明的变量或者方法都可

Python学习-16.Python中的错误处理

虽然叫错误,但跟 C# 中的异常是一回事.只不过 Python 中叫错误(Error)而 C# 中叫异常(Exception). 先手工产生一个异常: 1 file = open('','r') 上面一句由于路径是空路径,因此文件肯定是不存在的,执行这一句会引发 FileNotFoundError 这个错误. 既然是错误的,程序也停止了,这是我们不希望的,因此得想办法处理一下. 在 Python 中,异常处理使用 try.except.finally 这三个关键字. 修改代码如下: 1 path

软件测试作业二——找出程序中的错误

一.软件程序中的错误 软件程序中的错误有三种:faults(故障), errors(错误), failures(失败). 软件故障(faults):软件中的静态缺陷. 软件错误(errors):不正确的内部状态,该状态是某个故障的表现. 软件失败(failures):与需求或其他期望行为的描述有关的,外部的,不正确的行为. 二.分析下列程序 程序一: public int findLast (int[] x,int y){ //Effects:If x==null throw NullPoint

软件测试作业2:fault,error,failure 的区别

定义: Software Fault : A static defect in the software  可能导致系统或功能失效的异常条件,可译为"故障". Software Error : An incorrect internal state that is the manifestation of some fault     计算.观察或测量值或条件,与真实.规定或理论上正确的值或条件之间的差异,可译为"错误".Error是能够导致系统出现Failure的

软件测试作业——Junit使用

软件测试作业--Junit使用 [TOC] 题目要求 Install Junit(4.12),Hamcrest(1.3) with Eclipse Install Eclemma with Eclipse Write a javaprogram for the triangle problem and test the program with Junit. Description oftriangle problem:Functiontriangle takes three integers

引用文档-软件测试分类及测试中三个主要概念

软件测试分类及测试中三个主要概念 原文链接:https://blog.csdn.net/qq_35867537/article/details/77477775 1.      软件测试分类 按测试技术分 按测试技术,软件测试可分为:黑盒测试.白盒测试.灰盒测试 黑盒测试:在程序接口进行测试,它只是检查程序功能是否按照规格说明书的规定正常使用.也被称为功能测试或者数据驱动测试. 白盒测试:要完全了解程序结构和处理过程,它按照程序内部逻辑测试程序,检验程序中每条通路是否按预定要求正确工作.也被称为

软件测试作业2

1. (1)循环条件应该为 i >= 0.不取等,检测不到数组的第一个数,即index==0的数. (2)x =[] Expected: throw NullPointException Actual: throw NullPointException (3)x =[3,5,4], y=4 Expected: return 2 Actual: return 2 (4)x =[2,3,5], y=4 Expected: return -1 Actual: return -1 2. (1)逻辑错误,

Swift中的错误处理

前言 任何代码都会发生错误,这些错误有些是可以补救的,有些则只能让程序崩溃.良好的错误处理能够让你的代码健壮性提高,提高程序的稳定性. 本文的Swift版本:Swift 3 Objective C 返回nil 如果出错了,就返回空是Objective C中的一种常见的处理方式.因为在Objective C中,向nil发送消息是安全的.比如: - (instancetype)init { self = [super init]; if (self) { } //如果初始化失败,会返回nil ret