软件测试第三周之测试多个输入的合法性

这一次我主要用的是C#中的正则表达式来测试用户输入的字符串是否合法。

这是我的UI界面:

  1.   三个输入框允许用户同时进行输入
  2.   输入后摁确定键即可输出测试结果,摁下取消键即可重新进行输入
  3.   输出的测试信息显示在右侧的输出文本框中

测试用例:

第一步:等价类型的划分

有效等价类 无效等价类
长度:1到6 长度:0或者大于7
字符:a-z,A-Z,0-9  字符:英文/数字以外字符,控制字符,标点符号

第二步:测试用例的生成

 
 
编号 输入字符 期望输出
1 A 有效输入
2 Z 有效输入
3 55136s 有效输入
4 zAGsdf 有效输入
5 null 无效输入
6 @ 无效输入
7 空格 无效数入
8 *@#$%^ 无效输入
9 @123 无效输入
10 12345# 无效输入
11 uyueiuwy 无效输入

测试结果截图:

下面是代码部分:

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 button1_Click(object sender, EventArgs e)
        {
            String[] str = new String[3];
            
            str[0] = textBox1.Text;
            str[1] = textBox2.Text;
            str[2] = textBox3.Text;

            Boolean res1=System.Text.RegularExpressions.Regex.IsMatch(str[0], @"^[a-zA-Z\d]{1,6}$");
            Boolean res2 = System.Text.RegularExpressions.Regex.IsMatch(str[1], @"^[a-zA-Z\d]{1,6}$");
            Boolean res3 = System.Text.RegularExpressions.Regex.IsMatch(str[2], @"^[a-zA-Z\d]{1,6}$");
            if (res1 && res2 && res3)
            {
                label4.Text = "输入正确!";
            }
            else
            {
                label4.Text = "输入不合法,请重新输入!";
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            textBox1.Text = "";
            textBox2.Text = "";
            textBox3.Text = "";
            label4.Text = "请先输入";
        }

        private void label4_Click(object sender, EventArgs e)
        {

        }
    }
}

代码中的核心部分就是正则表达式判段输入字符串是否合法的部分,我使用的正则表达式是:

@"^[a-zA-Z\d]{1,6}$"

即判断每一位是否为字母或者数字,且出现的次数为1-6次。

 

posted on 2015-03-29 11:46  一班&周雪高  阅读(262)  评论(0编辑  收藏  举报

导航