zoukankan      html  css  js  c++  java
  • 等价类划分法的应用(二)

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

      

  • 相关阅读:
    React生命周期, 兄弟组件之间通信
    React组件式编程Demo-用户的增删改查
    React之this.refs, 实现数据双向绑定
    CCF CSP 201812-4 数据中心
    CCF CSP 201812-4 数据中心
    PAT 顶级 1020 Delete At Most Two Characters (35 分)
    PAT 顶级 1020 Delete At Most Two Characters (35 分)
    Codeforces 1245C Constanze's Machine
    Codeforces 1245C Constanze's Machine
    CCF CSP 201712-4 行车路线
  • 原文地址:https://www.cnblogs.com/byzantine/p/4376265.html
Copyright © 2011-2022 走看看