【笔记】黑盒测试技术

黑盒测试技术

黑盒测试(数据驱动测试或基于规范的测试),确认测试、系统测试、验收测试都采用黑盒测试。黑盒测试只有两种结果,测试成功和失败。
黑盒测试能发现以下几类错误
1功能不对或遗漏 2界面错误 3数据结构或外部数据库访问错误 4性能错误 5初始化和终止错误
黑盒测试对程序的功能性测试具有以下要求
1每个软件特性必须被一个测试用例或一个被认可的异常所覆盖
2利用数据类型和数据值得最小集测试
3利用一系列真是的数据类型和数据值运行,测试超负荷及其他“最坏情况”的结果
4测试影响性能的关键模块,如基本算法、精度、时间、容量等是否正常

优点:
1有针对性地寻找问题,并且定位问题更准确
2黑盒测试可以证明产品是否达到用户要求的功能,符合用户的工作要求
3能重复执行相同的动作,测试工作中最枯燥的部分可交由机器完成
缺点:
1需要充分了解产品用到的技术,测试人员需要具有较多的经验
2在测试过程中很多都是手工测试操作
3测试人员要负责大量文档、报表的编制和整理工作

黑白盒比较
1已知产品的因素
黑:已知产品的功能设计规格,可以通过测试证明每种实现的功能是否符合要求
白:已知产品内部工作结构,可以通过测试证明每种内部操作是否符合设计规格要求,以及所有内部成分是否经过检查
2检查测试的主要内容
黑:是否有不正确或遗漏的功能?
在接口上,输入是否能正确地接收?能否输出正确的结果?
是否有数据结构错误或外部信息访问错误?
是否有初始化或终止性错误?
白:对程序模块的所有独立的执行路径至少测试一遍
对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测试一遍
在循环的边界和运行的界限内执行循环体
3静态测试方法
黑:文档测试,特别是产品需求问文档、用户手册、帮助文档的审查
白:走查、复审、评审程序源代码、数据字典、系统设计文档、环境设置、软件配置项等
4动态测试方法
黑:通过数据输入并运行程序来检验输出结果,如功能测试、验收测试和一些性能测试等
白:通过驱动程序来调用,如进行单元测试、集成测试和部分性能测试等

黑盒测试的方法
种类:等价类划分法;边界值分析法;因果图法;功能图分析法;场景设计法;错误推断法;决策表;正交试验法

等价类划分法:把所有可能的输入数据,即程序输入域划分为若干个互不相交的子集,成为等价类,然后从每个等价类中选取少数具有代表性的数据作为测试用例,进行测试。所谓等价类是指输入域的某个互不相交的子集,无冗余性。
划分等价类:有效和无效等价类
常用的等价类划分原则(1按区间划分 2数值 3数据集合 4按限制条件或规则 5细分等价类)
等价类划分测试用例设计
为每个等价类设定一个唯一的编号
设计一个新的测试用例,尽可能多地覆盖尚未覆盖的有效等价类,重复这一步,直到测试用例覆盖了所有的有效等价类。
设计一个新的测试用例,并使其覆盖并且只覆盖一个还没有被覆盖的无效等价类,重复这一步,直至测试用例覆盖了所有的无效等价类

边界值分析法
仅用于考察正处于等价划分边界或在边界附近的状态,选择输入和输出等价类的边界,选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是玄虚等价类中的典型值或任意值作为测试数据
典型的边界值分析包括IF语句中的判别值、定义域、域值边界、空或畸形输入等
常见边界值:
屏幕上光标在最左上、右下的位置
报表的第一行和最后一行
数组元素的第一个和最后一个
循环的第0次、第1次...最后一次
测试做包含的边界检验有几种类型:数字、字符、位置、大小、方位、尺寸、空间等
边界值分析用输入变量的最小值(min)、稍大于最小值(min+)、域内任意值(nom)、稍小于最大值(max-)和最大值(max)来做设计用例
对于一个m变量的程序,边界值分析测试会产生4n+1个测试用例
健壮性边界值测试:是边界值分析的一种扩展,变量除了取以上五个之外,还要考虑采用一个略超过最大值(max+)以及一个略小于最小值(min-)的取值,看看超过极限值时系统会出现什么情况。会产生6N+1个测试用例
运用边界值分析法进行测试设计时,应遵循以下一些原则:
1如果出入条件对取值范围进行了限定,则应以边界内部以及刚超出取值范围的值最为测试用例
2如果对取值的个数进行了界定,则应分别以最大、稍小于最大、稍大于最大声、最小稍小于最小、稍大于最小的个数最为测试用例
3对于输出条件,同样可以应用上面提到的两条原则来进行测试用例设计
4如果程序规格说明书中指明输入或者输出域是一个有序的集合,如顺序文件、表格等,则应注意玄虚有序集合中的第一个和最后一个元素作为测试用例。
5程序中使用了一个内部数据结构则应选择这个内部数据的边界上的值作为测试用例
6分析规格说明,找出其他可能的边界条件

