• 结对编程2-单元检测


    *** 201421123027、**201421033023

    coding.net地址:http://git.oschina.net/lsrd/Test/tree/master

    a. 需求分析:

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

      a. 输入是有错误的,例如 “1 ++ 2”,

      b. 在数值范围是 -1000 .. 1000 的时候,传进去 “10000 + 32768”,

      c. 或者是 “ 248 / 0” 怎么办?

      d. 怎么告诉函数的调用者 “你错了”? 把返回的字符串定义为 “-1” 来表示?

      e. 那么如果真的计算结果是 “-1” 又怎么处理呢?

    b. 设计测试框架, 模拟测试数据:

        (1) 请给出计算模块的测试用例及运行结果

          加法测试用例:"3/4"+"1/2" 运行结果:"5/4"

          减法测试用例:"3/4"-"1/2" 运行结果:"1/2"

          乘法测试用例:"3/4"*"1/2" 运行结果:"3/8"

          除法测试用例:"3/4"/"1/2" 运行结果:"3/2"

          约分测试用例:77/88 运行结果:"7/8"

          负数计算测试用例:"-3/4"-"1/2" 运行结果:"5/4"

          输入错误运算符测试用例:"3/4"+-"1/2" 运行结果:"请输入正确运算符!"

          将输入整数转换为分数形式测试用例:"5" 运行结果:"5/1"

        (2) 描述测试过程中遇到的问题以及解决的方案。

      测试过程中对代码又有所修改,过了一个礼拜没看略显生疏。因为要进行单元测试所以要将方法拿出来单独做一个类,原本代码就把算法单独做了一个类,然后再界面类进行调用。虽然已经将算法单独一个类,但是方法有点多,很乱。比如在算法实现方面,传参包涵三个分数1、分数2及运算符号,通过传入运算符号的类型自动选择算法类型进行运算,将算法封装了,还因为有一个将分数化简的功能,将参数划分为分子分母进行运算,都有关联,所以没办法将加减乘除分开成单独函数,不然整个核心算法全乱套了。所以进行单元检测一个compute(String,String,String)方法包涵加减乘除,还检测了f(),SetNumeratorAndDenominator()等方法。在进行测试过程中遇到了许多问题,首先是对 assertEquals(a,b)方法的使用不当,对传入参数的疑惑,整型还是字符串型。通过查文档了解其方法。然后传参检测compute()方法,直接运行错误,回去看代码才发现传入数值只能是分数,即便是整数也要将其转化为分数进行运算,之前编写 算法是将分数和整数的算法统一转化为分数计算,输出时如果是整数再将其转化回来,所以测试时输入只能输入分数,然后额外将整数转化为分数的方法单独成一个方法写成并进行测试。测试算法时由于只能识别四种运算符——"+-*/"。所以保证逻辑完整,在输入错误运算符是将进行报错,输出"请输入正确运算符!"。在本次结对编程的过程中,多次出现问题,在与结伴伙伴商讨下都解决了,并做了不少的完善工作。

        (3) 请展示上面描述的单元测试的每个环节。

    c. 小结与感受:

    由于之前编程时想法太奇葩,很多功能方法联系太紧密了,所以要将其拆分成单独类或函数难度有点大,都可以等于重新编辑了。还是一开始对模块化,方法的独立性的思想不足,导致代码太乱,不好进一步修改。

    评价下伙伴:

    先来一片面包:这次编程很积极,多次找我开始单元检测,由于我有事拖了很久,很友爱的迎合了我的时间,主动找我协商问题,并在编程时给予大量建议。

    在把肉放上:做事太急于求成,不沉稳。

    再来一片面包:静下心来好好做,不急。淡定。

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

      1) 良好的设计

      挺满意之前的设计,都按照了功能去实现了。

      2) 编码规范

       规范性比较差,由于还只是两个人合作,所以代码的编码规范还是两个人能看懂就草草带过,参数的命名也很随意,还要联系上下文代码才能理解。还是需要好好规范一下。

      3) 必要的注释

      大致的注释都有,各个函数的用处开头都有注释,这点还是做的不错的。

    e.编程时图片

    f.psp

    PSP2.1

    Personal Software Process Stages Time (%) Senior Student Time (%)
    Planning 计划 1 1
    · Estimate 估计这个任务需要多少时间 3 2
    Development 开发 4 5
    · Analysis 需求分析 (包括学习新技术)                 1 2
    · Design Spec 生成设计文档 0 1
    · Design Review 设计复审 2 1
    · Coding Standard 代码规范 1 1
    · Design 具体设计 3 1
    · Coding 具体编码 2 4
    · Code Review 代码复审 1 2
    · Test 测试(自我测试,修改代码,提交修改) 2 3
    Reporting 报告 1 1
    · 测试报告 1 1
    · 计算工作量 2 2
    · 并提出过程改进计划 3 2
  • 相关阅读:
    2017.12.16 扫雷小游戏未完成
    2017.12.15 计算机算法分析与设计 枚举
    2017.12.14 Java实现-----图书管理系统
    2017.12.13 Java中是怎样通过类名,创建一个这个类的数组
    2017.12.12 基于类的面向对象和基于原型的面向对象方式比较
    2017.12.11 String 类中常用的方法
    2017.12.10 Java写一个杨辉三角(二维数组的应用)
    2017.12.9 Java中的排序---冒泡排序、快速排序、选择排序
    spring boot compiler 版本实践
    spring boot 首次请求Controller慢
  • 原文地址:https://www.cnblogs.com/lsrd/p/6629321.html
Copyright © 2020-2023  润新知