软件测试 实验(二) 测试用例的设计

一、实验目的:

通过实验,理解测试用例设计含义,掌握黑盒测试技术。

二、实验要求和内容:

年、月、日分别以Y、M和D来存储相应的值,现在要测试NextData(Y,M,D)函数,用判定表和正交试验法来设计相应的测试用例。

三、实验步骤

1、理解实验内容。
2、采用判定表法设计测试用例,用word文档记录设计的测试用例。
3、采用正交试验法设计测试用例,用word文档记录设计的测试用例。
4、对两种测试方法进行比较,理解两种方法的优缺点,并了解两种方法的适用条件。
5、编写应用程序,实现NextData功能。
6、根据设计的测试用例,创建测试类,进行测试。

四、对实验进行总结。

测试数据设计分析:

不合法: 年份负数,月份负数,日期负数,月份>12,日期>该月日期,闰年二月大于29天
合法:一般合法,某月最后一天,12月最后一天,闰年二月最后一天

代码:

文件结构:

软件测试文件结构

日期类
package day;

public class Day {
    private int Y;
    private int M;
    private int D;
    public int getY() {
        return Y;
    }
    public void setY(int y) {
        Y = y;
    }
    public int getM() {
        return M;
    }
    public void setM(int m) {
        M = m;
    }
    public int getD() {
        return D;
    }
    public void setD(int d) {
        D = d;
    }
    public Day(int y, int m, int d) {
        super();
        Y = y;
        M = m;
        D = d;
    }
    public Day() {
        super();
    }

}
被测试类代码-计算下一天
package code;

import day.Day;

public class GetNextDay {

    private int month[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};

    private boolean is_Leap(int n){
        if(n % 4 == 0 && n % 100 != 0 || n % 400 == 0) return true;
        return false;
    }
    private boolean is_Day(Day a){
        boolean flag = true;
        if(a.getY() <= 0 || a.getM() <= 0 || a.getD() <= 0 || a.getM() > 12){
            return false;
        }

        if(a.getM() == 2){
            if(is_Leap(a.getY()) && a.getD() > month[2]+1){
                flag = false;
            }
            if(!is_Leap(a.getY()) && a.getD() > month[2]){
            flag = false;
            }
        }
        else
        {
            if( a.getD() > month[a.getM()]){
                return false;
            }
        }
        return flag;
    }
    private boolean is_Last_Day(Day d){
        if(d.getM() != 2 && d.getD() == month[d.getM()]){
            return true;
        }
        if(d.getM() == 2){
            if(is_Leap(d.getY()) && d.getD() == month[d.getM()]+1){
                return true;
            }
            if(!is_Leap(d.getY()) && d.getD() == month[d.getM()]){
                return true;
            }
        }
        return false;
    }
    public Day getNextDay(Day d){
        Day nd = new Day(0,0,0);
        if(!is_Day(d)){
            System.out.println("your input is Wrongful!");
            return nd;
        }
        if(is_Last_Day(d)){
            if(d.getM() == 12){
                nd.setY(d.getY()+1);
                nd.setM(1);
                nd.setD(1);
            }else{
                nd.setY(d.getY());
                nd.setM(d.getM()+1);
                nd.setD(1);
            }
        }else{
            nd = d;
            nd.setD(d.getD()+1);
        }
        System.out.println(d.getY()+"年"+d.getM()+"月"+d.getD()+"日   NextDays is "+nd.getY()+"年"+nd.getM()+"月"+nd.getD()+"日");
        return nd;
    }
}
测试类代码
package text;
import static org.junit.Assert.*;
import java.util.Arrays;
import java.util.Collection;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

import code.GetNextDay;
import day.Day;

@RunWith(Parameterized.class)
public class GetNextDayTest {
    private GetNextDay gnd = new GetNextDay();
    private Day day;
    private Day exc;
    private int y,m,d,yy,mm,dd;

    public GetNextDayTest(int y, int m, int d, int yy, int mm, int dd) {
        super();
        this.y = y;
        this.m = m;
        this.d = d;
        this.yy = yy;
        this.mm = mm;
        this.dd = dd;
    }

    @Parameters
    public static Collection<Object[]> data(){
        //
        Object[][] data = new Object[][]{
            {-1997,1,1,0,0,0},
            {1997,-1,1,0,0,0},
            {1997,1,-1,0,0,0},
            {1997,13,1,0,0,0},
            {1997,1,32,0,0,0},
            {1997,1,1,1997,1,2},
            {1997,3,31,1997,4,1},
            {1997,12,31,1998,1,1},
            {1997,2,28,1997,3,1},
            {2008,2,29,2008,3,1},
        };
        return Arrays.asList(data);
    }
    @Before
    public void setUp() throws Exception{
        day = new Day(this.y,this.m,this.d);
        exc = new Day(this.yy,this.mm,this.dd);
    }
    @Test
    public void testGetNextDay() {

        Day res = gnd.getNextDay(day);
        //assertEquals(exc, res);
        assertEquals(exc.getD(), res.getD());
        assertEquals(exc.getM(), res.getM());
        assertEquals(exc.getY(), res.getY());

    }
}
测试结果

测试结果

猜你喜欢

转载自blog.csdn.net/shensiback/article/details/80334887