结对编程之Fault、Error、Failure

1.结对说明

结对对象:刘世麟  博客地址:http://www.cnblogs.com/liushilin/

双方贡献:1:1

2.题目要求

构造程序,分别是:

•不能触发Fault。

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

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

3.题目概述

提示用户输入两个值,两个值必须在[0,100],若不满足条件各自有自己的提示,若两个值都小于5,则输出all input less than 5,程序退出。否则根据输入的值判断使用加法还是减法,若输入的第一个数小于第二个数,则使用减法计算,结果小于0,不然就使用加法,结果一定大于0。

4.结对照片

5.源码

 1 package com.nanchen.jieduibiancheng;
 2
 3 import java.util.Scanner;
 4
 5 public class ErrorFault {
 6     private static Scanner in = new Scanner(System.in);
 7     private static final int RANGE_LOW = 0;// 允许用户输入的最小值
 8     private static final int RANGE_HIGH = 100;// 允许用户输入的最大值
 9     private static final int LIMIT = 5;
10     private static int result;// 返回结果
11
12     /**
13      * 获得用户输入,输入值必须是0到100的整数
14      *
15      * @return
16      */
17     public static int getUserInput() {
18         int number = -1;
19         System.out.println("please input a integer number,range in [0,100] !");
20         while (true) {
21             if (in.hasNextInt()) {
22                 number = in.nextInt();
23                 if (number > RANGE_HIGH || number < RANGE_LOW) {
24                     System.out.println("The input integer number not in [0,100],please input again!");
25                 } else {
26                     break;
27                 }
28             } else {
29                 in.nextLine();// 刷新输入流
30                 System.out.println("illegal input!!!the input must be a integer!please input again!");
31             }
32         }
33         return number;
34     }
35
36     /**
37      * 获得返回结果
38      *
39      * @param num1
40      * @param num2
41      * @return
42      */
43     public static int getResult(int num1, int num2) {
44         if (num1 < num2) {
45             return num1 + num2;// 此处存在fault,应该是减法
46         }
47         return num1 + num2;
48     }
49     // 如上,无论如何输入都会执行加法而不会执行减法。
50
51     public static void main(String[] args) {
52         int op1 = getUserInput();
53         int op2 = getUserInput();
54         System.out.println("******************************************************");
55         System.out.println("The user input num1 is " + op1 + "      the num2 is " + op2);
56         if (op1 < LIMIT && op2 < LIMIT) {
57             System.out.println("All input less than 5!!!");
58             return;
59         }
60         result = getResult(op1, op2);
61         if (result > 0) {
62             if (result > 100) {
63                 System.out.println("Illegal!");
64             } else {
65                 System.out.println("The system uses the addition,and the result is " + result);
66             }
67         } else {
68             if (result < -50) {
69                 System.out.println("Illegal!");
70             } else {
71                 System.out.println("The system uses subtraction,and the result is " + result);
72             }
73         }
74     }
75
76 }

6.存在fault的代码说明

/**
     * 获得返回结果
     * @param num1
     * @param num2
     * @return
     */
    public static int getResult(int num1,int num2) {
        if(num1 < num2){
            return num1 + num2;//此处存在fault,应该是减法
        }
        return num1 + num2;
    }
    //如上,无论如何输入都会执行加法而不会执行减法。

如上,无论用户输入的第一个数和第二个数的大小,都会触发加法计算,而不会进行减法的运算

7.测试用例

1)存在fault但不能触发fault。

由于本程序存在分支,所以只要不进入fault分支,就不能触发fault!

2)触发fault,但不能触发error。

如上,由于用户输入的第一个值大于第二个值,会触发正确的得到加法运算,所以触发了fault,但是并没有触发error。

3)触发Error,但是不能触发Failure。

如上,实际上opA < opB,应该执行减法,且所得结果小于-50,应该得到一个Illegal的输出。但是使用getResult方法得到的结果是101,触发fault,并且产生了error,但是由于得到的结果大于100,所以输出的结果也是正确的。如上,测试用例满足了触发error,但是没有触发failure

8.总结

现在已经进入软件测试方面的学习,通过该程序,对软件中fault,error,failure 有了很直观的认识和理解,也让我们明白了,测试有一定的局限性,如何高效的测试,如何科学的测试,如何能得到较高的测试回报率,这也是本门课程中最重要的核心学习的内容。这是本门课程的开头,也让我们认识到软件测试有有趣性,对软件测试领域有了不一样的认识。

