等价类划分方法的应用(二)
题目:
三个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 }