编程人员:林晨昕(201421123033)、林莹(201421123035)
coding地址:https://git.coding.net/Belong033/java-third.git
一、需求分析
1、把计算模块提取出来,单独创建一个类。
2、针对提取出来的计算类的接口函数做单元测试:
(1)、通过单元测试代码,测试加法是否能正确工作;
(2)、通过单元测试代码,测试加减乘除功能;
(3)、通过单元测试代码,测试计算类对于各种参数的支持:
a. 输入是有错误的,例如 “1 ++ 2”,
b. 在数值范围是 -1000 .. 1000 的时候,传进去 “10000 + 32768”,
c. 或者是 “ 248 / 0” 怎么办?
d. 怎么告诉函数的调用者 “你错了”? 把返回的字符串定义为 “-1” 来表示?
e. 那么如果真的计算结果是 “-1” 又怎么处理呢?
二、设计测试框架, 模拟测试数据
(1)测试加减乘除;
(2)、测试计算类对于各种参数的支持:
a. 输入是有错误的,例如 “1 ++ 2”
b. 在数值范围是 -1000 .. 1000 的时候,传进去 “10000 + 32768”,
c.
或者是 “ 248 / 0” 怎么办?
d. 怎么告诉函数的调用者 “你错了”? 把返回的字符串定义为 “-1” 来表示?
在代码里写了个异常抛出
e.代码覆盖率:
三、小结与感受
(1)我们刚开始设计计算模块时,将整数和分数的计算模块合并时,只考虑到简单的分母不为零的情况,进过后期的测试后发现除法出问题了,进而解决;
(2)”在数值范围是 -1000 .. 1000 的时候,传进去 “10000 + 32768”,”考虑到是数组越界和输入错误的情况,经过讨论决定写成异常抛出,经测试后成功;
(3)代码的模块化和规范化还是非常重要的,整个代码都比之前的清晰了非常多,一目了然,比起之前凌乱的状况好多了;
(4)测试这一块是由我来做的,当我测试出问题时,我和我的搭档先分析问题是什么,进而思考解决方法,由于之前合作过一次,所以这次合作起来更为融洽。而且两个人可以互相取长补短,一起讨论,学习对方身上的优点。我还是很喜欢这种结对的合作方式的。
四、在隔了一周之后再看之前的代码,是否更能体会到下面这些东西
(1) 良好的设计
良好的设计还是非常重要的,宏观上有着很清晰的划分作用,使人一目了然。刚开始编程的时候我们把计算的功能放整个程序里,以至于程序冗长而不直观,而且进行单元测试的时候有点困难,于是我们只能对整个代码重新设计,再编写。所以说,良好的设计是非常重要的,模块功能要清晰。这样阅读代码也比较方便。
(2) 编码规范
编码规范这块倒是没什么太大的问题。以后还是会继续加强的。
(3) 必要的注释
由于我们在之前的代码里都会加上必要的注释,这样做不仅方便别人阅读我们的代码。也方便我们重新熟悉自己的代码。
五、PSP
最后附上我们两合作的照片一张: