白盒测试题集一
文章目录
- 白盒测试题集一
- 第一题
- 第二题
- 第三题
- 第四题
- 第五题
- 第六题
- 第七题
- 第八题
- 第九题
- 第十题
- 第十一题
- 第十二题
第一题
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); } } }
猜你喜欢
网友评论
- 搜索
- 最新文章
- 热门文章