热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

大二汪的软件测试黑盒测试技术

第四章-黑盒测试技术4.1黑盒测试技术基本概念4.2黑盒测试的方法等价类划分法边界值分析法因果图法场景设计法错误推测法决策表法正交试验设计法4.3黑盒测试的依据和流程4.1黑盒测试


第四章-黑盒测试技术

  • 4.1 黑盒测试技术基本概念
  • 4.2 黑盒测试的方法
    • ==等价类划分法==
    • 边界值分析法
    • 因果图法
    • 场景设计法
    • 错误推测法
    • 决策表法
    • 正交试验设计法
  • 4.3 黑盒测试的依据和流程


4.1 黑盒测试技术基本概念

黑盒测试对程序的功能性测试要求:
(1)每个软件特性必须被一个测试用例或一个被认可的异常所覆盖。
(2)利用数据类型和数据值的最小集测试。
(3)利用假想的数据类型和数据值运行,测试处理不规则输入的能力
(4)利用一系列真实的数据类型和数据值运行,测试超负荷及其他“最坏情况”的结果。
(5)测试影响性能的关键模块,如基本算法、精度、时间、容量等是否正常。


4.2 黑盒测试的方法


等价类划分法

完全不考虑程序的内部结构,只根据程序规格说明书对输入范围进行划分,把所有可能的输入数据,即程序输入域划分为若干个互不相交的子集,称为等价类,然后从每个等价类中选取少数具有代表性的数据作为测试用例,进行测试。

一、等价类划分方法简述:
首先应在分析需求规格说明的基础上划分等价类,再根据等价类设计出测试用例。

等价类即输入域的某个互不相交的子集,所有等价类的并集为整个输入域。即整个输入域提供了一种形式的完备性,而互不相交则可保证一种形式的无冗余性
等价类中的元素有一些共同的特点:如果用等价类中的一个元素作为测试数据进行测试不能发现程序中的故障,那么使用集合中的其他元素进行测试也不可能发现故障,表现了其代表性等效性

二、划分等价类:


  • 有效等价类:指符合程序规格说明书,有意义的、合理的输入数据所构成的集合。
    利用有效等价类,可以检验程序是否实现了规格说明预先规定的功能和性能。在具体问题中,有效等价类可以是一个或是多个
  • 无效等价类:指不符合程序规格说明书,无意义的或不合理的输入数据所构成的集合。
    利用无效等价类,可以检查软件功能和性能的实现是否有不符合规格说明要求的地方。对于具体的问题,无效等价类至少应有一个,也可能有多个。

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


  • 按区间划分:如果规格说明规定了输入条件的取值范围或值得数量,则可以确定一个有效等价类和两个无效等价类。

如果软件规格说明“学生允许选修5到8门课”,则一个有效等价类可取“选课5到8门”,无效等价类可取“选课不足5门”和“选课超过8门”。



  • 按数值划分:如果规格说明规定了一组输入数据,而且程序要对每一个输入值分别进行处理,则可为每一个输入值确立一个有效等价类,针对这组值确立一个无效等价类,它是所有不允许输入值的集合。

例:程序输入x取值于一个固定的枚举类型{1,3,7,15},且程序 中对这4个数值分别进行了处理,则有效等价类为x=1、x=3、 x=7、x=15,无效等价类为x≠1,3,7,15的值的集合。



  • 按数值集合分类:如果规格说明规定了输入值的集合,则可确定一个有效等价类和一个无效等价类(该集合有效值之外)。

例如,某程序要求输入TOM、DICK或HAPPY这些名字之一,那么定义一个等价有效类(采用有效名字之一)和一个无效等价类(采用有效名字之外的名字,如JOE)



  • 按限制条件或规则划分:如果规格说明规定了输入数据必须遵守的规则或限制条件,则可以确定一个有效等价类(符号规则)和若干个无效等价类(从不同角度违反规则)。

例如,若某个输入条件说明了一个必须成立的情况(如输入数据必须是数字),则可划分一个有效等价类(输入数据是数字)和一个无效等价类(输入数据为非数字)



  • 细分等价类:等价类中的各个元素在程序中的处理若不相同,则可将此等价类进一步划分为更小的等价类。

在确立了等价类之后,可按下表的形式列出所有划分出的等价类表。
在这里插入图片描述

