等价类划分法是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据(有效的和无效的)划分成若干个等价类。所谓等价类是指输入域的某个互不相交的子集合,所有等价类的并集
便是整个输入域。目的在于测试用例的无冗余性。
划分等价类
(1)有效等价类:检验程序是否实现了规格说明预先规定的功能和性能。
(2)无效等价类:检查软件功能和性能的实现是否有不符合规格说明要求的地方。
常用的等价类划分原则
(1)按区间划分
(2)按数值划分
(3)按数值集合划分
(4)按限制条件或规则划分
(5)细分等价类
例:
要求:输入允许1到6个英文字符或数字,按OK结束。
有效等价类为 :长度1-6,字符A-Z,a-z,0-9
无效等价类为 :英文/数字以外字符,控制字符,标点符号
测试用例如下
编号 | 输入 | 预期结果 | 结果 |
test1 | Aa3456 | OK! | 符合 |
test2 | @12测试 | ilegal input! | 符合 |
test3 | length wrong! | 符合 | |
test4 | 1234567 | length wrong! | 符合 |
test3为无输入。
主要代码如下
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; using System.Text.RegularExpressions; namespace WindowsFormsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e)
{
Regex regex = new Regex(@"^[A-Za-z0-9]+$");
String text = textBox1.Text;
String result;
if (text.Length 6 || text.Length 1)
{ result="length wrong!"; }
else if(!regex.IsMatch(text))
{ result="ilegal input!"; }
else
{ result="OK!"; }
label2.Text = result; } } }
屏幕截图如下