集美大学软件测试课程实验报告
课程名称:软件测试 指导教师:曾华朴
班级:软件1371
实验成绩:
姓名:张荣鹏 罗艺达 郑英才 周文彬 林佳东
实验项目名称:单元测试Junit 学号:[1**********]1 上机实践日期:2014.10.11
一、 实验项目
简易计算器单元测试Junit 二、 实验目的
掌握面向对象的设计及相应单元测试工具的应用
三、 实验要求
独立完成简易计算器设计,完成单元测试,编写测试报告
四、 实验内容
用java 语言编写一个计算器类,求实现加、减、乘、除、求平方根、求绝对值、
求倒数1/x,方法,并用junit 进行对象类的单元测试。参阅帮助文档。(说明,设计求除法、求倒数的方法,可在方法中不检测x 是否为0, 测试用例用y/0去测试、求平方根可不检测x>0,用负数测试)
(1)DOS 环境下,必须首先下载并安装JUnit 。JUnit 的最新版本可以在JUnit 的网站 www.junit.org免费下载。该软件包很小(约400KB ),但其中包括了源代码和文档。要安装此程序,应首先对该软件包进行解压缩(junitxxx.zip )。它将创建一个目录(junitxxx ),在此目录下有文档(在doc 目录中)、框架的应用编程接口(API )文档(在javadoc 目录中)、运行程序的库文件(junit.jar )以及示例测试实例(在junit 目录中),如果在Windows ,输入以下命令行 set CLASSPATH=.;junit.jar javac *.java
这些命令行对CLASSPATH 进行设置,使其包含当前目录中的类和junit.jar 库,并编译Java 源文件。 要在终端上运行该测试,输入以下命令行: java junit.textui.TestRunner IsoDateTest 此命令行将运行该测试,并在控制台上显示测试结果。
JUnit 还提供了利用AWT (抽象窗口工具包)或Swing 运行测试的图形界面。为了利用此图形界面运行测试,在终端上输入以下命令行:
java junit.awtui.TestRunner IsoDateTest
或者使用Swing 界面: java junit.swingui.TestRunner IsoDateTest
(2)NETBEAN/MyEclipse集成环境下,对简易计算器程序执行单元测试 附件:Junit 相关参考资料,注意junit3和4有一定差别,
五、 实验步骤 1. 使用swing 界面
2. 使用awt 界面
3. 直接命令编译
二、
首先新建一个项目叫JUnit_Test,我们编写一个Calculator 类,这是一个能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。
建立一个cn.jmu 包:
建立一个Calculator 类:
把代码输进类中:
package cn.jmu;
public class Calculator {
private static int result ; // 静态变量,用于存储运行结果 public void add(int n) { result = result + n; }
public void substract(int n) {
result = result - 1; //Bug: 正确的应该是 result =result-n }
public void multiply(int n) {
result =result *n;
}
public void divide(int n) { result = result / n;
}
}
public void square(int n) { result = n * n; }
public void squareRoot(int n) { result = (int ) Math.sqrt (n); }
public void clear() { // 将结果清零 result = 0; }
public void reciprocal(int n) {
} }
public int getResult() { return result ; }
result =Math.abs (n); result =1/n;
public void absolute(int n) {
第二步,将JUnit4单元测试包引入这个项目:在该项目上点右键,点“属性”,在弹出的属性窗口中,首先在左边选择“Java Build Path”,然后到右上选择“Libraries ”标签,之后在最右边点击“Add Library„”按钮,如下图所示:
然后在新弹出的对话框中选择JUnit4并点击确定,如上图所示,JUnit4软件包就被包含进我们这个项目了。
第三步,生成JUnit 测试框架:在Eclipse 的Package Explorer中用右键点击该类弹出菜单,在弹出的对话框中,进行相应的选择加、减、乘、除,之后系统会自动生成一个新类CalculatorTest ,里面包含一些空的测试用例。只需要将这些测试用例稍作修改即可使用。完整的CalculatorTest 代码如下:
package cn.jmu;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
public class CalculatorTest {
private static Calculator calculator = new Calculator();
} @Test public void testSubstract() { calculator.add(8); calculator.substract(2); assertEquals(6, calculator.getResult()); } @Test public void testAdd() { calculator.add(3); calculator.add(4); assertEquals(7, calculator.getResult()); @After public void tearDown() throws Exception { } @Before public void setUp() throws Exception { } calculator.clear(); @AfterClass public static void tearDownAfterClass() throws Exception { } @BeforeClass public static void setUpBeforeClass() throws Exception { }
} @Test public void testMultiply() { } @Test public void testDivide() { } @Test public void testSquare() { } @Test public void testSquareRoot() { } @Test public void testReciprocal() { } @Test public void testAbsolute() { } calculator.absolute(-7); assertEquals(7, calculator.getResult()); calculator.reciprocal(5); assertEquals(0,calculator.getResult()); calculator.squareRoot(100); assertEquals(10,calculator.getResult()); calculator.square(-2); assertEquals(4,calculator.getResult()); calculator.add(6); calculator.divide(3); assertEquals(2, calculator.getResult()); calculator.add(4); calculator.multiply(5); assertEquals(20, calculator.getResult());
运行结果如下:
将除法进行修改:
将减法的bug 进行修改 public void substract(int n) {
result = result - 1; //Bug: 正确的应该是 result =result-n
集美大学软件测试课程实验报告
课程名称:软件测试 指导教师:曾华朴
班级:软件1371
实验成绩:
姓名:张荣鹏 罗艺达 郑英才 周文彬 林佳东
实验项目名称:单元测试Junit 学号:[1**********]1 上机实践日期:2014.10.11
一、 实验项目
简易计算器单元测试Junit 二、 实验目的
掌握面向对象的设计及相应单元测试工具的应用
三、 实验要求
独立完成简易计算器设计,完成单元测试,编写测试报告
四、 实验内容
用java 语言编写一个计算器类,求实现加、减、乘、除、求平方根、求绝对值、
求倒数1/x,方法,并用junit 进行对象类的单元测试。参阅帮助文档。(说明,设计求除法、求倒数的方法,可在方法中不检测x 是否为0, 测试用例用y/0去测试、求平方根可不检测x>0,用负数测试)
(1)DOS 环境下,必须首先下载并安装JUnit 。JUnit 的最新版本可以在JUnit 的网站 www.junit.org免费下载。该软件包很小(约400KB ),但其中包括了源代码和文档。要安装此程序,应首先对该软件包进行解压缩(junitxxx.zip )。它将创建一个目录(junitxxx ),在此目录下有文档(在doc 目录中)、框架的应用编程接口(API )文档(在javadoc 目录中)、运行程序的库文件(junit.jar )以及示例测试实例(在junit 目录中),如果在Windows ,输入以下命令行 set CLASSPATH=.;junit.jar javac *.java
这些命令行对CLASSPATH 进行设置,使其包含当前目录中的类和junit.jar 库,并编译Java 源文件。 要在终端上运行该测试,输入以下命令行: java junit.textui.TestRunner IsoDateTest 此命令行将运行该测试,并在控制台上显示测试结果。
JUnit 还提供了利用AWT (抽象窗口工具包)或Swing 运行测试的图形界面。为了利用此图形界面运行测试,在终端上输入以下命令行:
java junit.awtui.TestRunner IsoDateTest
或者使用Swing 界面: java junit.swingui.TestRunner IsoDateTest
(2)NETBEAN/MyEclipse集成环境下,对简易计算器程序执行单元测试 附件:Junit 相关参考资料,注意junit3和4有一定差别,
五、 实验步骤 1. 使用swing 界面
2. 使用awt 界面
3. 直接命令编译
二、
首先新建一个项目叫JUnit_Test,我们编写一个Calculator 类,这是一个能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。
建立一个cn.jmu 包:
建立一个Calculator 类:
把代码输进类中:
package cn.jmu;
public class Calculator {
private static int result ; // 静态变量,用于存储运行结果 public void add(int n) { result = result + n; }
public void substract(int n) {
result = result - 1; //Bug: 正确的应该是 result =result-n }
public void multiply(int n) {
result =result *n;
}
public void divide(int n) { result = result / n;
}
}
public void square(int n) { result = n * n; }
public void squareRoot(int n) { result = (int ) Math.sqrt (n); }
public void clear() { // 将结果清零 result = 0; }
public void reciprocal(int n) {
} }
public int getResult() { return result ; }
result =Math.abs (n); result =1/n;
public void absolute(int n) {
第二步,将JUnit4单元测试包引入这个项目:在该项目上点右键,点“属性”,在弹出的属性窗口中,首先在左边选择“Java Build Path”,然后到右上选择“Libraries ”标签,之后在最右边点击“Add Library„”按钮,如下图所示:
然后在新弹出的对话框中选择JUnit4并点击确定,如上图所示,JUnit4软件包就被包含进我们这个项目了。
第三步,生成JUnit 测试框架:在Eclipse 的Package Explorer中用右键点击该类弹出菜单,在弹出的对话框中,进行相应的选择加、减、乘、除,之后系统会自动生成一个新类CalculatorTest ,里面包含一些空的测试用例。只需要将这些测试用例稍作修改即可使用。完整的CalculatorTest 代码如下:
package cn.jmu;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
public class CalculatorTest {
private static Calculator calculator = new Calculator();
} @Test public void testSubstract() { calculator.add(8); calculator.substract(2); assertEquals(6, calculator.getResult()); } @Test public void testAdd() { calculator.add(3); calculator.add(4); assertEquals(7, calculator.getResult()); @After public void tearDown() throws Exception { } @Before public void setUp() throws Exception { } calculator.clear(); @AfterClass public static void tearDownAfterClass() throws Exception { } @BeforeClass public static void setUpBeforeClass() throws Exception { }
} @Test public void testMultiply() { } @Test public void testDivide() { } @Test public void testSquare() { } @Test public void testSquareRoot() { } @Test public void testReciprocal() { } @Test public void testAbsolute() { } calculator.absolute(-7); assertEquals(7, calculator.getResult()); calculator.reciprocal(5); assertEquals(0,calculator.getResult()); calculator.squareRoot(100); assertEquals(10,calculator.getResult()); calculator.square(-2); assertEquals(4,calculator.getResult()); calculator.add(6); calculator.divide(3); assertEquals(2, calculator.getResult()); calculator.add(4); calculator.multiply(5); assertEquals(20, calculator.getResult());
运行结果如下:
将除法进行修改:
将减法的bug 进行修改 public void substract(int n) {
result = result - 1; //Bug: 正确的应该是 result =result-n