四、划分等价类的要求:


  1. 测试完备合理,避免冗余。
  2. 划分输入条件、有效等价类和无效等价类时最重要的是将集合划分为互不相交的一组子集。
  3. 整个集合完备
  4. 子集互不相交,保证一种形式的无冗余性
  5. 同一类中标识(选择)一个测试用例,在同一等价类中,往往处理相同,相同处理映射到“相同的执行路径”。

五、等价类划分测试用例设计
(1)首先为等价类表中的每一个等价类分别规定一个唯一的编号。
(2)设计测试用例,尽量覆盖尚未覆盖的有效等价类。重复该步骤,直到所有的有效等价类均被覆盖。
(3)设计测试用例,仅覆盖一个尚未覆盖的无效等价类。重复该步骤,直到所有的无效等价类均被覆盖。

六、等价类测试存在问题:
(1)规格说明往往没有定义无效测试用例的期望输出应该是什么样的。
(2) 是强类型语言没有必要考虑无效输入。


边界值分析法

在进行等价类分析时,往往先要确定边界。边界确定清楚了,等价类就自然产生了。
边界值分析方法是对等价类划分法的补充,它不是选择等价类的任意元素,而是选择等价类边界的测试用例,选取正好等于、刚刚大于或刚刚小于的边界值,而不是选取等价类中的典型值或任意值。在测试中,会将两者方法结合起来共同使用。
边界值分析不是从某等价类中随便挑一个作为代表,而是使等价类的每个边界作为测试条件。
边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。

一、边界值分析方法简述:
边界值分析法用于列出单元功能、输入、状态及控制的合法边界值非法边界值,对数据进行测试,检查用户输入的信息、返回结果以及中间计算结果是否正确,补充等价划分的测试用例设计技术。

四、边界值分析测试:
边界值分析利用输入变量的最小值(min)稍大于最小值(min+)域内任意值(nom)、**稍小于最大值(max-)最大值(max)**来设计测试用例。
对于一个含有n个变量的程序,采用边界值分析法测试程序会产生4n+1个测试用例。

边界值设计原则:
(1)如果输入条件规定了取值范围,应以该范围的边界内及刚刚超范围的边界外的值作为测试用例。例如:以a和b为边界,测试用例应当包含a和b及略大于a和略小于b的值。
(2)若规定了值的个数,分别以最大、最小个数及稍小于最小、稍大于最大个数作为测试用例。例如:一个输入文件应包括1~255个记录,则测试用例可取1和255,还应取0及256等。
(3)针对每个输出条件使用前面的第1和2条原则。
(4)如果程序规格说明中提到的输入或输出域是个有序的集合(如顺序文件、表格等),就应注意选取有序集的第一个和最后一个元素作为测试用例。


因果图法

一、因果图方法简述:
因果图法是一种适合于多种条件的组合、相应产生多个动作的情况的方法,利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
因果图法最终生成的是判定表,适合于检查程序输入条件的各种组合情况。

二、因果图的关系符号和约束:
(1)关系符号:
通常在因果图中,用Ci表示原因,Ei表示结果,各结点表示状态,可取值“0”或1”。“0”表示某状态不出现,“1”表示某状态出现。在这里插入图片描述
(2)约束:输入状态之间存在的依赖关系。


  • E:(异)余数符号。表示a和b之间至多只能一个为1,不能同时为1。
  • I:(或)约束符号。a,b,c之间至少有一个为1,不能同时为0。
  • O:(唯一)约束符号。a和b必须有一个且只有一个为1
  • R:(要求)约束符号。a为1时,b必须为1,即不可能a为1时b是0。
  • M:(强制)约束符号。a为1时,b强制为0
    在这里插入图片描述
    三、因果图法测试用力的设计步骤:
    在这里插入图片描述

场景设计法

一、场景法描述:
场景设计法的核心是事件流场景。其中事件流包括基本流和备选流

用例场景用来描述流经用例的路径,从用例开始到结束遍历这条路径上所有基本流和备选流。

要解决的问题:①如何获取基本流和备选流
②当路径上存在数量众多的备选流时,如何处理场景爆炸的问题

二、一般步骤:


  1. 构造基本流和被选修
  2. 根据基本流和备选流构造场景
  3. 根据场景设计测试用例
  4. 对每个测试用例补充必要的测试数据

