白盒测试题一

白盒测试题集一

文章目录

  • 白盒测试题集一
    • 第一题
    • 第二题
    • 第三题
    • 第四题
    • 第五题
    • 第六题
    • 第七题
    • 第八题
    • 第九题
    • 第十题
    • 第十一题
    • 第十二题

第一题

1.下列流程图中变量a、b、c、d均为非负整数,编写程序实现相应分析处理,并设计测试数据进行语句覆盖测试。要求a、b、c、d取最小可能值。

代码如下:

import java.util.*;
public class Ti1{
	private static int Y;
	public static void main(String[] args){
		int a,b,c,d;	
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入a,b,c,d以空格隔开:");
		a=sc.nextInt();
		b=sc.nextInt();
		c=sc.nextInt();
		d=sc.nextInt();
		if(a>0 && b>0 && c>0 && d>0){
			if((a>12 && b<13) && (c>4 || d<20)){
				compute_Y_One(a,b,c,d);
				System.out.println(Y);
			}else{
				compute_Y_Tow(a,b,c,d);
				System.out.println(Y);
			}
		}else{
			System.out.println("您输入的变量不为非负整数");
		}
		
	}
	public static void compute_Y_One(int a,int b,int c,int d){
		Y=3*a+10*b+5*d-c;
	}
	public static void compute_Y_Tow(int a,int b,int c,int d){
		Y=10*d-(a+b)*c/5;
	}
}

第二题

2.根据流程图编写程序实现相应分析处理,并设计测试数据进行语句覆盖测试。执行算式输出文字“算式一值:”和c的值,执行输出文字“算式二值:”和c的值;执行输出文字“算式三值:”和c的值。要求变量a、b均为非0的整数,且为正整数时取值尽可能小,为负整数时取值尽可能大。
代码如下:

import java.util.*;
import java.lang.*;
public class Ti2{
	private static double c;
	public static void main(String[] args){
		int a,b;
		Scanner sc=new Scanner(System.in);
		System.out.println("输入a和b用空格隔开:");
		a=sc.nextInt();
		b=sc.nextInt();
		if(a>0 && b>0){
			computeOne(a,b);
			System.out.println(c);
		}else if(a<0 && b<0){
			computeTow(a,b);
			System.out.println(c);
		}else{
			computeThere(a,b);
			System.out.println(c);
		}
	}
	public static void computeOne(int a,int b){
		c=Math.sin(a+b*10);
	}	
	public static void computeTow(int a,int b){
		c=Math.pow(a*b,3);
	}
	public static void computeThere(int a,int b){
		c=Math.pow(a-b,2);
	}
}

第三题

3.根据下列流程图编写程序实现相应处理,并设计测试数据进行判定覆盖。输入数据打印出“输入x值:”、“输入y值:”。

代码如下:

import java.util.*;
public class Ti3{
	private static double j;
	public static void main(String[] args){
		double x,y;
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入x和y的值用空格隔开:");
		x=sc.nextDouble();
		y=sc.nextDouble();
		System.out.println("输入x值:"+x+",输入y值:"+y);
		if(x>60 && y<35){
			computeOne(x,y);	
			System.out.println(j);
		}else if(x==25 && y>50){
			computeTow(x,y);
			System.out.println(j);
		}else{
			computeThere(x,y);
			System.out.println(j);
		}
	}
	public static void computeOne(double x, double y){
		j=10*x-y;
	}
	public static void computeTow(double x, double y){
		j=y*Math.log(x+10); 
	}
	public static void computeThere(double x, double y){
		j=(x-y)*(Math.pow(10,5)%7);
	}
}

第四题

4.进行系统注册时通常需要输入用户名和密码,其中用户名要求由8个字母字符组成、密码由6个(含6)以上数字字符组成。满足要求,则提示“注册成功”,否则根据实际情况提示“**不符合要求”(**为用户名或密码)。编写程序实现注册信息的输入,并设计测试数据进行语句覆盖测试。输入数据打印出“输入用户名:”、“输入密码:”。
代码如下:

