热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

黑盒测试用例设计方法一(等价类划分、边界值分析)

测试数据选择:等价类划分法和边界值分析法一、黑盒测试用例设计方法1、黑盒测试用例设计方法概述2、等价类划分法2.1等价类划分法原理2.2等价类划分法设计步骤2.2.1


测试数据选择:等价类划分法和边界值分析法

  • 一、黑盒测试用例设计方法
    • 1、黑盒测试用例设计方法概述
    • 2、等价类划分法
      • 2.1等价类划分法原理
      • 2.2等价类划分法设计步骤
        • 2.2.1确定等价类的原则
        • 2.2.2等价类划分法
    • 3、边界值分析法
      • 3.1边界值的选用原则
  • 二、用例设计中存在的问题
  • 三、实战案例
      • 案例


一、黑盒测试用例设计方法


1、黑盒测试用例设计方法概述


  • 测试数据选择
    等价类划分法
    边界值分析法
  • 测试步骤设计
    因果图法
    判定表法
    正交实验法
    功能图法
    场景法

2、等价类划分法


2.1等价类划分法原理


  • 把程序的输入域划分成若干份,然后从每个部分中选取少数代表性数据作为测试用例
  • 每一类的代表性数据在测试中的作用等价于这一类中的其他值,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误。
  • 反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误。

2.2等价类划分法设计步骤


2.2.1确定等价类的原则


  • 在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类

例如:一个文本框规定,输入字符个数为6~18位
一个有效等价类:范围内个数
两个无效等价类:小于6;大于18个



  • 在输入条件规定了输入值的集合或者规定了“必须如何”的条件下,可以确立一个有效等价类和一个无效等价类

例如:请输入11位的手机号
11位就是有效的
不是11位,就是无效的



  • 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类

布尔量:表示“真”或者“假”



  • 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类

例如:登陆中要输入用户名和密码



  • 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)

例如:用户名要求6~18,由字母、数字、下划线组成;字母区分大小写;以大写字母开头



  • 在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步地划分为更小的等价类

以百度的注册页面为例
用户名:设置后不可更改;中英文均可;最多14个英文或7个数字;(用户名不可重复;不可为空;)



有效等价类数据无效等价类数据
中文、英文混合杨kaikai数字、特殊符号12345
14英文yangkaikai英文超过14/中文超过7dsffgbcdfgfsrere
不能为空y
不能重复杨凯使用重复的数据进行测试
7个中文羊羊羊

2.2.2等价类划分法


  • 划分等价类和列出等价类表
    有效等价类
    无效等价类
  • 确定测试用例
    为每个等价类规定一个唯一的编号
    设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,最后使得所有有效等价类均被测试用例覆盖
    设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步使所有无效等价类均被覆盖
    在这里插入图片描述

3、边界值分析法


  • 如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据
  • 如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据
  • 分析规格说明,找出其他可能的边界条件

边界值只是一个特定的数据。例如,文本框需要输入6到18位字符。边界值有: (1)6个字符 (2)18个字符
次边界。边界附近的值,按照系统规定的单位或者计算方式,一个数据的差异。
例如:字符就是,一个字符,没有半个字符的说法;人民币金额,最小单位是0.01;



3.1边界值的选用原则


  • 如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据
  • 如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据
  • 根据规格说明的每个输出条件,使用前面的原则①
  • 根据规格说明的每个输出条件,应用前面的原则②
  • 如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例
  • 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试用例。

二、用例设计中存在的问题


  • 用例按照测试分类:功能(Function)、界面(UI)、性能Performance)、安全(Security)、接口(Interface)
  • 测试项 必须是确定的。测试项中可以不写目的产生的结果,写了不算错
  • 身份证号业务知识,最后一位是校验码(机密)(0~9,Ⅹ),身份证号(新版和旧版),数字和Ⅹ,并没有字母。例如非法的身份证号:310112198902301542
  • 测试项一般只写一个测试目的。测试目的必须是明确的,不能一次测试多个点。测试中,一个反向的(无效等价类)测试数据,只要违反一个需求。例如非法的身份证号310112198922301542
  • 依赖用例。下游的用例依赖上游的用例(已经存在的测试用例),用例依赖可以跨越模块(A设计员可能会依赖B设计员的测试用例)
  • 测试步骤。表明操作的对象和方式,数据
  • 测试数据。没有数据:空着不写;例如输入要求不为空,不输入就不写(须在测试项中标注某一个内容为空)。如果要对空格进行测试,( 数据 )(建议不要将空格放在数据的最前面或者最后面)。(123 456)
  • 测试结果。不执行 就不填
  • 用例中要不要显示正向或者反向:不需要
  • 等价类划分。不要出现重复的情况,也不要出现缺失的输入部分。

