单元测试

201421123098 胡丹丹 201421123118 张中结
代码地址:https://git.coding.net/zzj201421123118/together-2.git

一、需求分析

1.整数四则运算测试

2.分数四则运算测试

3.求最大公约数测试

二、测试环境

 
项目基于eclipse开发,然后使用用自带JUNIT4进行测试,eclemma实现代码覆盖率统计。

三、测试用例

1.整数四则运算测试

  @Testpublic void testAdd() {Calculate cal = new Calculate();String result = cal.add(10, 32768);String expected="32778";assertEquals(expected, result);}@Testpublic void testSub() {Calculate cal = new Calculate();String result = cal.sub(6,3);String expected="3";assertEquals(expected, result);}@Testpublic void testMul() {Calculate cal = new Calculate();String result = cal.mul(6,3);String expected="18";assertEquals(expected, result);}@Testpublic void testDiv() {Calculate cal = new Calculate();String result = cal.div(5,2);String expected="5/2";assertEquals(expected, result);}

2.真分数四则运算测试

 @Testpublic void testScoreAdd() {//fail("Not yet implemented");Calculate cal = new Calculate();String result = cal.ScoreAdd(6,5,1,5);String expected="7/5";assertEquals(expected, result);}@Testpublic void testScoreSub() {Calculate cal = new Calculate();String result = cal.ScoreSub(4,5,1,5);String expected="3/5";assertEquals(expected, result);}@Testpublic void testScoreMul() {Calculate cal = new Calculate();String result = cal.ScoreMul(4,5,1,5);String expected="4/25";assertEquals(expected, result);}@Testpublic void testScoreDiv() {Calculate cal = new Calculate();String result = cal.ScoreDiv(4,5,1,2);String expected="8/5";assertEquals(expected, result);}
}

3.求最大公约数测试

@Testpublic void testReduce(){Calculate cal = new Calculate();int result = cal.reduce(40,20);int expected=20;assertEquals(expected, result);}

4.运行结果

5.覆盖率

6.测试中遇到的问题

进行分数四则运算测试时出现了错误,我们在确保测试代码没有问题完全正确的情况下,肯定是Calculate类中分数运算的方法出错了,仔细检查终于发现了错误,分数运算中的返回值弄错了

public String ScoreAdd(int x,int y,int q,int w){strz = "+";int temp1 = x * w + q * y;int temp2 = y * w;int temp3 = reduce(temp1, temp2);temp1 = temp1 / temp3;temp2 = temp2 / temp3;sumScore = String.valueOf(temp1) + '/' + String.valueOf(temp2);sumStr = (String.valueOf(temp4) + '/' + String.valueOf(temp5)) + strz+ (String.valueOf(temp7) + '/' + String.valueOf(temp8));t = 1;return sumStr;}

以上展示的是错误代码,错误的地方在 return sumStr;这样返回的其实是整个算式的字符串,自然与预料结果不同。应该改成return sumScore;返回运算结果的字符串。

7.结对照片

背景是一样的,这是一起约图书馆时拍的,身边没有其他人,就我给他拍,他给我拍。

PSP展示

PSP2.1 Personal Software Process Stages Time (%) Senior Student(/hour) Time (%)(/hour)
· Planning 计划 2 2.5
· Estimate 估计这个任务需要多少时间 0.5 0.5
· Analysis 需求分析 (包括学习新技术) 1 1
· Coding Standard 代码规范 0.5 0.5
· Design 具体设计 1.5 2
· Coding 具体编码 20 24
· Test 测试(自我测试,修改代码,提交修改) 1 1
Reporting 报告 1 1

小结

有了上次合作的经验,这次合作没那么尴尬了,但有一个问题就是,eclipse直接提交会覆盖掉前面的提交记录,前面提交的记录都已经被覆盖了,队友的代码提交记录被我的覆盖掉了,我也很无奈啊,然后下次提交信息时,统一版本的书写格式。通过这次结对作业,学习Jnuit4测试Java代码,学习使用eclemma实现代码覆盖率统计,收获还是挺大的。还有上次我们也有去尝试把计算功能模块化,但是没有成功,这次回头再去做,感觉简单了许多,有一种恍然大悟的感觉,可能编程也是需要灵感的吧……哈哈哈

PS:问在隔了一周之后再看之前的代码,是否更能体会到下面这些东西?

(1) 良好的设计

(2) 编码规范

(3) 必要的注释

答:上次的四则运算GUI只写了一个类,所有的功能都集中在一个类里,这样很容易牵一发而动全身,这次单元测试有去把计算功能独立出来作为一个类,也算设计上有了一个改善,功能独立,错误也容易找出来,运用也更方便,从这点来说,我确实体会到了良好设计的重要性。代码规范,之前可能不太注意,经过这几次编程,自我感觉代码越来越规范了。至于注释,能够方便他人理解,给代码更好的可读性,也是一种程序员与其他人交流的一种途径。