import java.util.*;
public class Ti4{
	private static String regUser="^[a-zA-Z]{8}$";
	private static String regPassword="^[0-9]{6,}$";
	private static boolean bool;
	public static void main(String[] args){
		String user,password;
		Scanner sc=new Scanner(System.in);
		System.out.println("输入user:");
		user=sc.nextLine();
		System.out.println("输入password:");
		password=sc.nextLine();
		System.out.println("输入用户名:"+user+",输入密码:"+password);
		if(boolUser(user)){
			if(boolPassword(password)){
				System.out.println("注册成功");
			}else{
				System.out.println("密码不符合要求");
			}
		}else{
			System.out.println("账号不符合要求");
			if(!(boolPassword(password))){
				System.out.println("密码不符合要求");
			}
		}
	}
	public static boolean boolUser(String user){
		if(user.matches(regUser)){
			bool=true;
		}else{
			bool=false;
		}
		return bool;
	}
	public static boolean boolPassword(String password){
		if(password.matches(regPassword)){
			bool=true;
		}else{
			bool=false;
		}
		return bool;
	}
}

第五题

5.填写快递单时通常需要确定接收人的姓名、手机号和地址。其中要求手机号是11位数字字符,地址为字母开头的10个(含10)以内字母或字母数字共同组成。填写正确则提示“OK”,否则根据实际情况提示“**不符合要求”(**为手机号或地址),退出。编写程序实现此快递单信息的输入,并设计测试数据进行判定覆盖测试。输入数据打印出“输入手机号:”、“输入地址:”。
代码如下:

import java.util.*;
public class Ti5{
	private static String regPhone="^[0-9]{11}$";
	private static String regId="^[a-zA-z]{1}[a-zA-Z0-9]{0,9}$";
	private static boolean bool;
	public static void main(String[] args){
		String phone,id;
		Scanner sc=new Scanner(System.in);
		System.out.println("输入phone:");
		phone=sc.nextLine();
		System.out.println("输入id:");
		id=sc.nextLine();
		System.out.println("输入手机号:"+phone+",输入地址:"+id);
		if(boolPhone(phone)){
			if(boolId(id)){
				System.out.println("OK");
			}else{
				System.out.println("地址不符合要求");
			}
		}else{
			System.out.println("手机号不符合要求");
			if(!(boolId(id))){
				System.out.println("地址不符合要求");
			}
		}
	}
	public static boolean boolPhone(String phone){
		if(phone.matches(regPhone)){
			bool=true;
		}else{
			bool=false;
		}
		return bool;
	}
	public static boolean boolId(String phone){
		if(phone.matches(regId)){
			bool=true;
		}else{
			bool=false;
		}
		return bool;
	}
}

第六题

6.根据下列流程图编写程序实现相应分析处理并显示结果,并设计测试数据进行语句覆盖测试。输入数据打印出“username:”、“password:”。输出文字内容。

代码如下:

import java.util.*;
public class Ti6{
	private static boolean bool;
	public static void main(String[] args){
		String username,password;
		Scanner sc=new Scanner(System.in);
		System.out.println("输入username:");
		username=sc.nextLine();
		System.out.println("输入password:");
		password=sc.nextLine();
		if(bool(username) && bool(password)){
			if(username.equals("admin") && password.equals("123") ){
				System.out.println("登录成功");
			}else if(!username.equals("admin") && password.equals("123")){
				System.out.println("请输入正确的用户名");
			}else if(username.equals("admin") && !password.equals("123")){
				System.out.println("请输入正确的密码");
			}else if(!username.equals("admin") && !password.equals("123")){
				System.out.println("请输入正确的用户名和密码");
			}
		}else{
			System.out.println("用户名或密码不能为空");
		}
	}
	public static boolean bool(String value){
		if(value == null || value.length()==0){
		  	bool=false;
		}else{
			bool=true;
		}
		return bool;
	}
}

第七题

