单元测试

目标

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

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

需求分析 (队友:201421123073 本人:201421123070)

1:小数,分数,括号,整数的四则混合运算的測試。

2:简单的整数的运算的測試。

3:有小数的运算的測試。

4:有分数的运算的測試。

5:有括号的运算的測試。

添加的功能

添加了小数点的运算的功能。實現小數,分數,整數,括號的四則混合運算。

测试框架

项目以java语言进行开发,使用junit4进行测试。

测试用例:

  1:整数的测试用例。


2:小数的测试用例。

3:分数的测试用例。

4:小括号的测试用例。

5:混合的测试用例。

6:优先级测试

7:计算表达式测试用例

8:检查错误式子的测试样例

9:整体的覆盖率

结论:代码覆盖率的插件特别好用,测试的方法,代码有覆盖到的用绿色标明,没有覆盖到的用红色表明,部分覆盖到用黄色标明。这样可以迅速的知道自己的测试样例是否符合标准,还不能覆盖到所有的代码。

队友的测试块

①:测试加法方法

测试用例:

测试结果:(有于代码较长,截图不方便,没有上图。后面会给出代码仓库地址,可以自行测试查看结果)可以看出这个类中的加法方法,代码都变绿色了,说明以上测试用例都覆盖了这个方法的代码。

②:测试减法方法
测试用例:

测试结果:同样可以看出在分数类中的减法方法代码变绿。

③:测试乘法方法
测试用例:

④:测试除法方法

(4)测试结果分析

Q&A

q1:代码覆盖率低。 a1:将大部分可能碰到的运算式列出来,提高了代码的覆盖率,但是只有25%的覆盖率,后来研究一下发现是整个包的覆盖率都算进去了,所以单独查看测试的类的覆盖将近100%。

q2:不会用junit4。 a2:看了别人的博客和以前java的课件进行学习。很感谢java老师,教了很多的东西。碰到问题就去解决,百度,别人的经验,都是很快的学习方式。

q3:commit了好多遍coding上都没有显示,所以重复提交了好几次 a3:coding的显示延迟了可能,在历史提交记录那里可以看到。应该是自己一开始的设置不对,就重新一步步的设置,问题完美解决。

q4:数组越界。 a4:有一种情况没有考虑到导致错误。

小结与感受

1:测试确实找到了一些程序上存在的BUG,比如数组越界;测试其实是一个测试思维的严密程度的事情,检测程序的思维是否严谨,其实蛮有趣的。

2:单元测试,给找bug节省了很多的时间,比如这一个单元测试完整无误了,如果出错了,那么就可以排除这个单元可能出错的可能性。

3:程序添加注释,有一定的规范。确实给此次测试减少了不少的时间。变量名通俗易懂,注释一看就知道此函数是干啥的。因为时间长了,自己写的代码真的看不懂,通过注释和规范,能够快速的回忆方法的作用和思维过程。

4:开始的计算方法是c写的,为了和整个项目统一,改成了java的,封装成了一个类。c属于比较底层的语言了,所以使用指针还是比较容易的出问题的,改了之后,代码的可读性高了很多,对于跟别人一起做项目来说,这真的方便很多。

5:新添加了计算小数的功能。这次添加这个功能,主要是这次将代码重新用java写了一遍,整个中缀表达式求值的方法又重温了一遍,就又添加了小数的计算方法。而且将注释的都标注了一遍。

在隔了一周之后再看之前的代码,体会到下面这些东西

(1) <u>良好的设计</u>。良好的设计,让自己的代码更加的健壮,也让别人更容易看懂。进行项目开发的时候,将各种功能模块化,减少代码与代码之间的嵌套关系,更有助于代码的调试和可读性。
(2) <u>编码规范</u>。每个人的编程习惯都不一样,但是进行同一个项目的开发,编码的规范真的很重要。因为你编写的代码也要拿给别人看,大家共同遵守同一个编码规范,节约了很多的开发时间。
(3) <u>必要的注释</u>。项目越大的时候,代码量越大,所以有一些必要的注释,更容易回忆起自己原来写的代码的功能是什么,怎么实现的。以后别人接手你的项目的时候也更容易了解你的整个项目的脉络。

项目链接

我的项目

结队照片

PSP(Personal Software Process)表格

PSP2.1 Personal Software Process Stages Time (%) Senior Student Time (%)
Planning 计划
· Estimate 估计这个任务需要多少时间 5h 6h
Development 开发
· Analysis 需求分析 (包括学习新技术) 0.5h 0.2h
· Design Spec 生成设计文档 0 0
· Design Review 设计复审 0 0
· Coding Standard 代码规范 0.2h 0.1h
· Design 具体设计
· Coding 具体编码 0.5h 0.5h
· Code Review 代码复审 0.5h 0.6h
· Test 测试(自我测试,修改代码,提交修改) 2h 2h
Reporting 报告 2h 3h
·Test Report 测试报告 0 0
· Size Measurement 计算工作量
·Postmortem & Process Improvement Plan 并提出过程改进计划
posted @ 2017-03-26 11:43  Smile_BCZ  阅读(385)  评论(2编辑  收藏  举报