时间: 2024-08-25 10:52:48

结对编程之Fault、Error、Failure的相关文章

结对编程2—Fault&amp;Error&amp;Failure

学习进度表 点滴成就 学习时间 新编写代码行数 博客量(篇) 学到知识点 第一周 8 0 0 了解软件工程 第二周 10 0 1 博文一篇 第三周 15 0 2 选择项目.调查问卷 第四周 20 80 0 结对编程 第五周 25 330 1 java的学习.软件工程 第六周 25 210 0 编译原理.软件工程 第七周 15 0 0 软件系统设计 第八周 20 256 1 软件测试.结对编程博文 1.题目描述: 构造程序,分别是: •不能触发Fault. •触发Fault,但是不能触发Error

软件测试过程中Fault,Error,Failure的区别

Fault是程序设计上的错误.比如检索数列中最后一个指定元素的位置,应该倒序搜索.如果正序搜索即为一个fault. Error是程序运行过程中状态的错误.例如遍历数列时for(int i = 1;i < array.length;i++)这样写第一次循环便从i=1开始.实际应该从i=0开始.这就是一个error. Failure是程序运行结束后所获得的结果与预期不相同.即为Failure. 下面是练习题: 以下为练习题的答案:

结对编程--fault,error,failure的程序设计

一.结对编程内容: 1.不能触发Fault. 2.触发Fault,但是不触发Error. 3.触发Error,但不触发Failure. 二.结对编程人员 1.周浩,周宗耀 2.结对截图: 三.结对项目编程 1.不能触发Fault: 1 package com.hao_mini.www; 2 3 import java.util.Scanner; 4 5 public class True { 6 7 public static void main(String[] args) { 8 Scann

结对编程之二

结对对象:王足英 对方博客:http://www.cnblogs.com/wangzuying/p/5406306.html 贡献比例:1:1 结对方式:电脑编程,王足英负责写代码我主要提供思路并检查错误 结对图片: 同伴优点:细心认真,容易沟通和交流 题目要求: 构造程序,分别是: •不能触发Fault. •触发Fault,但是不能触发Error. •触发Error,但是不能产生Failure. 问题描述: 假设默认长度单位为米,编写一个计算为各种形状着色花费的程序. 部分代码如下: 1 pa

软件测试作业 - fault error failure

给出的题目如下: 我的解答如下: For program 1:1. where i > 0 is the fault , it should be changed to i>= 0 to avoid x is just one element situation. 2.x[] ={} or x[]={n}(n is equal to any numb),for example x[] ={1}; //test: x[] = {};y =2 //expected = NullPointerExc

结对编程之带UI的中小学数学学习软件

结对编程总结 本次结对编程是以程延博同学的代码为基础修改而成的. 个人项目的复用: 结对编程中的出题逻辑直接使用了原个人项目中的出题代码,只是在其上添加了计算算式结果的代码. 在结对编程中新增添的部分包括: 登录,注册,设置密码修改密码,题目显示,结果显示等界面 算式的结果计算和分数统计 密码的设置存储和修改 手机验证码注册功能 密码格式,手机号有效性,题目数量范围等的检测 一些经验总结和教训:        界面: 界面使用的javaSwing,认识了一系列API和类,包括像BorderLay

结对编程之JavaWeb实现

Tips: https://shihuan.site/OnlinePaper/jsp/ 这是最后实现所有功能的测试网址,欢迎大家登陆进行测试,但由于注册短信条数有限,所以提供一个测试账号进行测试 账号:Zhiwang 密码:123456Aa 界面展示: 环境选择:由于本学期选修了javaee课程,同时许多课程课程设计都需要进行网站设计,同时我们小组选择的项目也需要用到Web项目,所以选择了java作为开发环境进行本次结对编程项目开发,同时也算是检验javaee学习的效果 前端:HTML+CSS+

结对编程之带UI的小初高数学学习软件

功能要求: 1.用户注册功能.用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册: 2.用户完成注册后,界面提示设置密码,用户输入两次密码匹配后设置密码成功.密码6-10位,必须含大小写字母和数字.用户在登录状态下可修改密码,输入正确的          原密码,再输入两次相同的新密码后修改密码成功: 3.密码设置成功后,跳转到选择界面,界面显示小学.初中和高中三个选项,用户点击其中之一后,提示用户输入需要生成的题目数量: 4.用户输入题目数量后,生成一张试卷(同一张卷子不能

结对编程——关于Fault、Error、Failure程序设计

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