软件测试赛样题第 8 套

 题目1:

根据下列流程图编写程序实现相应处理,执行j=10*x-y返回文字“j1=:”和计算值,执行j=(x-y)*(10⁵%7)返回文字“j2=:”和计算值,执行j=y*log(x+10)返回文字“j3=:”和计算值。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足判定覆盖测试,每条测试数据需要在测试类中编写一个测试方法。使用assertThat中startsWith断言判断输出文字结果开头期望结果值和实际返回值是否一致。

被测试代码:

import java.text.MessageFormat;

public class TM10 {
    public String tm10(int x, int y) {
        double j;
        if (x > 60 && y < 35) {
            j = 10 * x - y;
            return MessageFormat.format("j1={0}",j);
        } else {
            if (x == 25 && y > 50) {
                j =y*Math.log(x+10);
                return MessageFormat.format("j3={0}",j);
            }else {
                j = (x -y) * (Math.pow(10,5)%7);
                return MessageFormat.format("j2={0}",j);
            }
        }
    }
}

测试代码:

import org.junit.Test;

import static org.hamcrest.CoreMatchers.startsWith;
import static org.hamcrest.MatcherAssert.assertThat;

public class TM10Test {
    private TM10 tm10 = new TM10();
    @Test
    public void Test01(){
        assertThat(tm10.tm10(100,20),startsWith("j1=980"));
    }
    @Test
    public void Test02(){
        assertThat(tm10.tm10(25,20),startsWith("j2=25"));
    }
    @Test
    public void Test03(){
        assertThat(tm10.tm10(25,100),startsWith("j3=355"));
    }
}

 题目2:

根据下列流程图编写程序实现相应分析处理并显示结果。返回结果“a=x:”(x为2、3或4);其中变量x、y均须为整型。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足语句覆盖测试,每条测试数据需要在测试类中编写一个测试方法。使用assertThat中equalTo断言判断期望结果值和实际返回值是否一致。

被测试代码:

public class TM1 {
    public String tm1(int x,int y){
        int a = 0;
        if ( x>= 80 && y>60){
            if (!(x >=90 || y>= 90)){
                a = 2;
            }
        }else if (x <= 70 || y<= 70){
            a= 3;
        }else {
            a = 4;
        }
        return MessageFormat.format("a={0}",a);
    }
}

测试代码:

import org.hamcrest.CoreMatchers;
import org.junit.Test;

import static org.hamcrest.MatcherAssert.assertThat;

public class TM1Test {
    private TM1 tm1 = new  TM1();

    @Test
    public void Test01(){
        assertThat(tm1.tm1(80,80), CoreMatchers.equalTo("a=2"));
    }
    @Test
    public void Test02(){
        assertThat(tm1.tm1(70,70), CoreMatchers.equalTo("a=3"));
    }
    @Test
    public void Test03(){
        assertThat(tm1.tm1(75,75), CoreMatchers.equalTo("a=4"));
    }
}

 题目3:

填写快递单时通常需要确定接收人的姓名、手机号和地址。其中要求手机号是 11 位数字字符,地址为字母开头的 10个(含10)以内字母或字母数字共同组成。填写正确则提示“OK”,否则根据实际情况提示“**不符合要求”(**为手机号或地址),退出。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足判定覆盖测试,每条测试数据需要在测试类中编写一个测试方法。使用assertThat中equalTo断言判断输出文字期望结果值和实际返回值是否一致。

被测试代码:

public class TM3 {
    public String tm3(String phone, String address) {
        boolean phoneCheck = phone.matches("[0-9]{11}");
        boolean addressCheck = address.matches("^[a-zA-Z][a-zA-Z0-9]{9}");
        if (phoneCheck && addressCheck){
            return "OK";
        }else if (!phoneCheck && addressCheck){
            return "手机号不符合要求";
        }else if (phoneCheck && !addressCheck){
            return "地址不符合要求";
        }else {
            return "手机号和地址不符合要求";
        }
    }
}

测试代码:

import org.junit.Test;

import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.MatcherAssert.assertThat;

public class TM3Test {
    private TM3 tm3 = new TM3();

    @Test
    public void Test01(){
        assertThat(tm3.tm3("13055544446","T123456789"),equalTo("OK"));
    }
    @Test
    public void Test02(){
        assertThat(tm3.tm3("1305554444","T123456789"),equalTo("手机号不符合要求"));
    }
    @Test
    public void Test03(){
        assertThat(tm3.tm3("13055544446","T12345678"),equalTo("地址不符合要求"));
    }
    @Test
    public void Test04(){
        assertThat(tm3.tm3("1305554444","T12345679"),equalTo("手机号和地址不符合要求"));
    }
}

 题目4:

根据下列流程图编写程序实现相应分析处理并显示结果。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足语句覆盖测试,测试类使用参数化测试(@Parameters)完成测试。使用assertEquals判断输入数据测试方法期望结果值和实际返回值是否一致。

被测试代码:

public class TM8 {
    public String tm8(String username,String password){
        if (username == null && password == null){
            return "用户名或密码不能为空";
        } else if (username.equals("admin") && password.equals("123")) {
            return "登录成功";
        } else if (!username.equals("admin") && password.equals("123")) {
            return "请输入正确的用户名";
        }else if (username.equals("admin") && !password.equals("123")) {
            return "请输入正确的密码";
        }else {
            return "请输入正确的用户名和密码";
        }
    }
}

测试代码:

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;

import java.util.Arrays;
import java.util.Collection;

import static junit.framework.TestCase.assertEquals;

@RunWith(Parameterized.class)
public class TM8Test {
    private TM8 tm8 = new TM8();
    private String username;
    private String password;
    private String result;
    public TM8Test(String username,String password,String result){
        this.username = username;
        this.password = password;
        this.result = result;
    }

    @Parameterized.Parameters
    public static Collection param(){
        return Arrays.asList(new Object[][] {
                {null,null,"用户名或密码不能为空"},
                {"admin","123","登录成功"},
                {"admi","123","请输入正确的用户名"},
                {"admin","1234","请输入正确的密码"},
                {"adn","125","请输入正确的用户名和密码"},
        });
    }

    @Test
    public void Test01(){
        assertEquals(tm8.tm8(username,password),result);
    }
}

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值