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


      在上一篇博客中,我介绍了等价类划分法的应用,并通过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;
            }
    
        
    
        }
    }
    

      

  • 相关阅读:
    30岁前不必在乎的28件事
    开发工作的枯燥与快乐
    Ajax技术的初步认识二(转)
    算法实习一
    判断程序是否运行的代码 (有点单例模式的味道)
    SQL2008+SERVER2008的解决方案
    天秤座的爱情(转)
    VB sytem32\ieframe.dll找不到的解决方案
    回忆有感《清明雨上》
    Ajax技术的初步认识一(转)
  • 原文地址:https://www.cnblogs.com/byzantine/p/4376265.html
Copyright © 2020-2023  润新知