7.根据输入的年份和月份判断月份的天数,并设计测试数据进行语句覆盖测试。若月份不在有效范围之内,应提示:“月份输入不正确。”。月份不为2月,根据输入月份输出对应的月份天数。月份为2月,根据年份判断如为普通闰年,输出2月份正确天数;如为世纪闰年,输出2月份正确天数;不为闰年输出2月份天数。输入数据打印出“输入年:”、“输入月:”;输出内容格式:“year年month月份的天数是days天。”year、month为输入的值,days为判断得到的天数值。其中变量year、month均须为正整数。
代码如下:

import java.util.*;
public class Ti7{
	public static void main(String[] args){
		int year,month,days;
		Scanner sc=new Scanner(System.in);
		System.out.println("输入year:");
		year=sc.nextInt();
		System.out.println("输入month:");
		month=sc.nextInt();
		System.out.println("输入年:"+year+"输入月:"+month);
		if(year>0 ){
			if(month>0 && month <13){
				if(month ==2){
					if((year%4==0 && year%100!=0) || (year%400==0)){
						days=29;
						System.out.println(year+"年"+month+"月份的天数是"+days+"天");
					}else{
						days=28;
						System.out.println(year+"年"+month+"月份的天数是"+days+"天");
					}
				}else if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12){
						days=31;
						System.out.println(year+"年"+month+"月份的天数是"+days+"天");
					
				}else{
						days=30;
						System.out.println(year+"年"+month+"月份的天数是"+days+"天");
				}
			}else{
				System.out.println("月份输入不正确");
			}
			
		}
	}
}

第八题

8.根据输入的三条边值判断能组成何种三角形,并设计测试数据进行判定覆盖测试。三条边为变量a、b、c,范围为1≤边值≤10,不在范围内,提示“输入边值不在范围内,请重新输入”。不满足任意两边之和必须大于第三边,提示“输入边值不能组成三角形”。输入边值能组成三角形,只有2条边相同,显示“能组成等腰三角形”;三条边相等,显示“能组成等边三角形”;边值不满足特殊三角形显示“能组成普通三角形”。
代码如下:

import java.util.*;
public class Ti8{
	public static void main(String[] args){
		int a,b,c;
		Scanner sc=new Scanner(System.in);
		a=sc.nextInt();
		b=sc.nextInt();
		c=sc.nextInt();
		if(a>=1 && a<=10){
	 		if(a+b>c || a+c>b || b+c>a){
				if( (a==b && a!=c) || (a==c && a!=b) || (b==c && b!=a) ){
					System.out.println("能组成等腰三角形");
				}else if(a==b && a==c){
					System.out.println("能组成等边三角形");
				}else{
					System.out.println("能组成普通三角形");
				}
			}else{
				System.out.println("输入边值不能组成三角形");
			}
		}else{
			System.out.println("输入边值不在范围内,请重新输入");
		}
	}
}

第九题

9.根据下列流程图编写程序实现相应分析处理并显示结果,并设计最少的测试数据进行判定条件覆盖测试。输入数据打印出“输入x值:”、“输入y值:”。输出文字“a的值:”和a的值;输出文字“b的值:”和b的值;输出文字“c的值:”和c的值;输出文字“d的值:”和d的值;其中变量x、y均须为整型。

代码如下:

import java.util.*;
public class Ti9{
	public static void main(String[] args){
		int x,y;
		double a,b,c,d;
		Scanner sc=new Scanner(System.in);
		System.out.println("输入x:");
		x=sc.nextInt();
		System.out.println("输入y:");
		y=sc.nextInt();
		System.out.println("输入x值:"+x+"输入y值:"+y);
		if(x>9 && y<4){
			if(x>20 || y>10){
				c=Math.sin(x+y);
				System.out.println(c);
			}else{
				d=Math.pow(x+y,5);
				System.out.println(d);
			}
		}else{
			if(x>0 || y>0){
				a=Math.pow(x,y);
				System.out.println(a);
			}else{
				b=y+x;
				System.out.println(b);
			}
		}
	}
}

