一、软件测试中等价类分为两种:有效等价类与无效等价类。
1、有效等价类:程序实现规格说明预先规定的功能和性能。
2、无效等价类:软件功能和性能的实现不符合规格说明要求的地方。
2、无效等价类:软件功能和性能的实现不符合规格说明要求的地方。
二、怎样划分等价类:
1、如果按照区间划分,规定了取值范围,则可确定一个有效等价类和两个无效等价类;
2、如果按照数值划分,则可划分一个有效等价类和一个无效等价类;
3、如果按照限定条件,则可确定一个有效等价类和若干个无效等价类;
三、对上周的等价类划分测试软件进行改进,变成三框输入的测试
1、升级后的界面:
2、源代码:
1 <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 2 <!DOCTYPE html> 3 4 <html> 5 6 <head> 7 <title>软件测试</title> 8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 9 </head> 10 <body style="background: url(background.jpg);background-position: center;background-repeat: repeat; 11 background-size:100% 100%;"> 12 <h3 align="center" >等价类的划分之三个输入框</h3> 13 <hr> 14 <form method="get" action="index.jsp"> 15 <table border="1" align="center"> 16 <tr> 17 <td>输入框一:</td><td><input name="input1" type="text" size="20"></td> 18 </tr> 19 <tr> 20 <td>输入框二:</td><td><input name="input2" type="text" size="20"></td> 21 </tr> 22 <tr> 23 <td>输入框三:</td><td><input name="input3" type="text"size="20"></td> 24 </tr> 25 <tr> 26 <td>操作:</td><td align="center"><input type="submit" value="提交" > <input type="reset" name="重置" ></td> 27 </tr> 28 </table> 29 </form> 30 <p align="center"> 31 温馨提示:<br> <br>有效等价类(1)长度:1-6 (2)字符:A-Z,a-z,0-9 32 </p> 33 <p align="center">无效等价类 (1)长度:0、7 (2)字符:除以上外的其它字符</p> 34 <hr> 35 36 </body> 37 </html>
1 <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 2 3 <!DOCTYPE html> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title >反馈用户输入三条信息界面</title> 8 </head> 9 <body style="background: url(background.jpg);background-position: center;background-repeat: repeat; 10 background-size:100% 100%;" align="center"> 11 输入成功: 12 <hr /> 13 <dl> 14 <dt> 15 <br />第一个输入信息:<%=request.getParameter("input1")%></dt> 16 <dd>测试结果:<% 17 String a = request.getParameter("input1"); 18 19 if (a.length() > 6 || a.length() < 1) { 20 out.println("length " + a.length() + " is invalid"); 21 } else { 22 23 if (!a.matches("^[a-zA-Z0-9]+$")) { 24 out.println("Input does not match A-Z,a-z,0-9"); 25 } else { 26 out.println("Congratulations!Input is valid!"); 27 } 28 } 29 %></dd> 30 <br /><dt> 第一个输入信息:<%=request.getParameter("input2")%></dt> 31 <dd>测试结果: 32 <% 33 String b =request.getParameter("input2"); 34 35 if (b.length() > 6 || b.length() < 1) { 36 out.println("length " + b.length() + " is invalid"); 37 } else { 38 39 if (!b.matches("^[a-zA-Z0-9]+$")) { 40 out.println("Input does not match A-Z,a-z,0-9"); 41 } else { 42 out.println("Congratulations!Input is valid!"); 43 } 44 } 45 %></dd> 46 <br /> <dt>第三个输入信息:<%=request.getParameter("input3")%></dt> 47 <dd>测试结果:<% 48 String c = request.getParameter("input3"); 49 50 if (c.length() > 6 || c.length() < 1) { 51 out.println("length " + c.length() + " is invalid"); 52 } else { 53 54 if (!c.matches("^[a-zA-Z0-9]+$")) { 55 out.println("Input does not match A-Z,a-z,0-9"); 56 } else { 57 out.println("Congratulations!Input is valid!"); 58 } 59 } 60 %></dd> 61 </dl> 62 <hr /> 63 64 </body> 65 </html>
3、等价类的划分
有效等价类 | 编号 | 无效等价类 | 编号 |
字符串长度在1到6之间 | 1 | 字符串长度为空 | 6 |
字符串长度大于等于7 | 7 | ||
数字0-9 | 2 | 含有其他字符 | 8 |
小写字母a-z | 3 | ||
大写字母A-Z | 4 | ||
三个文本框均合法 | 5 | 三个文本框中有一个不合法 | 9-11 |
三个文本框中有两个不合法 | 12-14 | ||
三个文本框都不合法 | 15 | ||
4、测试用例
测试编号 | 输入 | 覆盖等价类 | 输出 |
1 |
abc12 Abcdfe 55555 |
1,2,3,4,5 |
合法 合法 合法 |
2 |
abc12 55555 |
6,9-11 |
合法 输入长度不在1-6范围内 合法 |
3 |
abc1212 abcdfe 55555 |
7,9-11 |
输入长度不在1-6范围内 合法 合法 |
4 |
软件 abcdfe 55555 |
8,9-11 |
含有其他字符 合法 合法 |
5 |
ab&bad abcdfe 55555 |
8,9-11 |
含有其他字符 合法 合法 |
6 |
abcdfe 55555555 |
6,12-14 |
输入长度不在1-6范围内 合法 输入长度不在1-6范围内 |
7 |
{} 55555 |
6,8,12-14 |
含有其他字符 输入长度不在1-6范围内 合法 |
8 |
abcdfe 5555555 |
6,7,12-14 |
输入长度不在1-6范围内 合法 输入长度不在1-6范围内 |
9 | 6,15 |
输入长度不在1-6范围内 输入长度不在1-6范围内 输入长度不在1-6范围内 |
|
10 |
1111111 jasonsu 天津 |
7,8,15 |
输入长度不在1-6范围内 输入长度不在1-6范围内 含有其他字符 |
11 |
¥¥ 55555555 |
6,7,8,15 |
输入长度不在1-6范围内 含有其他字符 输入长度不在1-6范围内 |
5、测试截图
(1)
(4)
(7)
(10)