热门标签 | 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 黑盒测试的依据和流程

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

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

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


推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 无损压缩算法专题——LZSS算法实现
    本文介绍了基于无损压缩算法专题的LZSS算法实现。通过Python和C两种语言的代码实现了对任意文件的压缩和解压功能。详细介绍了LZSS算法的原理和实现过程,以及代码中的注释。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • MyBatis错题分析解析及注意事项
    本文对MyBatis的错题进行了分析和解析,同时介绍了使用MyBatis时需要注意的一些事项,如resultMap的使用、SqlSession和SqlSessionFactory的获取方式、动态SQL中的else元素和when元素的使用、resource属性和url属性的配置方式、typeAliases的使用方法等。同时还指出了在属性名与查询字段名不一致时需要使用resultMap进行结果映射,而不能使用resultType。 ... [详细]
  • 数据对比分析图PPT(127.0.0.1表示什么)的使用方法和意义
    本文介绍了数据对比分析图PPT的使用方法和意义,解释了127.0.0.1的含义,并提供了相关资源下载。同时还讨论了目标管理的概念和MBO的实施方法。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
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社区 版权所有