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 有了很直观的认识和理解,也让我们明白了,测试有一定的局限性,如何高效的测试,如何科学的测试,如何能得到较高的测试回报率,这也是本门课程中最重要的核心学习的内容。这是本门课程的开头,也让我们认识到软件测试有有趣性,对软件测试领域有了不一样的认识。

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

  1. 结对编程2—Fault&Error&Failure

    学习进度表 点滴成就 学习时间 新编写代码行数 博客量(篇) 学到知识点 第一周 8 0 0 了解软件工程 第二周 10 0 1 博文一篇 第三周 15 0 2 选择项目.调查问卷 第四周 20 80 ...

  2. 软件测试中的fault,error,failure

    问题:给定两段代码,设计fault,error,failure的测试用例. fault:即引起错误的原因,类似病因. error:类似疾病引起的内部结果. failure:类似疾病引起的症状. 代码1 ...

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

    一.结对编程内容: 1.不能触发Fault. 2.触发Fault,但是不触发Error. 3.触发Error,但不触发Failure. 二.结对编程人员 1.周浩,周宗耀 2.结对截图: 三.结对项目 ...

  4. 结对项目——fault,error,failure的程序设计

    一.结对编程内容: 1.不能触发Fault. 2.触发Fault,但是不触发Error. 3.触发Error,但不触发Failure. 二.结对编程人员 1.周宗耀.周浩: 2.结对截图: 三.结对项 ...

  5. ST HW2 fault & error & failure

    Software Testing 3014218128 牛菲菲 Below are two faulty programs. Each includes a test case that result ...

  6. 结对编程之<GoldPointGame>

    我们结对项目的名称是GoldPointGame,这是一个非常经典的老游戏,其规则大致是:N个同学每个人依次报一个(1-100)的有理数,交给裁判算出其平均值,然后乘以黄金点数0.618,最后得到G值. ...

  7. 软件测试作业 - fault error failure

    给出的题目如下: 我的解答如下: For program 1:1. where i > 0 is the fault , it should be changed to i>= 0 to ...

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

    一.问题描述:         构造程序,分别是:         •不能触发Fault         •触发Fault,但是不能触发Error         •触发Error,但是不能产生Fai ...

  9. 网络编程之C10K

    网络编程之C10K 虽然在过去的十几年里C10K问题已经可以很好的解决,但学习网络编程时研究C10K问题仍然价值巨大,因为技术的发展都是有规律和线索可循的,了解C10K问题及其解决思路,通过举一反三, ...

随机推荐

  1. 阿里云产品介绍(二):云服务器ECS的孪生兄弟们

    上一篇介绍的云服务器ECS,是阿里云最基础的产品,也是每一个云计算厂商最基础的产品,俗称爆款.除了标准的云服务器,阿里云也不停的在推出面向特殊业务场地的云服务器,可以说是ECS的孪生兄弟们. 这一篇就 ...

  2. Python3 字符串

    Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] on win32Type & ...

  3. 结合Domino打造全功能的Grid

    1.       需求说明: 在domino开发中我们经常会遇到表单上需要一个类似table的组件,你可以增删改等.比如我有一个张报核单据,上面需要详细列出每项金额的明细,我们先看完成后的效果: 上面 ...

  4. C#--GDI+的LinearGradientBrush类

    命名空间:System.Drawing.Drawing2D LinearGradientBrush对象用颜色线性渐变填充图形.简言之,颜色渐变包含一种在两种指定的颜色之间渐变的颜色,渐变的方向是沿着指 ...

  5. 【Vegas原创】RHEL6多界面切换方法

    CTRL+ALT+Fn(n=1-6) F1,是图形化界面 F2-F6,是字符型界面. 每个界面可以干不同的事情,很牛叉.  

  6. eclipse快捷键调试总结【转】

    http://www.cnblogs.com/yxnchinahlj/archive/2012/02/22/2363542.html (1)Ctrl+M --切换窗口的大小(2)Ctrl+Q --跳到 ...

  7. 将自己写的windows服务加入到windows集群中

    最近发现windows集群能进行很多自定义,比如在集群中加入自己编写的服务. 能自定义的可不少,截个图: 本次演示中,只想用“通用服务”这个类型. 先列下步骤 编写一个记录时间的Windows服务,这 ...

  8. 小试ijkplayer编译

    同步发表于 http://avenwu.net/ijkplayer/2015/05/07/hands_on_ijkplayer_preparation 谈到视频播放大家都知道ffmpeg,基于其的衍生 ...

  9. ECSHOP会员登录后直接进用户中心

    ECSHOP系统在会员登录成功后,不是直接进入用户中心,而是跳转回了上一个页面或者是跳转到了首页. 注意:这里说的是,用户没有主动点击前往哪个页面,让系统自动跳转. 那如何让会员登录成功后自动进入“用 ...

  10. C#3.0新特性之扩展方法介绍

    C#3.0扩展方法是给现有类型添加一个方法.现在类型即可是基本数据类型(如int,String等),也可以是自己定义的类.以下是引用片段: //Demo--1 //扩展基本类型 namespace T ...