开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情
您好,我是游手好闲的小羊!
一、什么是白盒测试
白盒测试又称为结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。盒子指的是被测试的软件,白盒指的是盒子是可视的,测试人员清楚盒子内部的东西以及里面是如何运作的。
二、白盒测试题目讲解
题1:根据输入执行下列不同的数学计算并显示结果。编写程序,并设计测 试数据进行语句覆盖测试。输入数据打印出“输入x 值:”、“输入k 值:”。 执行算式一log(x k)输出文字“算式一值:”和 y 的值,执行 k x 输出文字“算 式二值:”和y 的值;执行 xk 输出文字“算式三值:”和y 的值。其中变量x、k 均须为正整数,若x≤0 或k≤0,则提示:“输入不符合要求。”;若x≥30, 则提示:“数据超过范围。”。
代码:
import java.util.Scanner ;
class demo1{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("输入x值:");
int x=sc.nextInt();
System.out.println("输入k值:");
int k=sc.nextInt();
if(x<=0||k<=0){
System.out.println("输入不符合要求。");
}
else{
if(x<10){
System.out.println("算式一值:y="+Math.log(x*k));
}
else if(x<20){
System.out.println("算式二值:y="+Math.pow(x,k));
}
else if(x<30){
System.out.println("算式三值:y="+Math.pow(x,1/k));
}
else
System.out.println("数据超过范围。");
}
}
}
讲解:本题用到是白盒的语句覆盖,也就是要设计x和k的值确保每个语句能得到输出就完成了,那么我可以设计x和k的值为: 语句覆盖测试数据:
- 1组测试数据与运行结果截图 (x=-1,k=1)
- 2组测试数据与运行结果截图 (x=5,k=1)
- 3组测试数据与运行结果截图(x=15,k=1)
- 4组测试数据与运行结果截图(x=25,k=1)
- 5测试数据与运行结果截图(x=30,k=1)
题2:填写快递单时通常需要确定接收人的姓名、手机号和地址。其中要 求手机号是11 位数字字符,地址为字母开头的10 个(含10)以内字母或字母 数字共同组成。填写正确则提示“OK”,否则根据实际情况提示“**不符合要求” (**为手机号或地址),退出。编写程序实现此快递单信息的输入,并设计测试 数据进行判定覆盖测试。输入数据打印出“输入手机号:”、“输入地址:”。
代码:
import java.util.Scanner;
class demo2{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入手机号:");
String phone=sc.next();
System.out.println("请输入地址:");
String address=sc.next();
boolean mphont=phone.matches("^[0-9]{11}$");
boolean maddress=address.matches("^[A-Z]{1}[a-zA-Z0-9]*$");
if(!mphont){
System.out.println("手机号不符合要求");
}else if(!maddress||address.length()>10){
System.out.println("地址不符合要求");
}else{
System.out.println("OK");
}
}
}
讲解:本题用到判定覆盖,那么设计测试数据为:
- 1组测试数据与运行结果截图 (phone="173759196022",address="Abcd21")
- 2组测试数据与运行结果截图 (phone="17375919602",address="bafasd")
- 3组测试数据与运行结果截图(phone="17375919602",address="Aafasd")
拓展:白盒测试的主要目的是干啥的?
- 保证一个模块中的所有独立路径至少被执行一次;
- 对所有的逻辑值均需要测试真、假两个分支;
- 在上下边界及可操作范围内运行所有循环;
- 检查内部数据结构以确保其有效性。
本期讲解就到这里,下次再见,我是带你学习的小羊!