zoukankan      html  css  js  c++  java
  • 结对编程2——单元测试

    Deadline:##

    2017-3-29 22:00PM,以博客发表日期为准。

    评分基准:##

    • 按时交 - 有分,检查的项目包括后文的三个方面
      • 题目要求
      • 代码提交
      • 博文规范
    • 晚交 - 0分
    • 迟交两周以上 - 倒扣本次作业分数
    • 抄袭 - 倒扣本次作业分数

    题目描述:##

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

    1. 把计算模块提取出来,单独创建一个类。

    2. 针对提取出来的计算类的接口函数做单元测试。

    3. 参考助教的示例:

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

    单元测试###

    一旦我们分离出核心模块,就可以针对该核心模块一步一步开发并做好单元测试,什么是单元测试?请阅读并学习《构建之法》第二章关于单元测试,回归测试的内容。

    好了,你一定针对单元测试做了一番学习:

    总之,你找到了适合自己语言的一种可以进行单元测试的工具。

    那么,勤快的你已经迫不及待的想要自己上手来测一把:

    1. 通过单元测试代码,测试加法是否能正确工作;

    2. 通过单元测试代码,测试加减乘除功能。

    3. 通过单元测试代码,测试计算类对于各种参数的支持:

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

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

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

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

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

    4. [附加题]界面模块,测试模块和核心模块的松耦合。既然各组同学都写了高质量的各个模块,而且模块之间的关系是明确定义的,一致的,那么:

      • 小组A 的测试模块就可以测试小组B 的核心模块;
      • 小组C 的用户界面模块就可以和小组B 的核心模块结合起来,正常运行。对吧?
      • 那我们就让两个小组 (A,B) 在一起,测试一下下面的情况:
        • A的核心模块,加上B 的测试模块和用户界面模块
        • B的核心模块,加上A 的测试模块和用户界面模块
        • 两组同学分析合并之后出现了什么问题,为何会出现这样的问题?如何改进?
    5. 通过增量修改的方式,改进程序, 完成对各种错误情况的处理。

    题目要求:##

    1. 结对编程实现上述功能,同样的,在程序正式开发之前,请先预估下PSP每个环节的消耗时间(分钟),并在过程中统计实际耗时(分钟),最后提交PSP表格。依然注意,这个主要是给你们自己看的,不必造假数据。
    2. 继续两人结对协作,把编码规范、领航员和驾驶员角色互换做到位。
    3. 单元测试: 有单元测试保证,有代码覆盖率。

    代码提交:##

    要求必须增量式开发-用git命令提交到coding.net地址,coding上要能看到多次commit的记录,同时必须有两个人各自的commit记录。

    博文规范##

    1. 提交的博客(两个同学都要写)必须完整包含下面内容:

      a. 需求分析:测试上有哪些详细的需求?
      b. 设计测试框架, 模拟测试数据:

        (1) 请给出计算模块的测试用例及运行结果
        (2) 描述测试过程中遇到的问题以及解决的方案。
        (3) 请展示上面描述的单元测试的每个环节。

      c. 小结与感受:通过测试,是否有效发现了程序计算模块的问题,并给予改进?
      d. 在隔了一周之后再看之前的代码,是否更能体会到下面这些东西

        (1) 良好的设计
        (2) 编码规范
        (3) 必要的注释

    2. 在随笔开头,备注两个同学的学号。

    3. 提供项目开发的coding.net 地址。

    4. 描述结对的过程,提供非摆拍的两人在讨论、细化和编程时的结对照片。

    5. 提供此次结对作业的PSP。

    参考链接:##

    http://www.cnblogs.com/xinz/p/4421170.html

  • 相关阅读:
    Verilog 浮点数运算模块
    【MATLAB】设定坐标的轴的范围
    【MATLAB】画平行于坐标轴的曲线
    【Quartus警告】created implicit net for XXX.
    多普勒雷达探测原理
    高斯分布和均匀分布之间的映射关系
    反射设置当前窗体所有控件的Text
    IAR6.1的工程迁移到IAR6.5不能用的解决方法
    C语言实现通用链表初步(二)
    C语言实现通用链表初步(一)
  • 原文地址:https://www.cnblogs.com/happyzm/p/6558307.html
Copyright © 2011-2022 走看看