• 【testing_第二周】划分等价类__设计测试用例__小应用


    一. 实验内容: 

      编写一段小程序,输入只能是长度为1—6的数字和英文字母,用划分等价类的方法设计测试用例,检验程序的正确性。

    二.实验目的:

      学习用划分等价类的方法设计测试用例。

    三.实验背景:

      关于等价类的知识:

      有效等价类:检验程序是否实现了规格说明预先规定的功能和性能。   

      无效等价类:检查软件功能和性能的实现是否有不符合规格说明要求的地方。

      常用的等价类划分原则   

      (1)按区间划分   

      (2)按数值划分   

      (3)按数值集合划分   

      (4)按限制条件或规则划分   

      (5)细分等价类

      等价类测试用例设计   

      (1)在确立了等价类之后,可列出所有划分出的等价类表。   

      (2)为每一个等价类规定一个唯一的编号。   

      (3)设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,直到测试用例覆盖了所有的有效等价类。   

      (4)设计一个新的测试用例,使其覆盖且只覆盖一个尚未覆盖的无效等价类。重复这一步,直到测试用例覆盖了所有的无效等价类。

    四.划分等价类:

    编号 有效等价类 编号 无效等价类
    1 长度1-6 5 长度0
      6 长度>=7
    2 数字0-9 7

    数字字母以外的字符/

    控制字符/

    标点符号

    3 字母a-z
    4 字母A-Z

    五.设计测试用例:

    编号 测试用例 覆盖等价类 期望输出
    1 123abC 1,2,3,4 正确
    2 null 5 请输入字符
    3 aaaa1234 6 长度不能超过6
    4 1// 7 不能输入字母和数字之外的字符

    六.实验结果:

    (1)有效输入

    (2)输入为空

    (3)长度大于6

    (4)含有非数字字母的字符

    七.代码和说明:

    本实验使用的是web开发工具MyEcilpse,使用的是html和javascript语言。

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
     <%
     String path = request.getContextPath();
     String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
      %>
      
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      <html>
        <head>
         <base href="<%=basePath%>">
         
         <title>My JSP 'index.jsp' starting page</title>
         <meta http-equiv="pragma" content="no-cache">
         <meta http-equiv="cache-control" content="no-cache">
         <meta http-equiv="expires" content="0">    
         <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
         <meta http-equiv="description" content="This is my page">
         <!--
         <link rel="stylesheet" type="text/css" href="styles.css">
         -->
       </head>
       <script>
     
     function myFun()
     {   
         var str = document.getElementById("password").value;
    	if(str.length<1)
     	{
        	alert("输入为空!请输入1~6个字符");
     	}
     	else if(str.length>6)
     	{
     		alert("长度大于6个字符!");
     	}
     	else
     	{
     		var reg = /[^0-9a-zA-Z]+$/;
         	if(reg.test(str))
         	{
         		alert("你输入的字符不是数字或者字母");
         	} 
         	else
        	{
         		alert("输入成功!");
         	}
     	} 
    }
       
     </script>
     
       <body>
         <p align="center">请输入1-6位字符(只允许数字和字母)</p>
     	 <center>  
     	<tr style="text-align:center">
     	<input id="password" type="text" >
     	</tr><br></br>
     	<tr><button type="button" onclick="myFun()"align="center">确定</button></tr>
     	</center>
       </body>
     </html>
    

     八.一些关于正表达式的补充:

    常用的元字符
    代码说明
    . 匹配除换行符以外的任意字符
    w 匹配字母或数字或下划线或汉字
    s 匹配任意的空白符
    d 匹配数字
     匹配单词的开始或结束
    ^ 匹配字符串的开始
    $ 匹配字符串的结束
    常用的反义代码
    代码/语法说明
    W 匹配任意不是字母,数字,下划线,汉字的字符
    S 匹配任意不是空白符的字符
    D 匹配任意非数字的字符
    B 匹配不是单词开头或结束的位置
    [^x] 匹配除了x以外的任意字符
    [^aeiou] 匹配除了aeiou这几个字母以外的任意字符

    参考博客:http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html

    js正则表达式中test方法的说明

     test 返回 Boolean,查找对应的字符串中是否存在模式。

    var str = "1a1b1c";

    var reg = new RegExp("1.", "");

    alert(reg.test(str)); // true

    参考:http://www.jb51.net/article/46378.htm

  • 相关阅读:
    linux & xp 双系统 重装的问题
    判断推理类试题的复言命题考点与题型总结
    Oracle、MySQL、SQL Server数据库的数据类型的差异
    java环境变量设置和问题及解决方法
    如何正确卸载MySQL,主要是删除注册表中的垃圾信息
    J2EE经典面试题及答案
    正则表达式
    囚犯的两难处境
    MySQL 数值数据类型
    linux学习之SHELL脚本
  • 原文地址:https://www.cnblogs.com/zhanghan2015/p/4357236.html
Copyright © 2020-2023  润新知