实验二 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.使代码更容易维护。
原文地址:https://www.cnblogs.com/July0207/p/4481477.html