成员: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 |