《软测》期末复习 黑盒测试内容+题型总结

第二章 黑盒测试

2.0预备知识

  • 测试用例的定义:
    (1)测试用例是为特定的目的而设计的一组测试输入、 执行条件和预期的结果。
    (2)测试用例是执行的最小实体。

  • 测试用例的特征:
    (1)最有可能抓住错误的;
    (2)不是重复的、多余的;
    (3)一组相似测试用例中最有效的;
    (4)既不是太简单,也不是太复杂。

  • 测试用例设计原则
    •测试用例的代表性
    能够代表并覆盖各种合理的和不合理的、合法的和非法的、边界的和越界的以及极限的输入数据、操作和环境设置等。
    •测试结果的可判定性
    即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果。
    •测试结果的可再现性
    即对同样的测试用例,系统的执行结果应当是相同的。

  • 测试用例设计步骤

  • 设计用例在软件测试中的作用

  • 🌟题目
    ⭕️ 如何设计一个“好的测试用例?
    一个“好的”测试用例,必须具备以下三个特征:
    1、整体完备性: “好的”测试用例一定是一个完备的整体,是有效测试用例组成的集合,能够完全覆盖测试需求。
    2、等价类划分的准确性: 指的是对于每个等价类都能保证只要其中一个输入测试通过,其他输入也一定测试通过。
    3、等价类集合的完备性: 需要保证所有可能的边界值和边界条件都已经正确识别。

2.1 等价类划分法

  • 2.1.0思想
    •定义:将程序的输入域划分为若干部分,然后从每个部分中选取少数代表性数据当作测试用例。
    •原因:由于实现穷举测试的不可能性,只有从大量的可能数据中选取一部分作为测试用例。
    •效果:经过类别划分后,每一类的代表性数据在测试中的作用都等价于这一类中的其他值。
    •手段:在设计测试用例时,在需求说明的基础上划分等价类,列出等价表,从而确定测试用例。
⚪️2.1.1等价类
  • 等价类的类型
    •有效等价类
    对规格说明而言,有意义、合理的输入数据所组成的集合;
    检验程序是否实现了规格说明预先规定的功能和性能。
    •无效等价类
    对规格说明而言,无意义的、不合理的输入数据所组成的集合;
    检查被测对象的功能和性能的实现是否有不符合规格说明要求的地方。

  • 等价类划分原则
    ①在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类。
    ②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类。
    ③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。
    ④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
    ⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
    ⑥在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步划分为更小的等价类。

🌟2.1.2测试用例设计步骤

(1)确定等价类
(2)建立等价类表,列出所有划分出的等价类在这里插入图片描述
(3)从划分出的等价类中按以下的3个原则设计测试用例:
A 为每一个等价类规定一个唯一的编号
B 设计一个新的测试用例,使其尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。
C 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。在这里插入图片描述

🌟2.1.3测试类型
  • 标准等价类测试(也称一般等价类测试)
    图解:
    在这里插入图片描述
    在这里插入图片描述
  • 健壮等价类测试
    在这里插入图片描述在这里插入图片描述
⚪️2.1.4例题
▫️1)典型

⭕️🌟案例1:电话号码组成
[题]某城市电话号码由三部分组成,分别是:
地区码—— 空白或三位数字;
前 缀—— 非‘0’或非‘1’开头的三位数字;
后 缀—— 4位数字。
假定被测程序能接受一切符合上述规定的电话号码, 拒绝所有不符合规定的电话号码。
[解]
(1)划分等价类、列出等价类表
在这里插入图片描述
(2)根据等价类表设计测试用例在这里插入图片描述
⭕️案例二:日期限定
在这里插入图片描述
在这里插入图片描述

▫️2)包含输入条件和输出条件且可划分为更细的等价类

⭕️🌟案例三:三角形
[题]输入三个整数作为三边的边长构成三角形。当此三角形为一般三角形、等腰三角形、等边三角形时,分别作计算。用等价类划分方法为该程序进行测试用例设计。
[分析]
(1) 输入值域的显/隐式要求:A 整数、B 三个、C 正数、D 两边之和大于第三边、E 三边均不相等、F 两边相等但不等于第三边、G 三边相等;(D~G由输出值域的等价类隐性确定)
(2) 输出值域的等价类:R1={不构成三角形}、R2={一般三角形}、R3={等腰三角形}、R4={等边三角形};
[解]
(1)等价类的划分
在这里插入图片描述
(2)测试用例设计
在这里插入图片描述
在这里插入图片描述

▫️3)等价类划分用文字描述型

