结对编程二--四则运算单元测试
成员:201421123021 吕志哲
201421123024 许明涛
详细代码:https://git.coding.net/lz201421/NO.-3.git
a、需求分析
把计算模块提取出来,单独创建一个类。针对提取出来的计算类的接口函数做单元测试。
进行加减乘除的功能测试,显示功能编写是否正确。
b. 设计测试框架, 模拟测试数据
加法测试:
using System; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace TestProject2 { [TestClass] public class add { public int addtest2(int p,int q) { int z; z = p + q; return z; } public string addtest3(int a,int b,int c,int d) { int m, n; m=a*c; n=b*c+a*d; string l = n + "/" + m; return l; } [TestMethod] public void TestMethod1() { var real= addtest2(2,4); var answer = 6; Assert.IsTrue(real == answer); var real1 = addtest3(2,1,3,1); var answer1 = "5/6"; Assert.IsTrue(real1 == answer1); } } }
结果 :
乘法测试:
using System; using System.Text; using System.Collections.Generic; using System.Linq; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace TestProject2 { [TestClass] public class chengfa { public int chengfatest2(int p, int q
{ int z; z = p * q; return z; } public string chengfatest3(int a, int b, int c, int d) { int m, n; m = a * c; n =b*d; string l = n + "/" + m; return l; } [TestMethod] public void TestMethod1() { var real =chengfatest2(2, 4); var answer =8; Assert.IsTrue(real == answer); var real1 = chengfatest3(2, 1, 3, 1); var answer1 = "1/6"; Assert.IsTrue(real1 == answer1); } } } 其他运算代码大致相同,可查看coding详细代码。
全部测试通过结果:
具体代码详见地址如开头给出
c. 小结与感受
感受:刚看到这个题目整个人都懵了,可以说几乎不知道怎么做,单独创建一个模块我是懂的,但之前我是根本没接触过单元测试这种东西的,去网上查询相关资料和例子也是完全看不懂,通过其他人的点拨才有了点思绪。
汉堡式评价
先来一片面包:我们两个都是从没做过单元测试的,所以刚开始大部分时间是一点实际的成果也没有,只能多多浏览网上的资料。
再把肉放上:我的队友理解力比我好,所以在实际编程测试中往往能先我一步解决问题,这次的实验他付出的可是比我多,但他比较容易走便捷的方法,做出来的程序也不是很完善。
再来一片面包:两个人的合作配合好,相互帮助,相互促进,共同完成任务。
d. 在隔了一周之后再看之前的代码,是否更能体会到下面这些东西
- (1) 良好的设计:逻辑清晰优质,模块化设计的确为设计者提供清晰的思路。
- (2) 编码规范:代码规范,变量含义易懂很让人舒服,也才有看下去的欲望。
- (3) 必要的注释:注释能帮人理解代码语句的编写目的,注释越多越通俗会越好。
结对照片:
PSP
Personal Software Process Stages |
Estimated Time(min) |
Actual Time (min) |
计划 |
15 |
20 |
·任务估计 |
10 |
11 |
开发 |
120 |
200 |
·需求分析 (包括学习新技术) |
30 |
45 |
·生成设计文档 |
15 |
15 |
·设计复审 |
10 |
11 |
·代码规范 |
10 |
13 |
·具体设计 |
10 |
8 |
·具体编码 |
50 |
69 |
·代码复审 |
15 |
15 |
·测试(自我测试,修改代码,提交修改) |
20 |
25 |
报告 |
30 |
35 |
·测试报告 |
20 |
22 |
·计算工作量 |
10 |
9 |