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. RTX的api開發實例

    RTX的api開發實例 最近接觸了RTX的接口開發部份,RTX其实有很多玩法,除了可以用自帶的客戶端發消息之外還可以用PHP調用API的方式來做一些事情,下邊整理了一下分享給大家 值得提醒的是这些接口 ...

  2. asp.net 读取RedisSessionStateProvider配置

    最近项目遇到需要读取RedisSessionStateProvider配置文件applicationName节点,如: 读取的方法有很多: 1直接读取web.config文件, void test1( ...

  3. linux-impdp的使用

    数据库是在linux服务器上,需要用impdp方式导入一个dmp,用root用户登录该数据库服务器后,直接采用impdp命令执行导入操作,提示:KSH:impdp:not found.经查原来是操作的 ...

  4. JAVA利用enum结合testng做数据驱动示例

    数据驱动是做自动化测试中很重要的一部分,数据源的方案也是百花八门了,比如利用外部文件,直接在@DataProvider中写死等等,我们今天介绍一下利用enum来做数据源,先来看一下enum的写法: p ...

  5. 浏览器 CSS Hack 收集

    所谓的Hack就是只有特定浏览器才能识别这段hack代码.Hack 不是什么好东西,除非没有办法,我们尽量还是不要用着玩意. 下面是各个浏览器的CSS Hack 列表. Firefox 浏览器 @-m ...

  6. webstorm 配合IIS使用

    添加名称之后 点击apply 再点击ok 然后在打开设置 就可以配置下图的信息 我们需要在webstorm里面打开IIS部署的地址怎么设置呢? 技术交流QQ群:15129679

  7. 关于把本地应用封装成windows app发布审核通不过的问题

    把传统的b/s系统,简单改版,做成了一个比较适合于领导查询的系统,并开发了一个app程序封装了webview直接导向该程序,无需登陆直接访问:结果在提交app的时候审核通不过,问题是安全审核失败: 大 ...

  8. Target runtime com.genuitec.runtime.generic.jee50 is not defined

    导入别人的工程,发现报错Target runtime com.genuitec.runtime.generic.jee50 is not defined   解决方法:1. 找到工程目录的.setti ...

  9. iOS-Xcode上传后iTunes Connect构建版本不显示

    在升级到Xcode8版本以后大多数人会碰到这个问题-开开心心开发好一款app以后上传到iTunes后台提交审核,然而iTunes Connect后台活动栏里没有出现我们上传的app,确切的说是显示一会 ...

  10. Solr4:数据导入(dataimport)时,不符合Solr日期类型要求的字段的处理

    背景: 要求将一个SQL Server2012版本中的数据库导入到Solr中.数据表中有一字段用来存储birthday日期字段,为nvarchar类型,长度为8,格式为:yyyyMMdd. 导入Sol ...