白盒测试题集一
第一题
1.下列流程图中变量a、b、c、d均为非负整数,编写程序实现相应分析处理,并设计测试数据进行语句覆盖测试。要求a、b、c、d取最小可能值。
代码如下:文章来源:https://www.toymoban.com/news/detail-768957.html
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后的字符串为:”和替换后字符串值;否则全部字母大写输出,输出文字“大写字母的字符串为:”和转换后的字符串值。
代码如下:文章来源地址https://www.toymoban.com/news/detail-768957.html
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);
}
}
}
到了这里,关于白盒测试题一的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!