评价下伙伴:

先来一片面包:队友还是很虚心听取我的想法的,能相互讨论从而得出更加正确的做法。这种能听取他人想法的行为是值得我去学习的。

在把肉放上:有时候会想着希望能做得更好点,提出的建议想法都很不错,但是由于编程能力有限,还是选择了简便易行的方式。

再来一片面包: 想要做好不是一个人的事,有时候两个人可能都比较懒惰,做得比较慢,比较拖沓。两个人应该改变方式,应该互相督促,而不是你拖我也拖。

转载于:https://www.cnblogs.com/hjkdd/p/6637722.html

结对编程2 单元测试相关推荐

  1. 结对编程2——单元测试

    码市地址:https://git.coding.net/cjz113/jiedui2.git 结对成员:201421123111 201421123113 题目描述: 上一周大家为四则运算程序设计了2 ...

  2. 结对编程之单元测试 201421123108 王坤彬

    成员: 林 钊 -- 201421123105 吴世荣 -- 201421123119  王坤彬 -- 201421123108 coding地址:https://coding.net/u/linzh ...

  3. 结对编程——单元测试

    结对编程 结对人:宫成荣 代码如下: #include<stack>                #include<iostream> #include<deque&g ...

  4. 和AI结对编程!OpenAI与GitHub联手推出AI代码生成工具,比GPT-3更强大

    作者 | 琰琰.青暮 比GPT-3更强大! 昨日,微软与OpenAI共同推出了一款AI编程工具GitHub Copilot,这款工具基于GitHub及其他网站的源代码,可根据上文提示为程序员自动编写下 ...

  5. 20165330 结对编程项目-四则运算 第一周

    需求分析 实现一个命令行程序,要求:自动生成小学四则运算题目(加.减.乘.除) 可实现多个运算符一起运算 可以真分数形式输出结果 测试结果的正确性 统计题目完成数并计算正确率 设计思路 实验首先是完成 ...

  6. 结对编程作业——四则运算

    Github项目地址 PSP PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 10 10 · Estimat ...

  7. 20175208『Java程序设计』课程 结对编程练习_四则运算

    20175208 结对编程练习_四则运算(第一周) 结对成员:20175208张家华,20175202葛旭阳 一.需求分析: 实现一个命令行程序,要求: (1)自动生成指定数量的小学四则运算题目(加. ...

  8. WordCount by C# 结对编程

    合作者:201631062210,201631062110 Gitee项目地址:https://gitee.com/zhouyue98/learngit 本次作业的链接地址:https://edu.c ...

  9. 第三次作业-结对编程

    Github项目地址:https://github.com/WHYNOTEN/WordCount.git 合作同学作业地址:https://www.cnblogs.com/Mchandu/p/1065 ...

最新文章

  1. HTML5 基础知识(四)
  2. 计算机视觉与深度学习 | 基于MATLAB的Vibe算法消除鬼影(代码版)
  3. IDEA的常用快捷键
  4. Spring容器中导入组件方式
  5. linux有没有递归函数,递归函数
  6. Val编程-界面编程
  7. linux块设备驱动中断程序,linux设备驱动归纳总结(六):1.中断的实现
  8. python实现进程通信_python进程间的通讯实现
  9. 飞鸽传书开发者都在为生计发愁?
  10. /dev/sda2占用100%、磁盘占用100%的怎么解决?
  11. java bitmap 排序_Java实现2-BitMap排序
  12. 【信息系统项目管理师】第9章-项目人力资源管理 知识点详细整理
  13. 程序员需要了解依赖冲突的原因以及解决方案
  14. ASP.NET动态网站开发培训-26.在线编辑器FreeTextBox的使用
  15. pcan的dbc和project等的配置
  16. linux symlink 函数,详解C语言中symlink()函数和readlink()函数的使用
  17. Linux系统chmod命令读、写、执行
  18. 解决PCL报错: Assertion `point_representation_->isValid (point) “Invalid (NaN, Inf) point coordinates
  19. 著作权法_信息网络传播权保护条例_最高人民法院关于审理侵害信息网络传播权民事纠纷案件适用法律若干问题的规定
  20. 制作apt-get本地源解决无网络情况下安装软件

热门文章

  1. 程序员的日常:当一名程序员到底有多难?
  2. 手机端怎么限制wifi网速
  3. 知名图床程序chevereto双十一半价促销,手把手教你如何搭建一个属于自己的无限存储图床
  4. 专利申请预审需要满足什么条件?
  5. 少年: Nginx了解下
  6. 游戏服务器是什么 游戏服务器的特点 游戏服务器选择配置
  7. {0}:{1:.4f}“.format(是什么意思 Python字符串格式化 (%占位操作符)
  8. pc c语言教程,PC C语言教程
  9. 一万五千字详解HTTP协议
  10. 网络编程懒人入门(七):深入浅出,全面理解HTTP协议