【testing_第三周】三个editbox____测试用例

一.简介:

本次小实验是在上次博客的基础上改进的,由一个editbox变成3个editbox。

由于被测试的文本框的个数增加,测试用例以及测试的内容都有所不同。

同时,我在编写代码时也考虑到了测试时的问题,因为3个editbox中的内容的要求、规格都是一致的,因此只需要写个for循环来控制3个box的测试 ,这为测试时带来了方便。

另外,3个box与1个box问题的区别在于他们之间的输入是否互相影响,这点在测试以及编程时也要考虑到。

具体上次问题的介绍请参考我的上一篇博客:http://www.cnblogs.com/zhanghan2015/p/4357236.html

二.划分等价类:

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

数字字母以外的字符/

控制字符/

标点符号

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

输入正确盒子

个数为3

9 盒子1不正确,盒子2,3正确
10 盒子2不正确,盒子1,3正确
11 盒子3不正确,盒子1,2正确
12 盒子1,2不正确,盒子3正确
13 盒子1,3不正确,盒子2正确
14 盒子2,3不正确,盒子1正确
15 盒子1,2,3都不正确

三.设计测试用例:

编号 测试用例 覆盖等价类 期望输出
1

123ab

C45

789xYZ

1,2,3,4,5

第1个盒子输入正确!

第2个盒子输入正确!

第3个盒子输入正确!

2

null

null

null

6,15 输入不能为空
3

aaaaaaaa

aaaaaaaa

aaaaaaaa

7,15 输入长度不能大于6
4

[[[

[[[

[[[

8,15

不能输入数字和字母以外的字符

5

123ab

abcdefg

,,,,

9 第1个盒子输入正确,第2,3个盒子错误
6

null

45C

0123333

10 第2个盒子输入正确,第1,3个盒子错误
7

 !!!!

null

46Cd

11 第3个盒子输入正确,第1,2个盒子错误
8

123ab

Xy6

null 

12 第1,2个盒子正确,第3个盒子错误
9

123ab

///

09VC

13 第1,3个盒子正确,第2个盒子错误
10

0000000

123ab

KLM

14 第2,3个盒子正确,第1个盒子错误
11

 null

;;;;

1234567

15 第1,2,3个盒子都错误

四.代码:

<%@ 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 myArray=new Array(3);
     var alertstr=new Array("输入为空!","长度大于6个字符!","你输入的字符不是数字或者字母!","输入正确!");   
     for( i=0;i<3;i++)
     {
     	var str=document.getElementById(i).value;	
		if(str.length<1)
 		{		
    		myArray[i]=0;
 		}
 		else if(str.length>6)
 		{
 		
 			myArray[i]=1;
 		}
 		else
 		{
 			var reg = /[^0-9a-zA-Z]+$/;
     		if(reg.test(str))
     		{    			
     			myArray[i]=2;
     		} 
     		else
    		{		
     			myArray[i]=3;
     		}
 		} 
     
     }
     var alerts="";
     for(j=0;j<3;j++)
     {
         for(k=0;k<4;k++)
         {
         	if(myArray[j]==k)
         	{
            	alerts+="第"+(j+1)+"个盒子"+alertstr[k]+"
";
         	}
         }
     }
     alert(alerts);
}

   
 </script>
 
   <body>
     <p align="center">请输入1-6位字符(只允许数字和字母)</p>
 	 <center>  
 	<tr style="text-align:center">盒子1:
    <input id="0" type="text" >
 	</tr><br></br>
 		<tr style="text-align:center">盒子2:
    <input id="1" type="text" >
 	</tr><br></br>
 		<tr style="text-align:center">盒子3:
    <input id="2" type="text" >
 	</tr><br></br>
 	<tr><button type="button" onclick="myFun()"align="center">确定</button></tr>
 	</center>
   </body>
 </html>

五.测试结果:

(1)第1,2 ,3个盒子都正确:

(2)输入不能为空

(3)长度不能超过6

(4)不能输入数字和字母以外的字符

 (5)第1个盒子输入正确,第2,3个盒子错误

  

 (6)第2个盒子输入正确,第1,3个盒子错误

 (7)第3个盒子输入正确,第1,2个盒子错误

 (8)第1,2个盒子输入正确,第3个盒子错误

 (9)第1,3个盒子输入正确,第2个盒子错误

 (10)第2,3个盒子输入正确,第1个盒子错误

 (11)3个盒子都输入错误

 

六.心得:

虽然这个小例子比较简单,但是我体会到程序员编程时应该充分考虑到测试时候的问题,用简洁清晰的代码为测试工作创造便捷。

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