因果图法
是一种适合于描述对于多种条件的组合、相应产生多个动作的形式的方法,利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。(等价类划分方法和边界值分析法都着重考虑输入条件但没有考虑输入条件的各种组合、输入条件之间的相互制约关系)因果图能帮助我们按照一定的步骤选择一组高校的测试用例,同事还能支出程序规范描述中存在的问题。因果图法最终生成的是判定表,适合于检查程序输入条件的各种组合情况。
关系符号:恒等、非、或、与
Ci表示原因,通常位于图的左部;ei表示结果,通常位于图的右部。Ci和ei均可取值0或1,0表示 某状态不出现,1表示某状态出现。
约束:E余数符号(异)a和b中至多有一个可能为1;I约束符号(或)abc中至少有一个必须是1;O约束符号(唯一)ab不许有一个且仅有一个是1;R约束符号(要求)a是1,b必须是1;M约束符号(强制)a是1,b必须是0。
利用因果图生成测试用例基本步骤:
1确定软件规格中的原因和结果。分析规格说明中哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符
2确定原因和结果之间的逻辑关系。分析软件贵和说明中的原因,找出原因与结果之间原因与原因之间对应的关系,根据这些关系画出因果图
3确定因果图中的各个约束。由于语法或环境的限制,有些原因与原因之间,原因与结果之间的组合情况下不可出现。为标明这些特殊情况,在因果图上用一些标记号表明约束或限制条件
4把因果图转行为决策表
5根据决策表设计测试用例

功能图分析法(???)
状态迁移图:用于表示输入数据序列以及相应的输出数据,在状态迁移图中,由输入数据和当前状态决定输出数据和后续状态(状态看成是语句,状态的迁移看成是控制流)
逻辑功能模型:用于表示在状态中输入条件和输出条件之间和对应关系,逻辑功能模型只适合于描述静态说明,输出数据仅由输入数据决定(输入看成是条件或者原因,输出相当于动作或结果)
(功能图分析方法中需要用到逻辑覆盖和路径测试的概念及方法,属于白盒测试)

场景设计法(与白盒测试的基路径测试相似)
1构造基本流和备选流
2根据基本流和备选流构造场景
3根据场景设计测试用例
4对每个测试用例补充必要的测试数据
基本流:从系统某个初始状态开始,经一系列状态后达到终止状态的过程中最主要的一个业务流程。对于一个事件流程图而言,基本流只有一个。
备选流:以基本流为基础,在经过的每个判定节点处满足不同的出发条件而导致的其他时间流。只是业务执行的一个执行片段,起始和终止节点流具有多种形式
起始节点从基本流的某个判定节点开始
起始节点从其他备选流的某个判定节点开始
终止节点是基本流上的某个状态
终止节点是其他的系统终止状态
场景:基本流与备选流的有序集合

错误推测法
利用直觉和经验猜测出出错的可能类型,列举出程序中所有可能的错误和容易发生错误的情况,基本思想是列举出可能犯的错误或错误易发情况的清单,然后依据清单来编写测试用例,并且在阅读规格说明时联系程序员可能做的假设来确定测试用例。即凭借人们对过去所做测试工作结果的分析,对所揭示的缺陷的规律性做直觉的推测来发现缺陷。一般来说可以从以下方面来进行错误推测
1软件产品以前版本中存在的问题
2受到语言、操作系统、浏览器等环境的限制而可能带来的问题
3由模块间关联所联想到的测试,由于软件缺陷修复可能带来的问题

