【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

原文地址:https://www.cnblogs.com/zhanghan2015/p/4357236.html