软件测试 黑盒测试之等价类划分测试 电话号码合法性检验 ...

打印 上一主题 下一主题

主题 901|帖子 901|积分 2703

黑盒测试之等价类划分测试

实验要求:

分析电话号码的输入情况,划分等价类表(要求考虑无效输入);根据(1)所划分的等价类,给出具体的测试用例,实施测试。据此实验生成测试报告2。测试报告中至少包含等价类列表,测试用例及测试结论。
自选语言编写程序:输入电话号码,对电话号码的合法性进行检查,输出是否合法,不合法在屏幕上输出错误原因。
电话号码合法要求:
电话号码由三部分构成
地区码:空白或三位数字
前缀码:非"0"或”1”开头的三位数字
后缀码:四位数字
符合以上要求的为合法电话号码
确认等价类,列出等价类表:

输入条件
有效等价类
编号
无效等价类
编号
电话号码长度
7
1
小于7
10
10
2
大于7小于10
11
大于10
12
电话号码长度为7时首位字符类型
非0非1的数字
3
0
13
1
14
非数字的字符
15
电话号码长度为7时前缀码后两位字符类型
数字
4
非数字的字符
16
电话号码长度为7时后缀码字符类型
数字
5
非数字的字符
17
电话号码长度为10时第4位字符类型
非0非1的数字
6
0
18
1
19
非数字的字符
20
电话号码长度为10时前缀码后两位字符类型
数字
7
非数字的字符
21
电话号码长度为10时后缀码字符类型
数字
8
非数字的字符
22
电话号码长度为10时地区码字符类型
数字
9
非数字的字符
23
测试用例表:

测试用例
输入数据
预期结果
覆盖的等价类
地区码
前缀码
后缀码
1
空白
222
3333
输入合法
1,3,4,5
2
111
222
3333
输入合法
2,6,7,8,9
3
空白
22
3333
输入不合法,电话号码长度不合格
10
4
空白
222
333
输入不合法,电话号码长度不合格
11
5
111
2222
3333
输入不合法,电话号码长度不合格
12
6
空白
022
3333
输入不合法,前缀码有误
13
7
空白
122
3333
输入不合法,前缀码有误
14
8
空白
a12
3333
输入不合法,前缀码有误
15
9
空白
2aa
3333
输入不合法,前缀码有误
16
10
空白
222
aaaa
输入不合法,后缀码有误
17
11
111
022
3333
输入不合法,前缀码有误
18
12
111
122
3333
输入不合法,前缀码有误
19
13
111
a12
3333
输入不合法,前缀码有误
20
14
111
2aa
3333
输入不合法,前缀码有误
21
15
111
222
aaaa
输入不合法,后缀码有误
22
16
aaa
222
3333
输入不合法,地区码有误
23
部分用例执行后结果演示:

演示(测试编号1):

演示(测试编号2):

演示(测试编号3):

演示(测试编号4):

演示(测试编号5):

演示(测试编号6):

演示(测试编号7):

演示(测试编号8):

演示(测试编号9):

演示(测试编号10):

演示(测试编号11):

演示(测试编号12):

演示(测试编号13):

演示(测试编号14):

演示(测试编号15):

演示(测试编号16):

实验代码:
  1. import java.util.Scanner;
  2. public class test2 {
  3.     public static void main(String[] args) {
  4.         Scanner sc = new Scanner(System.in);
  5.         System.out.println("请输入您的电话号码:");
  6.         String phone = sc.next();
  7.         System.out.println("您输入的电话号码为:" + phone);
  8.         boolean boom = judge(phone);
  9.         if (boom == true) {
  10.             System.out.println("您输入的电话号码是合法的");
  11.         }
  12.         else {
  13.             System.out.println("您输入的电话号码是非法的");
  14.         }
  15.     }
  16.     public static boolean isNumber(String str, int length) {
  17.         for (int i = 0; i < length; i++) {
  18.             if (!Character.isDigit(str.charAt(i))) {
  19.                 return false;
  20.             }
  21.         }
  22.         return true;
  23.     }
  24.     public static boolean judge(String phone){
  25.         char fourchar =phone.charAt(3);
  26.         char firstchar = phone.charAt(0);
  27.         int length = phone.length();
  28.         if (isNumber(phone,phone.length())){
  29.             if (length == 10){
  30.                 if (fourchar=='0' || fourchar=='1'){
  31.                     System.out.println("提示:前缀码应该是除了0和1开头的三位数字!");
  32.                     return false;
  33.                 }
  34.                 else{
  35.                     return true;
  36.                 }
  37.             }
  38.             else if (length == 7){
  39.                 if (firstchar=='0' || firstchar=='1'){
  40.                     System.out.println("提示:前缀码应该是除了0和1开头的三位数字!");
  41.                     return false;
  42.                 }
  43.                 else {
  44.                     return true;
  45.                 }
  46.             }
  47.             else {
  48.                 System.out.println("提示:电话号码的长度应为 7或 10位!");
  49.                 return false;
  50.             }
  51.         }
  52.         else{
  53.             if (phone.length()==10){
  54.                 if (isNumber(phone,3)==false){
  55.                     System.out.println("提示:地区码为非数字!");
  56.                 }
  57.                 else if (isNumber(phone,6)==false){
  58.                     System.out.println("提示:前缀码为非数字!");
  59.                 }
  60.                 else {
  61.                     System.out.println("提示:后缀码为非数字!");
  62.                 }
  63.             }
  64.             else {
  65.                 if (isNumber(phone,3)==false){
  66.                     System.out.println("提示:前缀码为非数字!");
  67.                 }
  68.                 else{
  69.                     System.out.println("提示:后缀码为非数字!");
  70.                 }
  71.             }
  72.             System.out.println("电话号码不应当出现除了数字以外的字符!");
  73.             return false;
  74.         }
  75.     }
  76. }
复制代码
 
测试结论:

预期结果与程序执行结果一致,说明测试成功,程序无异常。写到测试用例才发现程序的条件有冗余,导致测试用例重复。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

商道如狼道

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表