等价类划分方法的应用(二)

等价类划分方法的应用(二)

题目:

个EditBox,全部值允许输入1-6个英文字符或数字,按OK结束。


以输入条件划分等价类:

输入的字符串必须满足以下条件:

条件1:第一行长度1-6

条件2:第一行字符为'0'-'9'或'a'-'z'或'A'-'Z'

条件3:第二行长度1-6

条件4:第二行字符为'0'-'9'或'a'-'z'或'A'-'Z'

条件5:第三行长度1-6

条件6:第三行字符为'0'-'9'或'a'-'z'或'A'-'Z'

编号 有效等价类 编号 无效等价类
1 第一行长度1-6 7 第一行长度为0
2 第一行字符为'0'-'9'或'a'-'z'或'A'-'Z' 8 第一行长度大于等于7
3 第二行长度1-6 9 第一行含有英文/数字以外字符
4 第二行字符为'0'-'9'或'a'-'z'或'A'-'Z' 10 第二行长度为0
5 第三行长度1-6 11 第二行长度大于等于7
6 第三行字符为'0'-'9'或'a'-'z'或'A'-'Z' 12 第二行含有英文/数字以外字符
13 第三行长度为0
14 第三行长度大于等于7
15 第三行含有英文/数字以外字符

测试用例:

编号 输入 覆盖等价类 期望输出
第一行 第二行 第三行
1 Fks143 Fks143 Fks143 1,2,3,4,5,6 输入全部正确
2   Fks143 Fks143 7 第一行输入为空
3 Fks1431 Fks143 Fks143 8 第一行长度不合法
4 Fks. Fks143 Fks143 9 第一行含有非法字符
5 Fks143   Fks143 10 第二行输入为空
6 Fks143 Fks1431 Fks143 11 第二行长度不合法
7 Fks143 Fks. Fks143 12 第二行含有非法字符
8 Fks143 Fks143   13 第三行输入为空
9 Fks143 Fks143 Fks1431 14 第三行长度不合法
10 Fks143 Fks143 Fks. 15 第三行含有非法字符

测试结果图:

代码:

 1 namespace SoftwareTest1
 2 {
 3     public partial class Form1 : Form
 4     {
 5         private string result;
 6         private int r;
 7 
 8         public Form1()
 9         {
10             InitializeComponent();
11         }
12 
13         private void button1_Click(object sender, EventArgs e)
14         {
15             r = 0;
16             string input1 = textBox1.Text;
17             string input2 = textBox2.Text;
18             string input3 = textBox3.Text;
19             result = "Name1: ";
20             checkInput(input1);
21             result += "
Name2: ";
22             checkInput(input2);
23             result += "
Name3: ";
24             checkInput(input3);
25             if (r == 3)
26             {
27                 result = "输入全部正确";
28             }
29             else
30             {
31                 result += "
请重新输入";
32             }
33             MessageBox.Show(result);
34         }
35 
36         private bool legalStr(string str)
37         {
38             for (int i = 0; i < str.Length; i++)
39             {
40                 if ((str[i] < 'a' || str[i] > 'z') && (str[i] < 'A' || str[i] > 'Z') && (str[i] < '0' || str[i] > '9'))
41                     return false;
42             }
43             return true;
44         }
45 
46         private void checkInput(string input)
47         {
48             if (input.Length == 0)
49             {
50                 result += "输入为空";
51                 return;
52             }
53             if (input.Length > 6)
54             {
55                 result += "长度不合法";
56                 return;
57             }
58             else if (!legalStr(input))
59             {
60                 result += "含有非法字符";
61                 return;
62             }
63             else
64             {
65                 r += 1;
66                 result += "输入正确";
67                 return;
68             }
69         }
70     }
71 }
原文地址:https://www.cnblogs.com/fks143/p/4375802.html