决策表法
决策表是把作为条件的所有输入的各种组合值以及对应输出值都罗列出来而形成的表格。若回答肯定,标注“Y”(取真值),若回答否定“N”(取假值)。
决策表通常有条件桩、条件项、动作桩和动作项4个部分组成
条件桩:列出了问题所有条件。通常认为列出的条件的次序无关紧要
动作桩:列出了问题规定可能采取的操作,这些操作的排列顺序没有约束
条件项:列出针对它在列条件的取值
动作项:列出在条件项的各种取值情况下应该采取的动作
规则:任何一个条件组合的特定取值及其相应要执行的操作称为规则。在决策表中贯穿条件项和动作项的一列就是一条规则,有n个条件,每个条件有两个取值(0、1),故有2的n次方条规则。决策表中有多少条条件取值就有多少条规则。
动作项和条件项紧密相关,指出在条件项的各组取值情况下应采取的动作。在决策表中贯穿条件项和动作项的一个条件组合的特定取值及其相应要执行的操作称为一条规则。
构造决策表可以采用一下5个步骤
1列出所有的条件桩和动作桩
2确定规则的个数
3填入条件项
4填入动作项得到初始决策表
5简化决策表,合并相似规则(若表中有两条或两条以上规则具有相同的动作,并且在条件项之间存在即为相似的关系,便可以合并)
决策表最突出的优点是,他能把复杂的问题按各种可能的情况一一列举出来,简明而易于理解,同事可以避免遗漏。因此利用决策表可以设计出完整的测试用例集合。使用决策表设计测试用例,可以把条件揭示为输入,把动作解释为输出。
正交试验设计法
依据Galois理论,从大量的(实验)数据(测试例)中挑选适量的、具有代表性点(例),从而合理地安排实验(测试)的一种科学实验设计方法。正交试验方法是使用已经创建的正交表格来安排试验并运行数据分析的一种方法,目的是用最少的测试用例达到最高的测试覆盖率。
步骤:
1提取功能说明,构造因子状态表:把影响试验指标的条件称为因子,而影响试验因子的条件称为因子的状态。首先要根据被测试软件的规格说明书找出影响其功能实现的操作对象和外部因素,把他们当做因子,而把各个因子的取值当做状态对软件需求规格说明中的功能要求进行划分,把整体的概要性的功能要求进行层层分解与展开,分解成具体的具有相对独立性的基本的功能要求。
2加权筛选,生成因素分析表:对因子与状态的选择可按其重要程度分别加权,可根据各个因子及状态的作用大小出现频率的大小、测试的需要确定权值的大小。
3利用正交表构造测试数据集

黑盒测试的依据和流程
黑盒测试也称为功能测试、行为测试或数据驱动测试,在测试时,把程序看作一个不能打开的黑盒,测试人员完全不考虑内存内部的逻辑结构和内部特性,只依据程序的需求规格需求说明书,检查程序的功能是否符合他的功能说明。因此,黑盒测试是基本测试。主要用于软件确认测试。针对软件界面和软件功能进行测试,多应用于测试过程的后期。是穷举输入测试。它是一种更加软件的需求,设计文档,模拟客户场景随系统进行的实际测试。主要为发现以下几类错误:是否出现功能错误或遗漏、在几口上能否进行正确的输入与输出;是否存在数据结构错误或外部数据库访问错误;性能上是否能满足要求、是否有初始化或中执行错误。
所以黑盒测试实际上是检查一下几点是否满足要求:
1正确性:计算结果,命名方面
2可用性:是否可以满足软件的需求说明
3边界条件:输入部分的边界值
4性能:程序的性能取决于两个因素:运行速度的快慢和需要消耗的系统资源(如果有问题,意味着程序的算法不好,结构不好,或者设计有问题。在开发阶段纪要考虑到软件性能问题)
5压力测试:多用户情况可以考虑使用压力测试工具,查看服务器CPU使用率,内存占用情况,如果有必要可以模拟大量数据输入,对硬盘的影响等信息
6错误恢复:错误处理,页面数据验证,包括突然间断点,输入错误数据等
7安全性测试:特别是一些商务网站,或者跟钱有关,或者和公司秘密有关的Web更是需要这方面的测试
8兼容性:不同浏览器,不同应用程序版本在实现功能时的表现
9应用黑盒测试技术,能够设计出满足下述标准的测试用例集
所设计出的测试用例能够减少为达到合理测试所需要设计的测试用例总数
所涉及出的测试用例能够告诉我们,是否存在某些类型的错误,而不仅仅指出与特定测试相关的错误是否存在

黑盒测试的流程
1测试计划
根据用户需求报告中关于功能要求和性能指标的规格说明书,定义相应的测试需求报告,即定制黑盒测试的最高标准,以后所有的测试工作都将围绕着测试需求进行,符合测试需求的应用程序即是合格的,反之即是不合格的,同时还要适当选择测试内容,合理安测试人员,测试时间及测试资源等。
2测试设计
将测试计划阶段定制的测试需求分解、细化为若干个可执行的测试过程,并为每个测试过程选择适当的测试用例(测试用例选择的好坏直接影响到测试结果的有效性)
3测试开发
简历可重复使用的测试用例
4测试执行
照设计的测试用例执行测试,并对所发现的缺陷进行跟踪管理
测试(作为测试用例测试的补充)
执行一般由单元测试、集成测试、系统测试及回归测试等步骤组成,测试人员应本着科学负责的态度一步一个脚印地进行测试
5测试评估
结合量化的测试覆盖域及缺陷跟踪报告,对于应用软件的质量和开发团队的工作进度及工作效率进行综合评价

猜你喜欢

转载自www.cnblogs.com/chancexue/p/13388352.html