第十题

10.根据下列流程图编写程序实现相应分析处理并显示结果,并设计最少的测试数据进行语句覆盖测试。输入数据打印出“输入x值:”、“输入y值:”。输出文字“a=x:”(x为2、3或4);其中变量x、y均须为整型。

代码如下:

import java.util.*;
public class Ti10{
	public static void main(String[] args){
		int x,y,a;
		Scanner sc=new Scanner(System.in);
		System.out.println("输入x:");
		x=sc.nextInt();
		System.out.println("输入y:");
		y=sc.nextInt();
		System.out.println("输入x值:"+x+"输入y值:"+y);
		if(x>=80 && y>=60){
			if(!(x>=90 || y>=90)){
				a=2;
				System.out.println("a="+a);
			}
		}else if(x<=70 || y<=70){
			a=3;
			System.out.println("a="+a);
		}else{
			a=4;
			System.out.println("a="+a);
		}
	}
}

第十一题

11.根据下列流程图编写程序实现相应分析处理,并设计最少的测试数据进行判定条件覆盖测试。输入数据打印出“输入a值:”、“输入b值:”、“输入c值:”、“输入d值:”。x执行结果输出文字“x的值:”和x的值,y执行结果输出文字“y的值:”和y的值;z执行结果输出文字“z的值:”和z的值。其中变量a、b、c、d均须为整型。

代码如下:

import java.util.*;
import java.lang.*;
public class Ti11{
	private static double x,y,z;
	public static void main(String[] args){
		int a,b,c,d;	
		Scanner sc=new Scanner(System.in);
		System.out.println("输入a:");
		a=sc.nextInt();
		System.out.println("输入b:");
		b=sc.nextInt();
		System.out.println("输入c:");
		c=sc.nextInt();
		System.out.println("输入d:");
		d=sc.nextInt();
		System.out.println("输入a值:"+a+"输入b值:"+b+"输入c值:"+c+"输入d值:"+d);
		if(a>5 || b>10){
			computeOne(a,b);
			System.out.println("x的值:"+x);
		}else if(c==0 && d>0){
			computeTow(c,d);
			System.out.println("y的值:"+y);
		}else{
			computeThere(c,d);
			System.out.println("z的值:"+z);
		}
	}
	public static void computeOne(int a,int b){
		x=Math.pow(a,2)*b;
	}
	public static void computeTow(int c,int d){
		y=Math.sqrt(c+d);
	}
	public static void computeThere(int c,int d){
		z=Math.sin(Math.pow(c,d));
	}
	
}

第十二题

12.根据下面的要求编写程序实现并设计测试数据进行条件覆盖测试,输入小写的字符串,输入数据打印出“输入字符串:”。如字符串前缀为ab开头,则将前缀ab替换为ef并打印出替换后字符串,输出文字“替换前缀后的字符串为:”和替换后字符串值;如后缀为cd并且前缀不为ab,替换字符串中所有cd的为gh并打印出替换后字符串,输出文字“替换cd后的字符串为:”和替换后字符串值;否则全部字母大写输出,输出文字“大写字母的字符串为:”和转换后的字符串值。
代码如下:

import java.util.*;
public class Ti12{
	private static String regOne="^ab[a-zA-Z]*$";
	private static String regTow="^[a-zA-Z]*cd$";
	public static void main(String[] args){
		String str;
		Scanner sc =new Scanner(System.in);
		str=sc.next();
		if(str.matches(regOne)){
			str=str.replaceFirst("ab","ef");
			System.out.println("替换前缀后的字符串为:"+str);
		}else if(str.matches(regTow)){
			str=str.replace("cd","gh");
			System.out.println("替换cd后的字符串为:"+str);
		}else{
			str=str.toUpperCase();
			System.out.println("大写字母的字符串为:"+str);
		}
	}
}

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2023年12月15日
下一篇 2023年12月15日

相关推荐