⭕️🌟Next Date函数
[题]NextDate函数有三个变量month,day,year的函数,输出为输入日期下一天的日期。如:输入为2007年7月19日,输出为2007年7月20日。要求三个变量都为整数,且满足:
–条件1: 1 ≤month ≤12
–条件2: 1 ≤day ≤31
–条件3: 1912 ≤year ≤2050
[解]在这里插入图片描述
在这里插入图片描述

▫️4)输入条件无需划分

⭕️🌟邮件地址
在这里插入图片描述
在这里插入图片描述

2.2边界值法

  • 2.2.0 思想
    •无数的测试实践表明,大量的故障往往发生在输入定义域或输出值域的边界上,而不是在其内部。因此,针对各种边界情况设计测试用例,通常会取得很好的测试效果。
    •例如,一个循环条件为“≤”时,却错写成“<”;计数器发生少计数一次
    •故障往往出现在输入变量的边界值附近。例如,一个循环条件为“≤”时,却错写成“<”;计数器发生少计数一次。
    •基于可靠性理论中称为“单故障”的假设,即有两个或两个以上故障同时出现而导致软件失效的情况很少,也就是说软件失效基本上是由单故障引起的。
2.2.2-1标准性(一般性)测试

对于一个含有n个变量的程序,保留其中一个变量,让其余的变量取正常值,被保留的变量依次取min、min+、(nom、)max-、max值,对每个变量都重复进行。这样,对于一个有n个变量的程序,边界值分析测试程序会产生4n+1个测试用例。
图解
在这里插入图片描述

2.2.2-2健壮性测试

对于一个含有n个变量的程序,保留其中一个变量,让其余的变量取正常值,被保留的变量依次取min、min+、min-,nom、max-、max, max+值,对每个变量都重复进行。这样,对于一个有n个变量的程序,边界值分析测试程序会产生6n+1个测试用例。
图解
在这里插入图片描述

2.2.2-3最坏情况测试

•最坏情况测试比边界值分析测试以及健壮性测试要彻底,边界值分析测试用例是最坏情况测试用例的真子集。
•N变量函数的最坏情况测试,会产生5n个测试用例,(而边界值分析只产生4n+1个)
图解
在这里插入图片描述

2.2.1-4健壮最坏情况测试

首先对每个变量进行包含略小于最小值min-,最小值min,略高于最小值min+,正常值nom,略低于最大值max-,最大值max,和略大于最大值max+,七个元素集合的测试,然后对这些集合进行笛卡儿积计算,以生成测试用例。
图解
在这里插入图片描述

2.2.2设计原则

•1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
•2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。
• 3)将规则1)和2)应用于输出条件,即设计测试用例使输出值达到边界值及其左右的值。
•4)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
•5)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。
•6)分析规格说明,找出其它可能的边界条件。

🌟2.2.3设计步骤

(1)确定有效等价类与无效等价类(有可能题目条件告知)。
(2)确定边界情况。(通常输入或输出等价类的边界就是应该着重测试的边界情况。)
在这里插入图片描述
(3)基于单缺陷假设设计测试用例
在这里插入图片描述

2.2.4例题

⭕️🌟Next Date函数
NextDate函数包含三个变量month、day和year,函数的输出为输入日期后一天的日期。 要求输入变量month、day和year均为整数值,并且满足下列条件:
• 条件1 1≤ month ≤12
• 条件2 1≤ day ≤31
• 条件3 1912≤ year ≤2050
[解]
(1)划分等价类(如题目条件)
(2)确定边界值
在这里插入图片描述
(3)根据边界值表并基于单缺陷假设设计测试用例
在这里插入图片描述在这里插入图片描述在这里插入图片描述
⭕️找零钱最佳组合🌟
[题 .]假设商店货品价格® 都不大于100元(且为整数),若顾客付款§在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。 假定此商店的货币面值只包括:50元(N50)、10元。
请结合等价类划分法和边界值分析法为上述程序设计 出相应的测试用例。
[解]
⭕️QQ登陆
在这里插入图片描述
在这里插入图片描述
⭕️成绩判断
在这里插入图片描述
⭕️密码框
在这里插入图片描述

2.2.5边界值方法小结:
  • 如果输入条件规定了值的范围,则应取刚到这个范围的边界值,以及刚刚超越这个范围边界的值作为输入数据。
    如:两位整数加法器数的范围为-99到99,则应测试-99,-100和99,100。

  • 输入条件规定了值的个数
    如:(1)姓名要求1到20个字符,要求测试0、1、2个字符和19、20、21个字符;
    (2)某商品信息查询系统,每页最多显示10条商品信息,我们就应该准备商品信息,使能够查询出9、10、11、1、0条 商品记录。

  • 🌟边界值和等价类区别:边界值分析不是从某等价类中随便找一个作为代表,而是这个等价类的每个边界都要作为测试条件。

  • 🌟常见的边界值
    •对16-bit 的整数而言 32767 和 -32768 是边界
    •屏幕上光标在最左上、最右下位置
    •报表的第一行和最后一行
    •数组元素的第一个和最后一个
    •循环的第 0 次、第 1 次和倒数第 2 次、最后一次