三、实战案例


案例


  • 一个程序读入3个整数,把这3个数值看作一个三角形的3条边的长度值。
  • 这个程序会给出弹窗提示信息,说明这个三角形是普通的、是等腰的、是直角的、还是等边的,以及相应的错误提示信息。
    在这里插入图片描述
    测试用例

测试用例编号测试项依赖用例测试步骤输入数据预期结果测试结果
Test Case_DBXPD_open_0001打开多边形判断程序1、使用谷歌浏览器打开判断程序页面打开判断程序首页,并且显示选择多边形的形状
Test Case_DBXPD_xuanze_0001打开三边形判断页面1、在首页中点击 单选按钮 【三边形】大砍三边形的判断页面,有三边形的示例图,还有三个文本框供输入数据
Test Case_DBXPD_panduan_0003两边之和小于第三边1、第一条边长输入:1;2、第二条变长输入:2;第三条边长输入:4;4、点击【提交】按钮1 2 4弹窗提示:不能构成三角形。
Test Case_DBXPD_panduan_0004两边之和等于第三边1、第一条边长输入:1;2、第二条边长输入:2;第三条边长输入:3;4、点击【提交】按钮1 2 3弹窗提示:不能构成三角形。
Test Case_DBXPD_panduan_0005三条边组成直角三角形1、第一条边长输入:3;2、第二条边长输入:4;第三条边长输入:5;4、点击【提交】按钮3 4 5弹窗提示:直角三角形。
Test Case_DBXPD_panduan_0006边长输入为01、第一条边长输入:0;2、第二条边长输入:4;第三条边长输入:5;4、点击【提交】按钮0 4 5弹窗提示:边长输入错误
Test Case_DBXPD_panduan_0007

作业
写出四边形和五边形的测试用例


推荐阅读
  • 本文详细介绍了 org.apache.commons.io.IOCase 类中的 checkCompareTo() 方法,通过多个代码示例展示其在不同场景下的使用方法。 ... [详细]
  • 深入理解Redis的数据结构与对象系统
    本文详细探讨了Redis中的数据结构和对象系统的实现,包括字符串、列表、集合、哈希表和有序集合等五种核心对象类型,以及它们所使用的底层数据结构。通过分析源码和相关文献,帮助读者更好地理解Redis的设计原理。 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
  • FinOps 与 Serverless 的结合:破解云成本难题
    本文探讨了如何通过 FinOps 实践优化 Serverless 应用的成本管理,提出了首个 Serverless 函数总成本估计模型,并分享了多种有效的成本优化策略。 ... [详细]
  • JavaScript 基础语法指南
    本文详细介绍了 JavaScript 的基础语法,包括变量、数据类型、运算符、语句和函数等内容,旨在为初学者提供全面的入门指导。 ... [详细]
  • 本文探讨了在Java多线程环境下,如何确保具有相同key值的线程能够互斥执行并按顺序输出结果。通过优化代码结构和使用线程安全的数据结构,我们解决了线程同步问题,并实现了预期的并发行为。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 本次考试于2016年10月25日上午7:50至11:15举行,主要涉及数学专题,特别是斐波那契数列的性质及其在编程中的应用。本文将详细解析考试中的题目,并提供解题思路和代码实现。 ... [详细]
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • 本文将详细探讨Linux pinctrl子系统的各个关键数据结构,帮助读者深入了解其内部机制。通过分析这些数据结构及其相互关系,我们将进一步理解pinctrl子系统的工作原理和设计思路。 ... [详细]
  • 在现代Web应用中,当用户滚动到页面底部时,自动加载更多内容的功能变得越来越普遍。这种无刷新加载技术不仅提升了用户体验,还优化了页面性能。本文将探讨如何实现这一功能,并介绍一些实际应用案例。 ... [详细]
  • 本文介绍了一个SQL Server自定义函数,用于从字符串中提取仅包含数字和小数点的子串。该函数通过循环删除非数字字符来实现,并附带创建测试表、存储过程以演示其应用。 ... [详细]
  • 基于JQuery实现的评分插件
    本文介绍了一个使用JQuery创建的交互式评分控件。当用户将鼠标悬停在星星上时,左侧的星星会变为实心,右侧保持空心,并显示对应的评分等级;移开鼠标后,所有星星恢复为空心状态。 ... [详细]
  • 福克斯新闻数据库配置失误导致1300万条敏感记录泄露
    由于数据库配置错误,福克斯新闻暴露了一个58GB的未受保护数据库,其中包含约1300万条网络内容管理记录。任何互联网用户都可以访问这些数据,引发了严重的安全风险。 ... [详细]
author-avatar
漫猪傻滑_679
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有