三、测试过程:
如图,包括已知的基本流和四个备选流,共4个分支节点,其中备选流124涉及的是条件判定结点,备选流3涉及的是循环的情况。
在这里插入图片描述

(1)基本流:基本流是从系统某个初始态开始,经一系列状态后到达终止状态的过程中最主要的一个业务流程。(基本流只有一个)
(2)备选流:备选流是以基本流为基础,在经过的每个判定节点处满足不同的触发条件而导致的其他事件流。(备选流的起始和终止结点具有多种形式,可以有多个)
(3)场景:基本流和备选流的有序集合。场景中应至少包含一条基本流。(场景中包含的事件流数目越大,则场景越复杂,测试越困难)

基本流与备选流的区别在这里插入图片描述


错误推测法

错误推测法是基于测试人员的经验和直觉来推测系统中可能存在的各种缺陷,有针对性地设计测试用例的方法。这里的经验和直觉来自测试人员对被测软件系统特性的了解和以往在测试工作中的总结。


决策表法

决策表并不是因果图的一个辅助工具,在一个程序中,如果输入输出比较多,输入之间和输出之间相互制约的条件比较多,在这种情况下应用决策表很合适,它可以很清楚地表达它们之间的各种复杂关系。

一、决策表法简述:
决策表是把作为条件的所有输入的各种组合值以及对应输出值都罗列出来而形成的表格。它能够将复杂的问题按照各种可能的情况全部列举出来,简明并可避免遗漏。因此,利用决策表能够设计出完整的测试用例集合。

决策表由以下四部分组成:


  • 条件桩:列出问题的所有条件
  • 条件项:针对条件桩给出的条件列出所有可能的取值
  • 动作桩:列出问题规定的可能采取的操作
  • 动作项:指出在条件项的各组取值情况下应采取的动作

将任何一个条件组合的特定取值及相应要执行的动作称为一条规则。在判定表中贯穿条件项和动作项的一列就是一条规则

二、决策表的构造及化简
构造决策表的步骤:


  1. 列出所有的条件桩和动作桩
  2. 确定规则的个数
  3. 填入条件项
  4. 填入动作项,得到初始决策表
  5. 简化决策表,合并相似规则

对于n个条件的决策表,相应有2n规则。
当n较大时,决策表很庞大。实际使用决策表时,常常先将它简化。决策表的简化以合并相似规则为目标,即若表中有两条或两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并。合并后的条件项用符号“-”表示,说明执行的动作与该条件的取值无关,称为无关条件在这里插入图片描述


正交试验设计法

一、正交试验设计法简述:
正交试验方法是依据Galois理论,从大量的数据(测试用例)中挑选适量的、有代表性的点(用例),从而合理地安排实验(测试)的一种科学实验设计方法。

正交试验方法是使用已经创建的正交表格来安排试验并运行数据分析的一种方法,目的是用最少的测试用例达到最高的测试覆盖率

因素(因子):输入的条件(变量)
水平(因子的状态):条件的可能取值
一般用L表示正交表,如L8(27)中的7为因子数(即正交表的列数),2为因子的水平数,8为测试次数(即正交表的行数)。

二、正交试验设计发的设计步骤:
(1)提取功能说明,构造因子状态表
(2)加权筛选,生成因素分析表
(3)利用正交表构造测试数据集


4.3 黑盒测试的依据和流程

黑盒测试也称为功能测试、行为测试或数据驱动测试,在测试时,把程序看作一个不能打开的黑盒,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。

黑盒测试注重于测试软件的功能性需求,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试,多应用于测试过程的后期

等价类划分和边界值分析:最常用、最简单有效
因果图法和决策表法:适于程序的功能说明中含有输入条件的组合情况
场景法:适于业务流清晰的情况
正交试验法:适于多参数多配置的情况


推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 深入解析:手把手教你构建决策树算法
    本文详细介绍了机器学习中广泛应用的决策树算法,通过天气数据集的实例演示了ID3和CART算法的手动推导过程。文章长度约2000字,建议阅读时间5分钟。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 本文详细探讨了网站流量统计中常用的三个关键指标:页面浏览量(PV)、独立访客数(UV)和独立IP数(IP)。通过分析这些指标的定义、计算方法及其应用场景,帮助网站运营者更好地理解用户行为,优化网站内容与用户体验。 ... [详细]
author-avatar
颓废胖胖2502908443
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有