软件工程个人项目实验报告
一.实践目标:
1.Github基本源代码控制方法
2.利用Junit4进行程序模块的测试,回归测试
3.编码规范的考量
4.C/Java等基本程序设计语言的运用。 (考虑到有些同学的基础参差不齐)
二.实践题目
测试实现显示当前日期和时间的功能
源码的github链接:https://github.com/chudongrui/test
三、所设计的模块测试用例、测试结果截图
package ceshi;
import java.util.Calendar;
class Time {
private Calendar t;
private int y, m, d, hh, mm, ss;
Time (){
t=Calendar.getInstance();
y=t.get(t.YEAR);
m=t.get(t.MONTH)+1;
d=t.get(t.DATE);
hh=t.get(t.HOUR_OF_DAY);
mm=t.get(t.MINUTE);
ss=t.get(t.SECOND);
}
public String getDate() {
return y+" 年"+m+"月"+d+"日";
}
public String getTime() {
String s=hh+" 时"+mm+"分"+ss+"秒";
return s;
}
public static void main(String args[]){
Time t=new Time();
System.out.println("当前日期:"+t.getDate());
System.out.println("当前时间:"+t.getTime());
}
}
第一步,新建一个项目叫JUnit_Test,我们编写一个Time类,这是一个能够简单实现实现显示当前日期和时间的功能类,然后对这些功能进行单元测试。
第二步,将JUnit4单元测试包引入这个项目:在该项目上点右键,点“属性”,如图:
在弹出的属性窗口中,首先在左边选择“Java Build Path”,然后到右上选择“Libraries”标签,之后在最右边点击“Add Library…”按钮,如下图所示:
然后在新弹出的对话框中选择JUnit4并点击确定,如上图所示,JUnit4软件包就被包含进我们这个项目了。
第三步,生成JUnit测试框架:在Eclipse的Package Explorer中用右键点击该类弹出菜单,选择“New à JUnit Test Case”。如下图所示:
在弹出的对话框中,进行相应的选择,如下图所示:
点击“下一步”后,系统会自动列出你这个类中包含的方法,选择你要进行测试的方法。
之后系统会自动生成一个新类TimeTest,里面包含一些空的测试用例。你只需要将这些测试用例稍作修改即可使用。完整的TimeTest代码如下:
package ceshi;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
public class TimeTest {
@Before
public void setUp() throws Exception {
}
@Test
public void testTime() {
fail("Not yet implemented");
}
@Test
public void testGetDate() {
fail("Not yet implemented");
}
@Test
public void testGetTime() {
fail("Not yet implemented");
}
@Test
public void testMain() {
fail("Not yet implemented");
}
}
第四步,运行测试代码:按照上述代码修改完毕后,我们在TimeTest类上点右键,选择“Run As à JUnit Test”来运行我们的测试,如下图所示:
运行结果如下:
四、问题及解决方案、心得体会
总结:
一、实体类
一般先新建一个对象,初始化构造方法对应参数对象各一个。
1、构造方法测试
测试构造之后对应参数的正确性,测试getter/setter的准确性。进行失败测试,测试构造函数、getter/setter方法异常的抛出情况
注意:1)准确性测试要考虑全面
2)失败测试一般包括传递null,empty参数,不合法参数,侦测异常的抛出
3 )如果有继承关系,使用反射来测试是否继承成功
二、帮助类
测试帮助类中的方法是否能返回预期的结果
三、关键的功能类(一般项目中最复杂的算法要在这个类中实现)
1、首先是必不可少的初始化功能类的对象,对构造方法进行准确性,失败的测试。方法同上
2、对复杂函数的测试:关键在于测试数据的选择,要让每一个分支都能跑到。一般包括准确性测试和侦测异常的失败测试
体会:
这次是junit4测试实现显示当前日期和时间的功能,按照教程我进行了测试,但没有测试成功,由于编程基础太差也没能找出测试失败的原因,以后一定认真学习Java编程。如果有大神看到希望可以多多指教,非常感谢。