单元测试

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

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

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

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

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

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

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

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

添加的功能

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

测试框架

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

测试用例:
  1:整数的测试用例。

1110276-20170326112756315-1110668674.png
2:小数的测试用例。
1110276-20170326112815299-1316421948.png
3:分数的测试用例。
1110276-20170326112842424-727930789.png
4:小括号的测试用例。
1110276-20170326112725033-787729932.png
5:混合的测试用例。
1110276-20170326112740627-1398328403.png
6:优先级测试
1110276-20170326112939455-95895227.png
7:计算表达式测试用例
1110276-20170326113058690-934473529.png
8:检查错误式子的测试样例
1110276-20170329131716467-1446606203.png
9:整体的覆盖率
1110276-20170329134344811-270789874.png
1110276-20170326113144846-422682419.png

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

队友的测试块
①:测试加法方法

测试用例:
1110276-20170329133919311-1176988146.png

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

②:测试减法方法
测试用例:
1110276-20170329133927717-957357637.png

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

③:测试乘法方法
测试用例:
1110276-20170329133945967-1876041843.png
④:测试除法方法
1110276-20170329133953029-1885457095.png

(4)测试结果分析
1110276-20170329134032420-926584756.png

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>。项目越大的时候,代码量越大,所以有一些必要的注释,更容易回忆起自己原来写的代码的功能是什么,怎么实现的。以后别人接手你的项目的时候也更容易了解你的整个项目的脉络。

项目链接

我的项目

结队照片

1110276-20170326112312986-1461688272.jpg

PSP(Personal Software Process)表格

PSP2.1Personal Software Process StagesTime (%) Senior StudentTime (%)
Planning计划
· Estimate估计这个任务需要多少时间5h6h
Development开发
· Analysis需求分析 (包括学习新技术)0.5h0.2h
· Design Spec生成设计文档00
· Design Review设计复审00
· Coding Standard代码规范0.2h0.1h
· Design具体设计
· Coding具体编码0.5h0.5h
· Code Review代码复审0.5h0.6h
· Test测试(自我测试,修改代码,提交修改)2h2h
Reporting报告2h3h
·Test Report测试报告00
· Size Measurement计算工作量
·Postmortem & Process Improvement Plan并提出过程改进计划

转载于:https://www.cnblogs.com/Smile-BCZ/p/6622199.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值