Bootstrap

软件测试赛样题第 10 套

 题目1:

根据下列流程图编写程序实现相应处理,程序根据两个输入参数iRecordNum和IType计算x的值并返回。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足基路径覆盖测试,每条测试数据需要在测试类中编写一个测试方法。使用assertEquals断言判断输出结果期望结果值和实际返回值是否一致。

被测试代码:

public class TM13 {
    public int tm13(int iRecordNum,int iType){
        int x = 0;
        int y = 0;
        if (iRecordNum -- > 0){
            if (iType == 0){
                x = y+2;
                return x;
            }else {
                if (iType == 1){
                    x = y+10;
                }else{
                    x = y+20;
                }
                tm13(iRecordNum,iType);
            }
        }else {
            return x;
        }
        return x;
    }
}

测试代码:

import org.junit.Test;

import static junit.framework.TestCase.assertEquals;

public class TM13Test {
    private TM13 tm13 = new TM13();
    @Test
    public void Tes01(){
        assertEquals(0,tm13.tm13(0,0));
    }
    @Test
    public void Tes02(){
        assertEquals(2,tm13.tm13(10,0));
    }
    @Test
    public void Tes03(){
        assertEquals(10,tm13.tm13(10,1));
    }
    @Test
    public void Tes04(){
        assertEquals(20,tm13.tm13(10,2));
    }
}

 题目2:

根据输入的三条边值判断能组成何种三角形。三条边为变量a、b、c,范围为1≤边值≤10,不在范围内,提示“输入边值不在范围内”。不满足任意两边之和必须大于第三边,提示“输入边值不能组成三角形”。输入边值能组成三角形,只有2条边相同,显示“能组成等腰三角形”;三条边相等,显示“能组成等边三角形”;边值不满足特殊三角形显示“能组成普通三角形”。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足判定覆盖测试,每条测试数据需要在测试类中编写一个测试方法。使用assertEquals判断期望结果值和实际返回值是否一致。

被测试代码:

public class TM14 {
    public String tm14(int a,int b,int c){
        if (!(a>=1 && a<=10) || !(b>=1 && b<=10) || !(c>=1 && c<=10)){
            return "输入的边值不在范围内";
        }else if (!(a+b>c && a+c>b && c+b>a)){
            return "输入的边值不能组成三角形";
        }else if (a == b && b == c){
            return "能组成等边三角形";
        }else if ((a ==b) || (a == c) || (b == c)){
            return "能组成等腰三角形";
        }else {
            return "能组成普通三角形";
        }
    }
}

测试代码:

import org.junit.Test;

import static junit.framework.TestCase.assertEquals;

public class TM14Test {
    private TM14 tm14 = new TM14();
    @Test
    public void Test01(){
        assertEquals("输入的边值不在范围内",tm14.tm14(100,5,5));
    }
    @Test
    public void Test02(){
        assertEquals("输入的边值不能组成三角形",tm14.tm14(8,2,5));
    }
    @Test
    public void Test03(){
        assertEquals("能组成等腰三角形",tm14.tm14(6,6,7));
    }
    @Test
    public void Test04(){
        assertEquals("能组成等边三角形",tm14.tm14(6,6,6));
    }
    @Test
    public void Test05(){
        assertEquals("能组成普通三角形",tm14.tm14(3,4,5));
    }

}

 题目3:

邮箱注册需要填写邮箱地址和密码。其中要求邮箱格式“登录名@主机名.域名”,登录名为5个字母,主机名固定为下面2个163、126,域名为com或com.cn。密码为6个(含6)以上数字组成。填写正确则提示“信息正确”,否则根据实际情况提示“**不符合要求”(**为邮箱地址或密码)。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足语句覆盖测试,每条测试数据需要在测试类中编写一个测试方法。使用assertThat中equalTo断言判断输出文字期望结果值和实际返回值是否一致。

被测试代码:

public class TM12 {
    public String tm12(String email,String password){
        boolean emailCheck = email.matches("[a-zA-Z]{5}@(163|126)\\.com(\\.cn)?");
        boolean passwordCheck = password.matches("[0-9]{6,}");
        if (emailCheck && passwordCheck){
            return "信息正确";
        }else if (!emailCheck && passwordCheck){
            return "邮箱地址不符合要求";
        }else if (emailCheck && !passwordCheck){
            return "密码不符合要求";
        }else {
            return "邮箱地址和密码不符合要求";
        }
    }
}

测试代码:

import org.junit.Test;

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

public class TM12Test {
    private TM12 tm12 = new TM12();
    @Test
    public void Test01(){
        assertThat(tm12.tm12("[email protected]","1234567"),equalTo("信息正确"));
    }
    @Test
    public void Test02(){
        assertThat(tm12.tm12("[email protected]","1234576"),equalTo("邮箱地址不符合要求"));
    }
    @Test
    public void Test03(){
        assertThat(tm12.tm12("[email protected]","1237"),equalTo("密码不符合要求"));
    }
    @Test
    public void Test04(){
        assertThat(tm12.tm12("abc163.com","1237"),equalTo("邮箱地址和密码不符合要求"));
    }
}

 题目4:

输入小写的字符串。如字符串前缀为ab开头,则将前缀ab替换为ef并打印出替换后字符串,返回文字“替换前缀后的字符串为:”和替换后字符串值;如后缀为cd并且前缀不为ab,替换字符串中所有cd为gh并打印出替换后字符串,返回文字“替换cd后的字符串为:”和替换后字符串值;否则全部字母大写输出,返回文字“大写字母的字符串为:”和转换后的字符串值。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足条件覆盖测试,测试类使用参数化测试(@Parameters)完成测试。使用assertEquals判断期望结果值和实际返回值是否一致。

被测试代码:

public class TM4 {
    public String tm4(String str) {
        if (str.matches("ab.*")){
            return "替换前缀后的字符串为:".concat(str.replaceFirst("ab","ef"));
        }else if (str.matches(".*cd")){
            return "替换cd后的字符串为:".concat(str.substring(0,str.length()-2)+"gh");
        }else {
            return "大写字符的字符串是".concat(str.toUpperCase());
        }
    }
}

测试代码:

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 TM4Test {
   private TM4 tm4 = new TM4();
   private String str;
   private String result;

   public TM4Test(String str,String result){
       this.str = str;
       this.result = result;
   }
   @Parameterized.Parameters
   public static Collection parm(){
        return Arrays.asList(new Object[][]{
           {"abcdef","替换前缀后的字符串为:efcdef"},
           {"cdcdcd","替换cd后的字符串为:cdcdgh"},
           {"wrwr","大写字符的字符串是WRWR"}
       });
    }

    @Test
    public void Test01(){
        assertEquals(result,tm4.tm4(str));
    }
}

;