2.3.因果图法

  • 2.3.0思想
    •首先从程序规格说明书的描述中,找出因(输入条件)和果(输出结果或者程序状态的改变),然后通过因果图转换为判定表,最后为判定表中的每一列设计
    定义:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
    表示:通常在因果图中用Ci表示原因,用Ei表示结果,各结点表示状态,可取值“0”或“1”。“0”表示某状态不出现,“1”表示某状态出现。
    🌟主要的原因与结果之间的关系
    在这里插入图片描述
    •在实际问题当中输入状态相互之间还可能存在某些依赖关系,称为“🌟约束
    在这里插入图片描述
🌟2.3.1设计步骤

•(1)分析程序规格说明书描述的语义内容,找出“原因”和“结果”,将其表示成连接各个原因与各个结果的“因果图”
•(2)由于语法或环境限制,有些原因与原因之间或与结果之间的组合情况不能出现,用记号标明约束或限制条件;
•(3)将因果图转换成判定表
在这里插入图片描述
•(4)根据判定表中每一列设计测试用例
在这里插入图片描述

⚪️2.3.2使用因果图法的优点:

(1)考虑到了输入情况的各种组合以及各个输入情况之间的相互制约关系。
(2)能够帮助测试人员按照一定的步骤,高效率的开发测试用例。
(3)因果图法是将自然语言规格说明转化成形式语言规格说明的一种严格的方法,可以指出规格说明存在的不完整性和二义性。

⚪️2.3.3例题

⭕️🌟输入字符
[题]
程序的规格说明要求:输入的第一个字符必须是“#”或“”,第二个字符必须是一个数字,在此情况下进行文件的修改;如果第一个字符不是“#”或“”,则给出信息N;如果第二个字符不是数字,则给出信息M。
[解]
(1)在明确了上述要求后,可以明确地将原因和结果分开。
–原因:c1-第一个字符是“#”
c2-第一个字符是“*”
c3-第二个字符是一个数字
–结果:a1-给出信息N
a2-修改文件
a3-给出信息M
(2)因果图在这里插入图片描述在这里插入图片描述
(3)判定表
在这里插入图片描述
(4)根据判定表设计测试用例在这里插入图片描述
⭕️🌟自动售货机
[题]有一个处理单价为1元5角的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”,“雪碧”或“红茶”按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退还5角硬币。
[解]
(1)分析原因及结果
在这里插入图片描述
(2)画出因果图
在这里插入图片描述
(3)判定表
在这里插入图片描述
(4)测试用例
在这里插入图片描述
⭕️中国象棋
[题]分析中国象棋中走马的实际情况
•如果落点在棋盘外,则不移动棋子;
•如果落点与起点不构成日字型,则不移动棋子;
•如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;
•落点处有己方棋子,则不移动棋子;
•如果不属于1-4条, 落点处无棋子,则移动棋子;
•如果不属于1-4条, 落点处为对方棋子(非老将),则移动棋子并除去对方棋子;
•如果不属于1-4条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。
[解]
(1)分析原因及结果
在这里插入图片描述
(2)因果图在这里插入图片描述
(3)判定表
在这里插入图片描述
在这里插入图片描述
分解在这里插入图片描述
在这里插入图片描述
(4)测试用例(略)

⚪️2.3.4因果图方法小结
  • 判定表法经常和因果图法一起用,先进行因果图分析,再结合判定表,最后完成测试用例。
  • 在多个条件决定多个动作,并且每个条件的取值只有两种情况下,我们就可以采用因果图和判定表方法条件和动作之间的逻辑关系是明确的,可以直接使用判定表法;如果条件和动作关系不明确,则要先得到因果图,再确定判定表

2.4.决策表法

  • 2.4.0思想
    •决策表的概念:决策表是分析和表达多逻辑条件下执行不同操作情况的工具。
    •在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。决策表很适合于处理这类问题。
🌟2.4.1决策表的组成

在这里插入图片描述

2.4.2构造决策表的5个步骤:

(1)列出所有的条件桩和动作桩。
(2)确定规则的个数。
(3) 填入条件项。
(4) 填入动作项,得到初始决策表。
(5) 简化决策表,合并相似规则。
➢若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并。
➢合并后的条件项用符号“-”表示,说明执行的动作与该条件的取值无关,称为无关条件。

