结对编程之Fault、Error、Failure
1.结对说明
结对对象:刘世麟 博客地址:http://www.cnblogs.com/liushilin/
2.题目要求
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。

8.总结
现在已经进入软件测试方面的学习,通过该程序,对软件中fault,error,failure 有了很直观的认识和理解,也让我们明白了,测试有一定的局限性,如何高效的测试,如何科学的测试,如何能得到较高的测试回报率,这也是本门课程中最重要的核心学习的内容。这是本门课程的开头,也让我们认识到软件测试有有趣性,对软件测试领域有了不一样的认识。
结对编程之Fault、Error、Failure的更多相关文章
- 结对编程2—Fault&Error&Failure
学习进度表 点滴成就 学习时间 新编写代码行数 博客量(篇) 学到知识点 第一周 8 0 0 了解软件工程 第二周 10 0 1 博文一篇 第三周 15 0 2 选择项目.调查问卷 第四周 20 80 ...
- 软件测试中的fault,error,failure
问题:给定两段代码,设计fault,error,failure的测试用例. fault:即引起错误的原因,类似病因. error:类似疾病引起的内部结果. failure:类似疾病引起的症状. 代码1 ...
- 结对编程--fault,error,failure的程序设计
一.结对编程内容: 1.不能触发Fault. 2.触发Fault,但是不触发Error. 3.触发Error,但不触发Failure. 二.结对编程人员 1.周浩,周宗耀 2.结对截图: 三.结对项目 ...
- 结对项目——fault,error,failure的程序设计
一.结对编程内容: 1.不能触发Fault. 2.触发Fault,但是不触发Error. 3.触发Error,但不触发Failure. 二.结对编程人员 1.周宗耀.周浩: 2.结对截图: 三.结对项 ...
- ST HW2 fault & error & failure
Software Testing 3014218128 牛菲菲 Below are two faulty programs. Each includes a test case that result ...
- 结对编程之<GoldPointGame>
我们结对项目的名称是GoldPointGame,这是一个非常经典的老游戏,其规则大致是:N个同学每个人依次报一个(1-100)的有理数,交给裁判算出其平均值,然后乘以黄金点数0.618,最后得到G值. ...
- 软件测试作业 - fault error failure
给出的题目如下: 我的解答如下: For program 1:1. where i > 0 is the fault , it should be changed to i>= 0 to ...
- 结对编程——关于Fault、Error、Failure程序设计
一.问题描述: 构造程序,分别是: •不能触发Fault •触发Fault,但是不能触发Error •触发Error,但是不能产生Fai ...
- 网络编程之C10K
网络编程之C10K 虽然在过去的十几年里C10K问题已经可以很好的解决,但学习网络编程时研究C10K问题仍然价值巨大,因为技术的发展都是有规律和线索可循的,了解C10K问题及其解决思路,通过举一反三, ...
随机推荐
- 学习Swift,一定不能错过的10大开源项目!
如果你是位iOS开发者,或者你正想进入该行业,那么Swift为你提供了一个绝佳的机会.Swift的设计非常优雅,较Obj-C更易于学习,当然也非常强大. 为了指导开发者使用Swift进行开发,苹果发布 ...
- Django抛错不存在(DoesNotExist)
from django.core.exceptions import ObjectDoesNotExist try: disabledusers.objects.get(sAMAccountName= ...
- 奇怪吸引子---Rucklidge
奇怪吸引子是混沌学的重要组成理论,用于演化过程的终极状态,具有如下特征:终极性.稳定性.吸引性.吸引子是一个数学概念,描写运动的收敛类型.它是指这样的一个集合,当时间趋于无穷大时,在任何一个有界集上出 ...
- Linux下GCC和Makefile实例(从GCC的编译到Makefile的引入) 转
http://www.crazyant.net/2011/10/29/linux%E4%B8%8Bgcc%E5%92%8Cmakefile%E5%AE%9E%E4%BE%8B%EF%BC%88%E4% ...
- Logstash——multiline 插件,匹配多行日志
本文内容 测试数据 字段属性 按多行解析运行时日志 把多行日志解析到字段 参考资料 在处理日志时,除了访问日志外,还要处理运行时日志,该日志大都用程序写的,比如 log4j.运行时日志跟访问日志最大的 ...
- JavaScript过滤除连续的数字
if (!Array.prototype.forEach) { Array.prototype.forEach = function (callback, thisArg) { var T, k; i ...
- EntityFramework 5.0 CodeFirst 教程04-查询,插入,更新,和删除数据
---------------------目录-------------------------- EntityFramework 5.0 CodeFirst 教程04-查询,插入,更新,和删除数据 ...
- TargetProcess 中更改了域名如何修改里面的附件地址
在默认情况,TP 安装的目录是默认的网站(IIS)的targetprocess2下面,但是如果想采用 tp.targetprocess.cn 这种方式直接访问,则需要做一些设置. 基本要点如下: 1. ...
- 如何准备IREB考试
最近准备International Requirement Engeering Board 考试,但凡上点年纪对记忆就不行了,时间也不够,就想着怎么偷懒. 因此,就把测试题做了一遍,然后分析各个章节的 ...
- 海蜘蛛WiFiDog固件 MTK7620 OEM,带云AC功能、探针、广告插入,MTK7620解包打包维修默认参数
修改内容: 1.系统默认管理员员帐号密码 2.系统默认LAN 接口地址 3.系统默认DHCP及保留地址 4.系统默认云AC远程地址及协议内容 5.系统默认JS插入地址 6.系统默认探针位置 7.默认顶 ...