结对编程学习fault、error、failure三种状态
点滴成就 |
学习时间 |
新编写代码行数 |
博客量(篇) |
学习知识点 |
第一周 |
10小时 |
0 |
0 |
了解软件工程 |
第二周 |
10小时 |
0 |
1 |
项目开题 |
第三周 |
15小时 |
0 |
1 |
开通博客、开展项目调查 |
第四周 |
20小时 |
200 |
1 |
需求文档、用例图、代码规范 |
第五周 |
15小时 |
0 |
0 |
软件工程 |
第六周 |
20小时 |
310 |
0 |
编译原理、软件工程详细设计 |
第七周 |
18小时 |
88 |
1 |
软件工程 |
第八周 |
20小时 |
371 |
1 |
Android、编译原理、软件工程 |
1、编程问题
构造程序达到以下测试要求,分别是:
- 不能触发Fault
- 触发Fault,但是不能触发Error
- 触发Error,但是不能产生Failure
2、编程的出发点
和同伴一起相互学习,相互监督,相互促进,共同提高。
结队编程对象:高莉萍
对方博客地址:http://www.cnblogs.com/gAoliping/
双方贡献比例:1:1
3、编程细节
(1)采用语言:java
(2)主要类:包名(softwareEngineering.testFaultErrorAndFailure)、function(功能实现类)、Tester(结果输出)
(3)主要代码:
A、类名:Tester
package softwareEngineering.testFaultErrorAndFailure;
/**
* @function 编写的一个求几个数字平均数的小 demo,测试 fault、error、failure 这几种状态
* @author zy
*
*/
public class Tester {
public static void main(String[] args) throws Exception {
int[] aIntNums = { 0, 4, 5 };
/*
* 没有 fault 测试
*/
double dubcount1 = Function.getCountFromAIntOK(aIntNums);
System.out.println("没有 fault 的测试输出" + dubcount1);
/*
* 触发 fault,不触发 error 的测试
*/
double dubcount2 = Function.getAverageFromAIntDetanateErrorNoFailure(aIntNums);
System.out.println("触发 fault,不触发 error 的测试输出" + dubcount2);
/*
* 触发 error,不触发 failure 的测试
*/
double dubAverage2 = Function.getAverageFromAIntDetanateErrorNoFailure(aIntNums);
System.out.println("触发 error,不触发 failure 的测试输出" + dubAverage2);
}// end main
}// end class
B、类名:Function
package softwareEngineering.testFaultErrorAndFailure;
public class Function {
/**
* @function 计算一个 aInt 的和(没有 fault )
* @return
*/
public static double getCountFromAIntOK(int[] nums) throws Exception {
int intCount = 0;
if (nums.length > 0) {
for (int i = 0; i < nums.length; i++) {
intCount += nums[i];
}// end for
} else {
throw new Exception("传入参数数组长度为 ---> 0");
}// end if else
return intCount;
}// end
/**
* @function 计算一个 aInt 的和(触发 fault 不触发 Error )
* @reason fault 产生的原因:对数组的遍历操作从 index = 1 开始
* @return
*/
public static double getCountFromAIntDetanateFaultNoError(int[] nums)
throws Exception {
double dubCount = -999999;
if (nums.length >= 1) {
for (int i = 1; i < nums.length; i++) {
dubCount += nums[i];
}// end for
} else {
throw new Exception("传入参数数组长度为 ---> 0");
}// end if else
return dubCount;
}// end
/**
* @function 计算一个 aInt 的和(触发 fault 不触发 Error )
* @reason fault 产生的原因:对数组的遍历操作从 index = 1 开始
* @return
*/
public static double getCountFromAIntDetanateErrorNoFailure(int[] nums)
throws Exception {
int intCount = 0;
if (nums.length >= 1) {
for (int i = 1; i < nums.length; i++) {
intCount += nums[i];
}// end for
} else {
throw new Exception("传入参数数组长度为 ---> 0");
}// end if else
return intCount;
}// end
/**
* @function 计算一个 aInt 的和(触发 fault 不触发 Error )
* @reason fault 产生的原因:对数组的遍历操作从 index = 1 开始
* @return
*/
public static double getAverageFromAIntDetanateErrorNoFailure(int[] nums)
throws Exception {
double dubCount = Function.getCountFromAIntDetanateErrorNoFailure(nums);
double dubAverage = dubCount / nums.length;
return dubAverage;
}// end
}// end class
(4)测试结果输出截图
(5)结对编程照片
4、结果分析
数据源是 int[] aIntNums = { 0, 4, 5 };
(1)没有 fault 测试
① 操作:对 aIntNums 求和
② 输出结果:9.0
③ 分析:getCountFromAIntOK(int[] nums)函数没有 fault
(2)触发 fault,不触发 error 的测试
① 操作:对 aIntNums 求和
② 输出结果:9.0
③ 分析:getCountFromAIntDetanateFaultNoError(int[] nums)函数:触发 fault,不触发 error
(3)触发 error,不触发 failure 的测试
① 操作:对 aIntNums 求平均数
② 输出结果:3.0
③ 分析:getAverageFromAIntDetanateErrorNoFailure(int[] nums)函数:触发 error,不触发 failure
5、项目总结
1) 结果
① 结对编程实现了预期的功能
② 对fault、error、failure 这三种状态有了进一步的了解;
2) 不足
① 编程过程中只是为了可以的实现目标,没有更进一步的了解 fault、error、failure 这三种状态;
结对编程学习fault、error、failure三种状态的更多相关文章
- 结对编程2—Fault&Error&Failure
学习进度表 点滴成就 学习时间 新编写代码行数 博客量(篇) 学到知识点 第一周 8 0 0 了解软件工程 第二周 10 0 1 博文一篇 第三周 15 0 2 选择项目.调查问卷 第四周 20 80 ...
- Hibernate学习2--对象的三种状态以及映射关系的简单配置
上篇hibernate的博客总体简单梳理了对象持久化的一些思想以及hibernate中对象持久化化的方法,下面说说对象持久化过程的三种状态. 一.hibernate缓存的概念 1.session与缓存 ...
- JAVA并发编程学习笔记------线程的三种创建方式
创建线程一般有如下几个方式: 1. 通过继承Thread类来创建一个线程: /** * 步骤1:定义一个继承Thread类的子类 * 步骤2:构造子类的一个对象 * 步骤3:启动线程: * */ pu ...
- 结对编程——关于Fault、Error、Failure程序设计
一.问题描述: 构造程序,分别是: •不能触发Fault •触发Fault,但是不能触发Error •触发Error,但是不能产生Fai ...
- 结对项目3-bug的三种状态
这周和小伙伴结对构造程序,来深刻理解软件测试中,bug发现的三种状态. 1:不能触发Fault 2:触发Fault,但是不能触发Error 3:触发Error,但是不能产生Failure 我们完成的代 ...
- 20172325『Java程序设计』课程 结对编程练习_四则运算第三周阶段总结
20172325『Java程序设计』课程 结对编程练习_四则运算第三周阶段总结 结对伙伴 学号:20172306 姓名:刘辰 在这次项目的完成过程中刘辰同学付出了很多,在代码的实践上完成的很出色,在技 ...
- Hibernate学习(二)———— 一级缓存和三种状态解析
一.一级缓存和快照 什么是一级缓存呢? 很简单,每次hibernate跟数据库打交道时,都是通过session来对要操作的对象取得关联,然后在进行操作,那么具体的过程是什么样的呢? 1.首先sessi ...
- 【转】Spring学习---Bean配置的三种方式(XML、注解、Java类)介绍与对比
[原文]https://www.toutiao.com/i6594205115605844493/ Spring学习Bean配置的三种方式(XML.注解.Java类)介绍与对比 本文将详细介绍Spri ...
- 软件测试中的fault,error,failure
问题:给定两段代码,设计fault,error,failure的测试用例. fault:即引起错误的原因,类似病因. error:类似疾病引起的内部结果. failure:类似疾病引起的症状. 代码1 ...
随机推荐
- Fiddler抓取手机APP数据包
第一步:下载神器Fiddler,下载链接: http://w.x.baidu.com/alading/anquan_soft_down_ub/10963 下载完成之后,傻瓜式的安装一下了! 第二步:设 ...
- Laravel框架定时任务2种实现方式示例
本文实例讲述了Laravel框架定时任务2种实现方式.分享给大家供大家参考,具体如下: 第一种 1.生成一个commands文件 > php artisan make:command test ...
- CRLF注入学习
预备 <CRLF>是换行符,CRLF注入顾名思义就是把换行符写入,那么要把换行符写入到哪里呢?看看下面的http头 可以看到,每一行都包含特定的头部信息,然后以换行为标志写入其他的头部信息 ...
- Hadoop学习总结之Map-Reduce的过程解析
一.客户端 Map-Reduce的过程首先是由客户端提交一个任务开始的. 提交任务主要是通过JobClient.runJob(JobConf)静态函数实现的: public static Runnin ...
- 20155211实验二 Java面向对象程序设计
20155211实验二 Java面向对象程序设计 实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承.多态 3.初步掌握UML建模 4.熟悉S.O.L.I.D原则 5.了 ...
- 实验楼学习linux第一章第三节用户及文件权限管理
用户及文件权限管理 常用命令 查看用户 whoami 创建用户 sudo adduser 用户名 切换账户 su 用户名 删除账户 sudo deluser 用户名 --remove-home 查看用 ...
- GDAL中通过GDALDriver类的Create函数实现图像的保存
GDAL中除了读取各种类型的图像外,也可以实现对各种图像的保存操作,具体实现测试代码如下: int test_gadl_GDALDataset_write() { const char* image_ ...
- day3 RHCE
10.配置NFS服务 在server0配置NFS服务,要求如下: 以只读的形式共享目录/public同时只能被example.com域中的系统访问. 以读写的形式共享目录/protected同时只能被 ...
- php-laravel中间件使用
中间件使用 1.项目目录下cmd中php artisan make:middleware adminLogin,创建中间件 2.注册中间件(\Http\kernel.php) protected $r ...
- [深度学习] 使用Darknet YOLO 模型破解中文验证码点击识别
内容 背景 准备 实践 结果 总结 引用 背景 老规矩,先上代码吧 代码所在: https://github.com/BruceDone/darknet_demo 最近在做深度学习相关的项目的时候,了 ...