🌟2.4.3决策表的优点:

•能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用决策表能够设计出完整的测试用例集合。
•最为严格,最具逻辑性的测试方法。
(运用决策表设计测试用例可以将条件理解为输入,将动作理解为输出)

2.4.4 例题

⭕️🌟职工分配问题
题•某厂对一部分职工重新分配工作,分配原则是:
(1)年龄不满20岁,文化程度是小学者脱产学习,文化程度是中学者当电工;
(2)年龄满20岁但不足50岁,文化程度是小学或中学者,男性当钳工,女性当车工;文化程度是大学者技术员;
(3)年龄满50及50以上,文化程度是小学或中学者当材料员,文化程度是大学者当技术员。
•试分析规格说明书,建立决策表,并简化

(1)分析条件及动作
在这里插入图片描述
(2)生成决策表并化简
在这里插入图片描述
在这里插入图片描述
(3)测试用例设计
在这里插入图片描述
⭕️🌟三角形
[题](略)
[解]
(1)确定规则个数。(有4个条件,每个条件两个取值,故有24=16种规则)
(2)决策表的生成
•列出所有的条件桩和动作桩
•填入输入项
•填入动作项,得到初始决策表
•化简。(合并相似规则)
在这里插入图片描述
(3)测试用例设计
在这里插入图片描述
⭕️🌟Next Date函数
[题](略)
[解]
(1)分析条件及动作
•month变量的有效等价类:
M1: {month=4,6,9,11} M2: {month=1,3,5,7,8,10}
M3: {month=12} M4: {month=2}
•day变量的有效等价类:
D1: {1≤day≤27} D2: {day=28} D3: {day=29} D4: {day=30} D5: {day=31}
•year变量的有效等价类:
Y1: {year是闰年} Y2: {year不是闰年}
•程序中可能采取的操作有以下六种:
a1: 不可能 a2: day+1 a3: day=1
a4: month+1 a5: month=1 a6: year+1
(2)生成决策表并化简
在这里插入图片描述在这里插入图片描述
决策表化简
在这里插入图片描述
(3)设计测试用例
在这里插入图片描述

⚪️适用范围

•if-else逻辑突出;
–恒等: IF A THEN B
–非: IF (NOT A) THEN B
–或: IF (A OR B) THEN C
–与:IF (A AND B) THEN C
•输入变量之间存在逻辑关系;
•涉及输入变量子集的计算;
•输入与输出之间存在因果关系;

2.5.场景法

🌟2.5.0基本概念

●基本流 和 备选流
●在测试一个软件的时候,在场景法中,测试流程是软件功能按照正确的事件流实现的一条正确流程,那么我们把这个称为该软件的基本流;
●出现故障或缺陷的过程,就用备选流加以标注,这样,备选流就可以是从基本流来的,或是由备选流中引出的。
在这里插入图片描述

⚪️2.5.1场景法设计测试用例的步骤

●根据说明,描述出程序的基本流及各项备选流.
●根据基本流和各项备选流生成不同的场景.
●对每一个场景生成相应的测试用例.
●对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值.

⚪️2.5.2例题:在线购物系统

●在当当网网上书店都订购过书籍,整个订购过程为:用户登录到网站后,进行书籍的选择,当选好自己心仪的书籍后进行订购,这时把所需图书放进购物车,等进行结帐的时候,用户需要登录自己注册的帐号,登录成功后,进行结帐并生成订单,整个购物过程结束。
(1)确定基本流和备选流在这里插入图片描述
(2)确定场景
在这里插入图片描述
(3)确定测试用例
●对于每一个场景都需要确定测试用例。可以采用矩阵或决策表来确定和管理测试用例。
●对于每个测试用例,存在一个测试用例ID、条件(或说明)、测试用例中涉及的所有数据元素(作为输入或已经存在于数据库中)以及预期结果。
在这里插入图片描述
(4)去重
在这里插入图片描述

2.6 正交试验法

⚪️步骤

1.有哪些因素(变量)
2.每个因素有哪几个水平(变量的取值)
3.选择一个合适的正交表
4.把变量的值映射到表中
5.把每一行的各因素水平组合做为一个测试用例
6.加上你认为可疑且没有在表中出现的组合

2.7 其它黑盒测试用例设计方法

基于状态图的测试

•也称为功能图法,用功能图形式化的表示程序的功能说明,并机械的生成功能图的测试用例。

错误猜测法

•基于经验和直觉推测程序中所有可能存在的各种错误,有针对性的设计测试用例的方法。
•基本思想是列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。

  • 14
    点赞
  • 163
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值