结对编程2--单元测试

  码市:https://git.coding.net/pyj76566/Homework.git

  组员   201421123085 童毅南

       201421123086 潘益靖

  上一周大家为四则运算程序设计了2-3个新功能,本次在隔了一周之后,我们循序渐进地进阶。本次目标:

  1. 把计算模块提取出来,单独创建一个类。
  2. 针对提取出来的计算类的接口函数做单元测试

  a、需求分析:单元测试能够让我们写的代码更加健全,能够让程序能够不用牵一发而动全身,大大

  的改善了后期的维护花费的工作量。我们把四则运算提取出来做单元测试

  --加法运算--

  

  首先我们提取的是加法,产生两个新分数后调用Calculator.add()方法,在和我们算出的答案用JUNIT中的asserEquals方法比较答案是否一致。

  

  当我们把分母替换成0时候,这行代码就没有通过了

  --减法运算--

  

  我们默认的分数都是正数的,所以当出现1-2=-1时候程序并没有执行下去

  --乘法运算--

  

  乘法我们测试了有的功能,都能执行过

  --除法运算--

  

  不仅四则运算,我们还测试了其他的一些功能,有关分数的例如:

  --判断一个数是否是分数--

  

  其中我们用到了assertFalse()方法 

    用法:assertFalse(boolean condition);

       condition:如果condition结果为false,则通过测试.

 图中我们可以看出缺少分母的数判断是否为分数的结果是false所以是通过了,同理缺少分子,不是数字,分母为零,分子为零,分数误输入为“O”(字母O)结果都是false
  
 --计算分子分母的最大公约数--
 

 
 当我们故意输入一个错的最大公约数,自然是通过不了。

 --判断两个分数是否相等--

 
 
 主要适用于测试两个分数是否相等的功能,这个方法用于比较系统算出的答案和用户输入的答案书否相等。

 --代码覆盖率--

 计算模块的:
  
 
  分数模块的:
 

 --小结与感受--
 
 之前的代码我们已经做到了至少是好一些的规划,每每要用到一个新方法时候,都不在这个方法里面直接写,而是重新写一个目标方法,单元测试我觉得很有意义,能够让我写代码时候能够把一个方法写到尽量

 完美无缺,减少了以后的修改量,还是得代码,条理清晰,一看到就能知道功能,不用再从头开始想,这段代码的意义。

  --体会--

  (1)良好的设计

  在设计程序之前一定要想好自己要设计什么,功能有哪些,可能会出现的错误,不考虑这些的话最后只能是想到一点儿改一点儿,别人提出建议改一点儿,又浪费时间又费事。

  (2)编码规范

  这次这么费劲儿的修改,我们知道以后写程序的时候模块化,函数独立的好处了,就不会修改一点儿就要大幅度改动了,写程序的时候变量名称最好有意义,才能方便以后的读改。

  (3)必要的注释

  这个是早有体会,以后会一直这样做的。

 

  

PSP(Personal Software Process)表格

  Personal Software Process Stages Time (%) Senior Student Time (%)
Planning 计划    
· Estimate 估计这个任务需要多少时间 6h 7h
Development 开发    
· Analysis 需求分析 (包括学习新技术) 0.5h 0.5h
· Design Spec 生成设计文档 0 0
· Design Review 设计复审 0 0
· Coding Standard 代码规范 0.1h 0.2h
· Design 具体设计    
· Coding 具体编码 1h 2h
· Code Review 代码复审 0.5h 0.6h
· Test 测试(自我测试,修改代码,提交修改) 2h 2h
Reporting 报告 2h 2.6h
·Test Report 测试报告 0 0
· Size Measurement 计算工作量    
·Postmortem & Process Improvement Plan 并提出过程改进计划  


原文地址:https://www.cnblogs.com/smile12231/p/6635651.html