• 实验二 Java面向对象程序设计


    (一)单元测试

    (1) 三种代码

    伪代码

    产品代码

    测试代码

    一般测试:

     

    边界测试:

     

    测试出错情况

     

    改正代码:

    (2) TDD(Test Driven Devlopment, 测试驱动开发)

    TDD的一般步骤如下:

    明确当前要完成的功能,记录成一个测试列表

    快速完成编写针对此功能的测试用例

    测试代码编译不通过(没产品代码呢)

    编写产品代码

    测试通过

    对代码进行重构,并保证测试通过(重构下次实验练习)

    循环完成所有功能的开发

    TDD的编码节奏是:

    增加测试代码,JUnit出现红条

    修改产品代码,JUnit出现绿条,任务完成

     

    自行测试:

     

    (二)面向对象三要素

    (1)抽象

    (2)封装、继承与多态

     

    继承与多态的实现:

     

    (四)练习

    1使用TDD的方式设计关实现复数类Complex。

    伪代码

    产品代码

    class complex
    {
    double re,im;
    complex()
    {
    this.re=0;
    this.im=0;
    }
    complex(double re)
    {
    this.re=re;
    this.im=0;
    }
    complex(double re,double im)
    {
    this.re=re;
    this.im=im;
    }
    complex add(complex p1,complex p2)
    {
    complex p=new complex(p1.re+p2.re,p1.im+p2.im);
    return p;
    }
    complex minus(complex p1,complex p2)
    {
    complex p=new complex(p1.re-p2.re,p1.im-p2.im);
    return p;
    }
    void print()
    {
    System.out.println("复数的值为:");
    if(this.im!=0)
    System.out.println(this.re+"+"+this.im+"i");
    else
    System.out.println(this.re);
    }
    }
    public class Song
    {
    public static void main(String[] args)
    {
    complex c=new complex();
    complex c1=new complex(2,7);
    complex c2=new complex(5,2);
    c1.print();
    c2.print();
    System.out.println("这两个复数的和为:");
    System.out.println((c.add(c1,c2).re+"+"+
    c.add(c1, c2).im+"i").toString());

    System.out.println("这两个复数的差为:");
    System.out.println((c.minus(c1,c2).re+"+"+
    c.minus(c1, c2).im+"i").toString());
    }
    }

    测试结果

    3.统计PSP(Personal Software Process)时间

    步骤 耗时
    需求分析 5%
    设计 20%
    代码实现 40%
    测试 30%
    分析总结 5%

    四:总结

    1.实验遇到的问题

    错误的原因是公用类型必须在自己的文件中定义,按照eclipse提示重命名之后按Enter键进行重构

    2.实验总结:这次实验主要内容是代码面向对象三要素的应用,以及代码的设计思想以及测试方法,通过这周和上周的PSP时间比例可以看出,设计和测试的比重增加,而代码实现的时间比重下降,这更接近于日常生活中的软件开发的基本程序,而不是书本上给定题目进行的练习。通过之前基本的练习已经初步掌握了Java程序设计的基本语句,今后将更加注重程序 设计思维的练习

    3.单元测试的好处:

    1.帮助开发人员编写代码,提升质量、减少bug。
    2.提升反馈速度,减少重复工作,提高开发效率。
    3.保证最后的代码修改不会破坏之前代码的功能。
    4.使代码更容易维护。
  • 相关阅读:
    基于redis实现可靠的分布式锁
    基于react实现无限分级菜单
    利用免费cdn加速webpack单页应用
    研究一下javascript的模块规范(CommonJs/AMD/CMD)
    基于ReactCSSTransitionGroup实现react-router过渡动画
    react + iscroll5 实现完美 下拉刷新,上拉加载
    如何在多线程leader-follower模式下正确的使用boost::asio。
    【深入浅出Linux网络编程】 “实践 -- TCP & UDP”
    【hbase0.96】基于hadoop搭建hbase的心得
    【hadoop2.2(yarn)】基于yarn成功执行分布式map-reduce,记录问题解决过程。
  • 原文地址:https://www.cnblogs.com/July0207/p/4481477.html
Copyright © 2020-2023  润新知