zoukankan      html  css  js  c++  java
  • Equivalence Class Partitioning等价类划分黑盒测试

     一、等价类划分

      所谓等价类是指输入域的某个互不相交的子集合,所有等价类的并集便是整个输入域。目的在于测试用例的无冗余性。

     二、划分等价类( valid / invalid )

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

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

     三、常用的等价类划分原则

      (1)按区间划分

        可以确定一个有效等价类、两个无效等价类。

      (2)按数值划分

        如果输入条件规定了输入数据的一组可能的值,而且程序是用不同的方式处理每一种值,则可为每一种值划分一个有效等价类,并划分一个无效等价类。

      (3)按数值集合划分

        规格说明中规定了输入值的集合,则可以确定一个有效等价类,并划分一个无效等价类。

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

        规格说明中规定了输入数据必须遵守的规则和限制条件,则可以确立一个有效等价类(符合规则)和若干个(≥ 1)无效等价类(不同角度的违反规则)。

      (5)细分等价类

        如果我们确知,已划分的某等价类中的各元素(例子)在程序中的处理方式是不同的,则应据此将此等价类进一步划分成更小的等价类。

     四、等价类测试用例设计

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

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

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

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

     五、等价类划分方法应用

            EditBox允许1到6个英文字符或数字,按OK结束

           1.划分有效和无效等价类

          (1)有效等价类:

              长度:1到6 字符:a-z,A-Z,0-9

          (2)无效等价类:

              长度:0,7 字符:英文/数字以外字符,控制字符,标点符号

           2.代码实现

    1. <%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
    2. <%@page import = "java.sql.*" %>
    3. <%@page import = "java.io.PrintWriter" %>
    4. <%
    5. String path = request.getContextPath();
    6. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    7. %>
    8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    9. <html>
    10. <head>
    11. <base href="<%=basePath%>">
    12. <title>My JSP 'index.jsp' starting page</title>
    13. <meta http-equiv="pragma" content="no-cache">
    14. <meta http-equiv="cache-control" content="no-cache">
    15. <meta http-equiv="expires" content="0">
    16. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    17. <meta http-equiv="description" content="This is my page">
    18. <!--
    19. <link rel="stylesheet" type="text/css" href="styles.css">
    20. -->
    21. </head>
    22. <body>
    23. <form action="http://localhost:8080/experience34/index.jsp" method="post">
    24. <br><br><center><h1>等价类划分方法测试</h1></center>
    25. <br><br><h3><center>
    26. <label for="random" class="col-md-5 control-label">用户名:</label>
    27. <input type="text" id="name" name="name">  
    28. <button type="submit" class="btn btn-info btn-md" name="yes">确认</button>
    29. </h3></center>
    30. </form>
    31. <%System.out.println(request.getParameter("yes"));
    32. if(request.getParameter("yes")!= null){
    33. System.out.println("Succeed");
    34. if(request.getParameter("name").equals("") || request.getParameter("name").length()>=7){
    35. %>
    36. <br><br><center><font color='red'>您的输入不合法1</center>
    37. <%
    38. }
    39. else{
    40. /*var content = document.getElementById("name").value;
    41. var reg1 = /[a-zA-Z]/g;
    42. var letterCount = 0;
    43. letterCount = content.match(reg1).length;
    44. var reg2 = /\d/g;
    45. var numberCount = 0;
    46. numberCount = content.match(reg2).length;
    47. int i = letterCount + numberCount;
    48. if(i!=request.getParameter("name").length()){*/
    49. /*boolean isDigit = false;
    50. boolean isLetter = false;
    51. for(int i = 0; i < request.getParameter("name").length(); i++){
    52. if(request.getParameter("name").isDigit(request.getParameter("name").charAt(i))){
    53. isDigit = true;
    54. }
    55. if(request.getParameter("name").isLetter(request.getParameter("name").charAt(i))){
    56. isLetter = true;
    57. }
    58. if(isDigit || isLetter){*/
    59. char arr[] = new char[request.getParameter("name").length()];
    60. arr = request.getParameter("name").toCharArray();
    61. for(int i = 0; i < request.getParameter("name").length(); i++){
    62. if((arr[i] >= 'a' && arr[i] <= 'z')||(arr[i] >= 'A' && arr[i] <= 'Z')||(arr[i] >= '0' && arr[i] <= '9'));
    63. else{
    64. %>
    65. <br><br><center><font color='red'>您的输入不合法2</center>
    66. <%
    67. }
    68. %>
    69. <br><br><center><font color='green'>您的输入合法</center>
    70. <%
    71. }}
    72. } %>
    73. </body>
    74. </html>

           3.测试用例

    编号 测试用例 结果
    1 null 输入不合法
    2 1111111111111 输入不合法
    3 asw234 输入合法
    4 22222 输入合法
    5 wsd 输入合法
    6 !.,3w 输入不合法

     

           4.结果图

  • 相关阅读:
    O-C相关-06:对象与对象的关系
    O-C相关05:方法的封装.
    O-C相关04:类方法的概述与定义和调用
    Objective-C发展历史
    O-C相关-03:面向对象概念的具体介绍
    OC相关-02:oc和c的基本差异
    0-C相关01:NSlog函数介绍。
    鞭辟入里
    objective-c中字符串长度计算
    OC多文件开发介绍
  • 原文地址:https://www.cnblogs.com/summer23/p/4358105.html
Copyright © 2011-2022 走看看