热门标签 | 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

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


推荐阅读
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 在金融和会计领域,准确无误地填写票据和结算凭证至关重要。这些文件不仅是支付结算和现金收付的重要依据,还直接关系到交易的安全性和准确性。本文介绍了一种使用C语言实现小写金额转换为大写金额的方法,确保数据的标准化和规范化。 ... [详细]
  • 本文详细介绍了如何构建一个高效的UI管理系统,集中处理UI页面的打开、关闭、层级管理和页面跳转等问题。通过UIManager统一管理外部切换逻辑,实现功能逻辑分散化和代码复用,支持多人协作开发。 ... [详细]
  • 本文探讨了如何在不重新加载URL的情况下,触发WebView的PictureListener.onNewPicture()方法,以实现页面的重新绘制或渲染。 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • Linux设备驱动程序:异步时间操作与调度机制
    本文介绍了Linux内核中的几种异步延迟操作方法,包括内核定时器、tasklet机制和工作队列。这些机制允许在未来的某个时间点执行任务,而无需阻塞当前线程,从而提高系统的响应性和效率。 ... [详细]
  • 虽然SQL因其直观易学的语法受到广泛欢迎,但转向Pandas进行数据处理时,初学者可能会感到不适应。本文旨在通过一系列实例,展示如何在Pandas中实现类似SQL的数据查询功能。 ... [详细]
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社区 版权所有