• 单元测试


    目标

    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 并提出过程改进计划
  • 相关阅读:
    使用Team Foundation Server进行源代码管理(转)
    引用web service时,出现无法识别的配置节点 applicationSettings
    c#日期格式化
    MySQL的学习记录
    c# 水晶报表中处理TextObject
    七子之歌
    修改Metabase.xml文件提升IIS性能(网摘)
    asp.net中的pages元素
    crystal report Hyperlink 点击不能打开新的页面。
    当打开输入法时,javascript中onkeydown事件不能触发
  • 原文地址:https://www.cnblogs.com/Smile-BCZ/p/6622199.html
Copyright © 2020-2023  润新知