• 结对编程2——单元测试(38/39)


    本人(38)码市地址:https://git.coding.net/cholin/Task.git
    一、题目要求
    1、把计算模块提取出来,单独创建一个类。 2、针对提取出来的计算类的接口函数做单元测试。
    二、需求分析
    1、通过单元测试代码,测试加法是否能正确工作; 2、通过单元测试代码,测试加减乘除功能; 3、通过单元测试代码,测试计算类对于各种参数的支持。
    三、计算模块
    封装加减乘除模块:
    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()); } }
    四、单元测试
    1、测试框架图

    2、首次测试结果,加减乘除皆可执行:
    3、将除法模块中,分母改为0,则测试报错:
    
    
    4、测试超出范围的数相加:
    五、利用clover测试代码覆盖率
    六、小结
       个人:通过本次实验,我学会了如何利用JUnit进行代码模块的测试,刚开始并不懂这个有什么用,也不知道怎么测试,在队友的帮助下才掌握了方法,同时明白了这种测试的好处,它可以方便快速的找出代码中出错的地方并加以改正。在测试代码覆盖率方面也摸索了好久,有许多可以进行测试的插件,通过讨论我们选择了利用CLOVER,开始一直找不到下载的地方,后来通过百度直接在ECLIPSE的中HELP中安装成功。遗憾的是在测试最后,还是无法解决超出范围相加,导致结果溢出,却并不报错的问题。
        团队:我是个有点拖延症的人,一直都觉得还有时间就一直懒,多亏队友的一直催促提醒,我们才能按时完成。因为两人水平差不多,所以一直都是一起面对问题共同讨论解决的。就像在覆盖率插件的选择上,我们一起讨论比较选择了CLOVER,因为觉得它比较方便好用。我从队友身上学习到了以后应该克服拖延症的问题。同时也为她提了小意见就是写代码要细心一些,多注意细节方面写完整。
       回顾体会:

    ①良好的设计:结构化模块化编程中这对于管理、修改和扩展非常重要。最初设计时就应有模块化的思想,相互之间的联系尽量少,分层设计,这样容易修改和拓展,否则后续会导致一系列的问题,致使修改起来很苦恼。
    ②编码规范:每个人都有自己的编码风格,但一定要在遵守最基本的编码规则的基础上进行,否则会导致团队间无法协作,别人看不懂你的代码。
    ③必要的注释:对于关键代码及方法的注释非常重要,这能使别人快速方便的看懂你飞代码,方便交流节约时间。
    七、PSP

    PSP2.1

    Personal Software Process Stages

    Time (%) Senior Student(/hour)

    Time (%)(/hour)

    Planning

    计划

    5

    6

    · Estimate

    估计这个任务需要多少时间

    5

    6

    Development

    开发

    · Analysis

    需求分析 (包括学习新技术)                

    0.5

    0.3

    · Design Spec

    生成设计文档

    0

    0

    · Design Review

    设计复审

    0

    0

    · Coding Standard

    代码规范

    0.2

    0.3

    · Design

    具体设计

    0

    0

    · Coding

    具体编码

    0.5

    0.5

    · Code Review

    代码复审

    0.5

    0.6

    · Test

    测试(自我测试,修改代码,提交修改)

    2

    4

    Reporting

    报告

    4

    3

    ·

    测试报告

    ·

    计算工作量

    ·

    并提出过程改进计划

    八、协作照片
    
    
    ===============================================【晴昼秋岚,皆入我襟怀。 只岁暮天寒 ,独对江清月白。 谢此际春风,待我慷慨。 回眸处,一川青黛。 你随缱绻烟霞而来。】================================================
  • 相关阅读:
    分享一些优化博客的心得
    HTTP相关整理(上)
    正则&highlight高亮实现(干货)
    通过一个demo了解Redux
    升级ChinaCock10.3.3激情版3注意事项
    解决uniDAC超时问题:已超过了锁请求超时时段。
    kbmMWSmartBind实现ListView绑定数据集进阶篇(一)
    通过输出日志到文件来检查app闪退原因
    VertScrollBox不能滑动
    使用kbmMW SmartBinding经验几则
  • 原文地址:https://www.cnblogs.com/cholin/p/6639512.html
Copyright © 2020-2023  润新知