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

  在上一篇博客中,我介绍了等价类划分法的应用,并通过EditBox这个例子进行了测试。在这次测试中,通过设置3个输入框,呈现出不同的测试效果。

  首先复习等价类划分法:

   划分等价类的方法:下面给出六条确定等价类的原则。
  ①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
  ②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类.
  ③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
  ④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
  ⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
  ⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
  
  设计测试用例:在确立了等价类后,可建立等价类表,列出所有划分出的等价类。
 
  1.划分等价类
 
编号  有效等价类 编号 无效等价类
1 文本1长度为1-6 7 文本1长度小于1
8 文本1长度大于6
2 文本2长度为1-6 9 文本2长度小于1
10 文本2长度大于6
3 文本3长度为1-6 11 文本3长度小于1
12 文本3长度大于6
4 文本1字符位a-z,A-Z,0-9 13 文本1含英文/数字以外字符,控制字符,标点符号
5 文本2字符位a-z,A-Z,0-9 14 文本2含英文/数字以外字符,控制字符,标点符号
6 文本3字符位a-z,A-Z,0-9 15 文本3含英文/数字以外字符,控制字符,标点符号
  
 
  2.设计测试用例:
编号 输入 覆盖等价类 期望输出
1

111aaa

222bbb

333ccc

1,2,3,4,5,6   OK
2

 

222bbb

333ccc

7,2,3,4,5,6  
3

111aaaaa

222bbb

333ccc

8,2,3,4,5,6  
4

111aaa

 

333ccc

9,1,3,4,5,6  
5

111aaa

222bbbbb

333ccc

10,1,3,4,5,6  
6

111aaa

222bbb

 

11,1,2,4,5,6  
7

111aaa

222bbb

333ccccc

12,1,2,4,5,6  
8

1$%^a

222bbb

333ccc

13,1,2,3,5,6  
9

111aaa

2)&.bb

333ccc

14,1,2,3,4,6  
10

111aaa

222bbb

3(&#!c

15,1,2,3,4,5  
  
  测试结果:
 
  源代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            string result = "OK";
            string str1 = textBox1.Text.ToString();
            string str2 = textBox2.Text.ToString();
            string str3 = textBox3.Text.ToString();
            if (str1.Length < 1 || str1.Length > 6 || str2.Length < 1 || str2.Length > 6
                || str3.Length < 1 || str3.Length > 6)
                result = "fail";
            foreach (char c in str1)
            {
                if ((!char.IsLetter(c)) && (!char.IsNumber(c))) 
                {
                    result = "fail";
                }
            }
            foreach (char c in str2)
            {
                if ((!char.IsLetter(c)) && (!char.IsNumber(c))) 
                {
                    result = "fail";
                }
            }
            foreach (char c in str3)
            {
                if ((!char.IsLetter(c)) && (!char.IsNumber(c))) 
                {
                    result = "fail";
                }
            }
            label.Text = result;
        }

    

    }
}

  

posted on 2015-03-29 20:38  二班-邓琨  阅读(2073)  评论(0编辑  收藏  举报

导航