结对伙伴:


 

201421123038(队友)、201421123039(本人)

题目描述:


 

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

  • 把计算模块提取出来,单独创建一个类。
  • 针对提取出来的计算类的接口函数做单元测试。
  • 参考助教的示例:

a. http://www.cnblogs.com/zhengrui0452/p/6507630.html     

需求分析:


 

  • 通过单元测试代码,测试加法是否能正确工作;
  • 通过单元测试代码,测试加减乘除功能;
  • 通过单元测试代码,测试计算类对于各种参数的支持。

测试过程:


 

  • 测试框架如图

  • 计算模块的测试用例及运行结果
封装加减乘除模块:

package random;
import junit.framework.TestCase;

public class calculateTest3 extends TestCase 
{
    protected void setUp() throws Exception {
    super.setUp();
}
public void testAdd()         //加法测试模块
{
    RandomNum a=new RandomNum(2,3);
    RandomNum b=new RandomNum(2,3);
    calculate c=new calculate();
    c.Add(a, b);
    System.out.println(a.toString());
}

public void testSubstract()   //减法测试模块
{
    RandomNum a=new RandomNum(1,3);
    RandomNum b=new RandomNum(2,3);
    calculate c=new calculate();
    c.Add(a, b);
    System.out.println(a.toString());
}
public void testDeivde()      //除法测试模块
{
    RandomNum a=new RandomNum(2,1);
    RandomNum b=new RandomNum(3,1);
    calculate c=new calculate();
    c.Add(a, b);
    System.out.println(a.toString());
} 
public void testMul()        //乘法测试模块
{
    RandomNum a=new RandomNum(2,3);
    RandomNum b=new RandomNum(2,1); 
    calculate c=new calculate();
    c.Add(a, b);
    System.out.println(a.toString());
}
} 
  • 测试过程中遇到的问题以及解决的方案。

       测试代码覆盖率时clover插件安装不好,开始一直找不到下载的地方,后来通过百度直接在ECLIPSE的中HELP中安装成功。

  • 展示上面描述的单元测试的每个环节。
    1、首次测试结果,加减乘除皆可执行:

    2、将除法模块中,分母改为0,则测试报错:

     3、测试超出范围的数相加:

      4、利用clover测试代码覆盖率


 实验总结:

1.小结与感受:


   (1)问题:通过测试,是否有效发现了程序计算模块的问题,并给予改进?

     答:无法解决溢出的问题,不知该如何改进。

   (2)体会:

  • 在本次实验中,跟队友一起利用JUnit进行代码模块的测试,开始跟队友也是不太会,通过百度还有请教一些会的同学,才掌握了方法,同时明白了这种测试的好处,它可以方便快速的找出代码中出错的地方并加以改正。
  • 在测试代码覆盖率方面也摸索了好久,有许多可以进行测试的插件,通过讨论我们选择了利用CLOVER,开始一直找不到下载的地方,后来通过百度直接在ECLIPSE的中HELP中安装成功。

   (3)汉堡包式评价:

        先来一片面包:队友编程的思路和解题思想都很好,针对题目常常能提出一针见血的看法。

        再放上肉:缺点就是有点会拖时间,任务是都能如期完成,但是过程会拖拖沓沓,所以在实验过程中常常需要我的监督,结对做实验也正是需要两人互相监督完成

        再来一片面包:做事情真正静下心来就会做的很认真,实验过程中也给了我很多帮助。

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


 

    (1)良好的设计

良好的设计非常重要,结构化模块化编程对于管理和修改和扩展都是非常有帮助的。如果没有设计好,可能一开始还没有感觉,
但是后面进行功能扩展的时候会非常痛苦,会导致后续一系列的问题。所以开始设计时,一定要有模块化的思想。相互之间的联系尽量少,分层设计,这样容易修改和拓展。
(2) 编码规范
一定要有自己熟练而且正规的一个变量,方法等命名规则。
如果随便定义了a,b,c,x,y后续再看的时候,或者别人看的时候会很困难。这方面自己还要好好改进。
(3) 必要的注释
方法的注释以及关键代码的注释很重要,有时候自己写的方法可能比较复杂,但是别人使用的时候可能并不想研究怎么写的,而是只关注怎么用。
让别人看一下注释就知道怎么用,有什么效果。这个后面一定要好好使用和规范。
 

项目地址
https://git.coding.net/nibaijiejiea/test.git

结对照片:

 

      

PSP表格:

 

PSP2.1 Personal Software Process Stages Time (%) Senior Student Time (%)
Planning 计划 5h 6h
· Estimate 估计这个任务需要多少时间 5h 6h
Development 开发    
· Analysis 需求分析 (包括学习新技术) 0.5h 0.3h
· Design Spec 生成设计文档 0 0
· Design Review 设计复审 0 0
· Coding Standard 代码规范 0.2h 0.3h
· Design 具体设计    
· Coding 具体编码 0.5h 0.5h
· Code Review 代码复审 0.5h 0.6h
· Test 测试(自我测试,修改代码,提交修改) 2h 2h
Reporting 报告 4h 3h
· 测试报告    
· 计算工作量    
· 并提出过程改进计划    
posted on 2017-03-29 15:46  biyubai  阅读(166)  评论(0编辑  收藏  举报