结对编程之Fault、Error、Failure 1.结对说明 2.题目要求 3.题目概述 4.结对照片 5.源码  6.存在fault的代码说明 7.测试用例 8.总结

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

2.题目要求

 构造程序,分别是:
        •不能触发Fault。
        •触发Fault,但是不能触发Error。
        •触发Error,但是不能产生Failure。

3.题目概述

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

4.结对照片结对编程之Fault、Error、Failure
1.结对说明
2.题目要求
3.题目概述
4.结对照片
5.源码
 6.存在fault的代码说明
7.测试用例
8.总结

5.源码

结对编程之Fault、Error、Failure
1.结对说明
2.题目要求
3.题目概述
4.结对照片
5.源码
 6.存在fault的代码说明
7.测试用例
8.总结
 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 }
结对编程之Fault、Error、Failure
1.结对说明
2.题目要求
3.题目概述
4.结对照片
5.源码
 6.存在fault的代码说明
7.测试用例
8.总结

 6.存在fault的代码说明

结对编程之Fault、Error、Failure
1.结对说明
2.题目要求
3.题目概述
4.结对照片
5.源码
 6.存在fault的代码说明
7.测试用例
8.总结
/**
     * 获得返回结果
     * @param num1
     * @param num2
     * @return
     */
    public static int getResult(int num1,int num2) {
        if(num1 < num2){
            return num1 + num2;//此处存在fault,应该是减法
        }
        return num1 + num2;
    }
    //如上,无论如何输入都会执行加法而不会执行减法。
结对编程之Fault、Error、Failure
1.结对说明
2.题目要求
3.题目概述
4.结对照片
5.源码
 6.存在fault的代码说明
7.测试用例
8.总结

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

7.测试用例

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

结对编程之Fault、Error、Failure
1.结对说明
2.题目要求
3.题目概述
4.结对照片
5.源码
 6.存在fault的代码说明
7.测试用例
8.总结

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

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

结对编程之Fault、Error、Failure
1.结对说明
2.题目要求
3.题目概述
4.结对照片
5.源码
 6.存在fault的代码说明
7.测试用例
8.总结

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

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

结对编程之Fault、Error、Failure
1.结对说明
2.题目要求
3.题目概述
4.结对照片
5.源码
 6.存在fault的代码说明
7.测试用例
8.总结

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

8.总结

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