当前位置: 首页 > news >正文

谈谈黑盒测试方法

谈谈黑盒测试方法

文章目录

  • 谈谈黑盒测试方法
  • **一、等价类划分**
  • **二、边界值分析法**
  • 三、场景法
  • **四、错误推测法(白话:反推法)**

一、等价类划分

概念:

等价类划分法是一种典型的、重要的黑盒测试方法,是指某个输入域的子集。在该子集合中,所有的输入数据对于揭露软件中的错误都是等效的。

有效等价类:有意义的输入构成的集合,对需求规格说明书来说是合法的。

**无效等价类:**不满足需求的输入。

例如:学生成绩录入系统,分数X为0到100的整数。

有效等价类:0≤X≤100(50)

无效等价类:X≤0(-5),X≥100(200)

如果没有整数要求,还要考虑小数,非数字(字母,汉字,特殊字符)和空值。

但只按照等价类划分还不够,还要考虑边界值。

二、边界值分析法

边界值分析法是对等价类划分法的补充,一般从等价类的边界寻找错误。

边界值分析法的基本思路:

正好等于边界值,刚好小于边界值,刚好大于边界值作为测试数据。

特殊:0/空是特殊的值,在考虑边界值的时候也要考虑这个特殊值。

举个例子

边界值思想的体现:

网上购物,库存12。

数量=11:下单成功;数量=12:下单成功;数量=13:下单失败,并给出提示。

再比如:学生成绩录入系统,分数X为0到100的整数。

上边界:99,100,101

下边界:-1,0,1

所以等价类+边界值的取值范围为:-5,-1,0,1,50,99,100,101,200

因此可分成两个用例:有效输入:0,1,50,99,100;无效输入:-5,-1,101,200。

再例如:微信红包,最小0.01,最大200。

等价类+边界值的取值范围:-100.00,0,0.01,0.02,50.00,199.99,200,200.01,300.00。

三、场景法

基于用户场景梳理业务逻辑,再挑选合适的方法设计测试用例,尽可能真实全部的模拟用户操作。

场景法主要基于:

1、业务需求层面:对所测软件的重要功能、业务逻辑(系统要干什么、怎么去实现这个过程的)和行业背景进行深入理解。

2、技术层面需求:基于等价类划分

  • 有效等价类:模拟用户正确操作;
  • 无效等价类:模拟用户错误的操作;

3、核心概念

基本流(正确流,有效流):模拟用户正确的操作流程。

备选流(错误流,无效流):模拟用户错误的操作流程。

举个例子,比如银行ATM取款

基本流:正确插入银行卡,点击取款,输入正确的密码,输入正确的金额,确认,退卡。

  • 备选流1:输入错误的密码
  • 备选流2:输入超过余额的金额
  • 备选流3:卡插反了
  • 备选流4:退卡

再根据每个场景来设计测试用例。

四、错误推测法(白话:反推法)

基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性地设计测试用例的方法。它的要素公共有三点,分别为:

经验、知识、直觉。

举个例子

题目:注册一个邮箱

设计:

1、校验中特殊字符空格的处理?
2、密码校验中的大小写?
3、姓名中的特殊字符?
4、密码发送是否明文

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • c语言中“qsort函数”和“结构体成员访问变量”
  • QTPropertyBrowser属性表控件:新增自定义属性类型
  • 【专题】2024中国生物医药出海现状与趋势蓝皮书报告合集PDF分享(附原数据表)
  • 数据结构|二叉搜索树
  • 基于JAVA+SpringBoot+Vue的医院资源管理系统
  • JS领域的AI工程利器分享
  • 【CSS in Depth 2 精译_036】5.6 Grid 网格布局中与对齐相关的属性 + 5.7本章小结
  • BFS 解决多源最短路问题
  • 不同编程语言的互相调用
  • STL简介
  • 数据仓库:构建企业智能化决策的基石
  • LEAN 赋型唯一性(Unique Typing)之 Church-Rosser 定理 (Church-Rosser Theorem)及 赋型唯一性的证明
  • vscode 配置rust格式化的正确方法
  • 【Node.js】RabbitMQ 不同交换器类型的使用
  • Vite 中的环境变量使用详解
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • Github访问慢解决办法
  • gulp 教程
  • JS实现简单的MVC模式开发小游戏
  • Travix是如何部署应用程序到Kubernetes上的
  • Vue学习第二天
  • 分类模型——Logistics Regression
  • 搞机器学习要哪些技能
  • 技术胖1-4季视频复习— (看视频笔记)
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 前端面试题总结
  • 深入浅出Node.js
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 用Canvas画一棵二叉树
  • Android开发者必备:推荐一款助力开发的开源APP
  • scrapy中间件源码分析及常用中间件大全
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • #if等命令的学习
  • #前后端分离# 头条发布系统
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (定时器/计数器)中断系统(详解与使用)
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (四) Graphivz 颜色选择
  • (四)JPA - JQPL 实现增删改查
  • (贪心) LeetCode 45. 跳跃游戏 II
  • (小白学Java)Java简介和基本配置
  • (原)Matlab的svmtrain和svmclassify
  • (转) Face-Resources
  • (轉)JSON.stringify 语法实例讲解
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .axf 转化 .bin文件 的方法
  • .net 调用php,php 调用.net com组件 --
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .NET关于 跳过SSL中遇到的问题