黑盒测试简介和常用方法

  • 黑盒测试简介和常用方法

  • 定义

    黑盒测试俗称功能测试,它站在用户的角度上主要是对系统或软件的界面、功能上进行测试。它把程序当成不能打开的盒子,这样不用考虑系统内部的逻辑和内部特性,只需要在程序的外部接口上检查程序是否能按照软件设计说明书或者产品需求说明的规定来使用。

  • 作用

1.检查功能错误或功能遗漏
2.检查界面错误
3.检查数据库错误
4.检查是否有程序开始或终止方面的错误

  • 测试流程

1.测试计划
根据用户需求报告中的关于功能和性能的有关规格制定测试需求报告。将测试需求报告作为整个测试过程中的最高行为准则,符合测试需求报告就是正确的,否则就是错误的。再次阶段还要合理安排测试时间和人员配置。
2.测试设计
将测试计划阶段制订的测试需求分解、细化为若干个可执行的测试过程,撰写测试用例
3.测试执行
将测试用例中的相关测试点提取并且逐一去检测
4.回归测试
将之前发现的程序缺陷进行二次测试,要考虑与之前错误程序可能有关联的地方会不会出现连结错误。
5.测试评审
对测试结果进行小组评审,总结问题,并撰写测试说明书。

  • 优缺点

优点:适用于功能测试、可用性测试及可接受性测试,依照软件规划说明书上的需求和功能来进行长的且复杂的测试。对程序的工作逻辑非常容易理解。
缺点:不可能进行毫无遗漏的测试,只能依照规格说明书和测试人员的经验进行大面积覆盖测试,有些时候,软件的逻辑可能有人为设置的错误或者规格说明书中有功能模块被遗漏等,黑盒测试都是无能为力的。

  • 常用方法

  • 等价类划分法

  • 定义
    首先要明确,测试时无法穷尽所有出现问题的可能。而我们要做的就是尽可能找到有代表性的例子,通过对这些例子进行测试来尽可能评估产品或程序的功能是否可能出现错误。
    等价类:是指将所有可能的程序输入域划分成若干个子集,在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。测试某等价类的代表值就等价于对这一类其他值的测试。

  • 等价类的划分
    等价类的划分可以分为有效等价类和无效等价类。
    有效等价类是值对程序的需求来说是正确的,有效的,合理的,有意义的集合。有效等价类主要是探寻程序是否实现了规格说明书中对程序的功能和性能上的需求。说直白点有效等价类就是输入正常的值来观察程序是否出错。
    无效等价类是指对程序的需求说明是不合理的或无意义的输入数据所构成的集合。无效等价类可以为一个也可以为多个。无效等价类主要是检查程序对错误的值的处理。

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

  • 例子:
    有这样一个程序,允许一到六个英文字符或者数字输入。
    问题分析:
    有效等价类:长度 :1-6,字符:a-z,A-Z,0-9
    无效等价类:长度:0,7,字符:除英文和数字以外的字符

  • 边界值划分法

  • 定义
    边界值划分法主要用于对输入框的边界值进行测试,是对等价类划分法的补充。由大量的测试经验总结可知大量错误往往发生在边界中,所以针对边界进行测试,可以大概率查出错误。
    边界值分析方法的理论基础也是基于一个假设:假定大多数的错误是发生在各种输入条件的边界上,如果在边界附近的取值不会导致程序出错,那么其它的取值导致程序错误的可能性也很小。

  • 边界值法设计测试用例
    使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的任意值作为测试数据。

  • 使用条件
    1.输入条件明确了值的范围(比如参数值范围1-99)
    2.输入条件明确了值的个数(比如参数表示个数,需求规定个数1-5个)
    3.输入条件明确了是一个有序的集合(比如参数只能是(1,2,3))

  • 例子
    淘宝店铺老板想搞活动,假设淘宝服务搞活动接口其中一个参数就是活动时长,后端规定活动的时长最多72个小时,最少24个小时。此时针对创建活动的这个时长参数,我们可以设计如下用例。
    问题分析:首先用等价类进行划分
    有效等价类:24<=时长<=72
    无效等价类:时长<24,时长>72,时长为非整数,时长为非法字符。
    然后用边界值的思想进行补充。
    这里的边界有两个24和72,这里边界情况取了5种,24,72,23,73,36。
    因为是闭区间,所以除了边界值,还要考虑边界值过去的点,比如23,73。
    然后因为时间长度是个范围,还要在范围内补充一个测试点,这里取36。

  • 错误推测法

  • 定义
    在程序测试中,测试人员可以依照自己的经验和直觉推测程序中可能存在的错误,从而有针对性的进行程序测试和编写用例设计。错误推测法最重要的就是对测试人员的经验要求高,不推荐小白进行使用。
    错误推测法的核心思想是:列出程序中所有可能有的错误和可能发生错误的情况,根据这些可能情况针对性选择测试用例。例如,之前测试环节发现的错误和程序中常见错误对其进行总结,可对其进行测试用例。
    错误推测法直白的说就是运用你掌握的测试知识和对之前出现错误的总结经验以及对可能出现的错误的直觉设计测试用例来进行测试。

  • 错误推测法的前提条件
    1.深度熟悉被测系统的业务逻辑和功能需求。
    这里的熟悉是指能够完全了解系统的功能和运行逻辑,而不是停留在表面的简单使用上。
    2.对被测系统或类似系统之前的缺陷分布情况进行过系统的分析。包括功能缺陷,数据缺陷,接口缺陷和界面缺陷等等。

  • 举例:
    这是我第一家面试的测试实习生问的问题,当时答的不是很好,现在来总结一下。
    手机不能接打电话,可能的原因是。
    测试手机终端的通话功能,可以设计通话失败的情况来补充测试用例
    1.无SIM 插入时进行呼出(非紧急呼叫)
    2.插入已欠费SIM卡进行呼出
    3.射频器件损坏或无信号区域插入有效SIM卡呼出
    4.网络正常、插入有效SIM卡,呼无效号码
    5.网络正常,插入有效SIM卡,使用“快速拔号”功能呼出设置无效号码的数字

  • 因果图法

  • 定义
    是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
    因果图方法最终生成的就是判定表。

  • 因果图概述
    在因果图中,用Ci表示条件,Ei表示动作,有4种符号分别表示了规格说明中的4种因果关系,如图:
    在这里插入图片描述
    其中各节点表示的状态,可取值“0”或“1”。其中,“0”表示某状态不出现,“1”表示某状态出现。

恒等:

若条件出现,则动作出现;若条件不出现,则动作也不出现。

非(∽):

若条件出现,则动作不出现;若条件不出现,则动作出现。

或(∨):

若几个原因有一个出现,则结果出现;若几个原因都不出现,则结果不出现。

与(∧):

若几个原因都出现,结果才出现;若其中一个原因不出现,则结果不出现。

  • 生成测试用例
    (1) 分析软件规格说明书中的输入输出条件并分析出等价类,将每个输入输出赋予一个标示符;分析规格说明中的语义,通过这些语义来找出相应的输入与输入之间,输入与输出之间的关系。

(2) 将对应的输入与输入之间,输入与输出之间的关系关联起来,并将其中不可能的组合情况标注成约束或者限制条件,形成因果图。

(3) 由因果图转化成判定表。

(4) 将判定表的每一列拿出来作为依据,设计测试用例。
例子:某个软件规格说明中包含以下要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改;但如果第一列字符不正确,则输出信息L;如果第二列字符不是数字,则给出信息M。

解:

采用因果图方法进行分析,根据如下“关系表”,获得“因果图”的各种组合,其中∨表示“或”,∧表示“与”,∽表示“非。”
在这里插入图片描述
因果图
在这里插入图片描述
注:11为中间节点;因为原因1和原因2不能同时为1,所以施加约束。
C1和C2为互斥关系,用E表示。

根据“因果图”制定“判定表”,3个因素共有8种组合。由于C1(首字符是A)成立时,C2(首字符是B)就不成立,此时变成6种组合。再合并结果一样的列,变成4种组合。如下表:

注:“判定表”的每一列代表一个测试用例。

在这里插入图片描述

  • 判定表法

  • 定义
    判定表是分析和表达多种输入条件下系统执行不同动作的工具,它可以把复杂的逻辑关系和多种条件组合的情况表达的既准确又明确。
    判定表法主要是侧重输入条件之间的逻辑关系。
  • 判定表法组成部分
    1.条件桩:列出所有可能的条件
    2.条件项:列出所有的条件取值的组合
    3.动作桩:列出所有可能操作
    4.动作项:列出在每一种条件取值组合的情况下执行动作桩的哪些动作
    5.规则:一种条件取值组合与其对应的动作组合(即判定表中贯穿条件项和动作项的一列)构成判定表的一个规则。条件组合的数目就是规则的数目。
  • 建立判定表可遵循的步骤
  1. 列出条件桩和动作桩
  2. 确定规则的个数,用来给规则编号
  3. 完成所有条件项的编写
  4. 完成所有动作项的填写
  5. 合并相似规则,对初始判断表进行简化。
  • 判定表法的优缺点
  • 优点:
    1.充分考虑了输入条件的组合,对组合情况覆盖充分
    2.每个用例覆盖多种输入情况,有利于提高测试效率
    3.设计过程中,对输入条件间的约束关系做了考虑,避免了无效用例,用例的有效性高
    4.能同时得出每个测试项目的预期输出
    缺点:
    1.当被测试特性输入较多时,会造成判定表格规格庞大
    2.输入之间的约束条件不能有效区分输入是否确实需要进行组合测试,会造成不需要组合测试的输入做了组合,从而产生用例冗余。
  • 举例
    对于功率大于50马力的机器,并且维修记录不全或已运行10年以上的机器,应给予优先的维修处理
    条件桩:
    C1:功率大于50马力吗
    C2:维修记录不全吗
    C3:已经运行十年了吗
    动作桩:
    A1:进行优先维修处理
    A2:进行其它处理
    生成判定表:
    在这里插入图片描述
    简化后:
    在这里插入图片描述
  • 正交分析法

  • 定义
    正交试验法是研究多因素、多水平的一种试验法,它是利用正交表来对试验进行设计,通过少数的试验替代全面试验,根据正交表的正交性从全面试验中挑选适量的、有代表性的点进行试验,这些有代表性的点具备了“均匀分散,整齐可比”的特点。
    正交表概念:正交表是一种特制的表格,使用在这里插入图片描述表示,L代表是正交表,n代表试验次数或正交表的行数,k代表最多可安排影响指标因素的个数或正交表的列数,m表示每个因素水平数,且有n=k*(m-1)+1;
    因子概念:在同一试验中,影响试验结果的输入条件称为因子;
    水平概念:影响每个试验因子的取值或输入称为水平;
  • 正交试验法的优缺点
    优点:正交试验从全面试验中选出有代表的点进行试验,减少了测试用例,提高测试效率。
    缺点:每个状态点等同对待,重点不突出,容易造成在不常用的功能或场景中,花费不少时间进行测试,而侧重点被忽略。
  • 举例
    某所大学通信系共2个班级,刚考完某一门课程,想通过“性别”、“班级”和“成绩”这三个查询条件对通信系这门课程的成绩分布,男女比例或班级比例进行人员查询:
    根据“性别”=“男,女”进行查询
    根据“班级”=“1班,2班”查询
    根据“成绩”=“及格,不及格”查询
    按照传统设计——全部测试
    问题分析:
    有三个被测元素,被测元素我们称为因素,每个因素有两个取值,我们称为水平值,也就是2.
    如果进行全面测试的话:2^3=8次。
    若采用正交试验法:用例个数n=3*(2-1)+1=4(公式为因素数*(最大水平数-1)+1)。
    对于三因素两水平的刚好有L4(2^3)的正交表可以套用。
    在这里插入图片描述
  • 场景分析法

  • 定义
    分析程序应用的场景,从用户的角度出发,从场景的角度来设计测试用例,是一种面向用户的测试用例设计方法。
    通过遍历所有流经用例的路径来确定使用场景的方法,用来测试系统的功能点或业务流程。场景法一般包含基本流和备用流,从一个流程开始,遍历所有的基本流和备选流来完成所有场景。
  • 基本介绍
    基本流:用直黑线表示,是经过用例的最基本、最简单的路径(程序从开始到结束无任何错误)
    备选流:采用不同颜色表示,一个备选流可以从一个基本流开始,也可以从一个备选流开始,在某个特定条件下执行,然后重新加入基本流或终止用例。
    图例:
    在这里插入图片描述
  • 优缺点
    优点:实用性强,有效,设计出来的用例有价值
    缺点:可能使用的场景不一定能对时间系列进行全面的分析,设计出来的用例不完整
  • 用场景分析法设计测试用例的步骤:
    1.根据说明,画出流程图,确定基本流和备选流;
    2.根据基本流和各项备选流确定场景;
    3.对每一个场景生成测试用例;
    4.对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测试确定测试数据值。
  • 举例
    用户登录到网站后,进行书籍的选择,当选好自己心仪的书籍后进行订购,这时把所需图书放进购物车,等进行结帐的时候,用户需要登录自己注册的帐号,登录成功后,进行付款交易,交易成功后,生成订购单,整个购物过程结束。
    问题分析:
    第一步:画出流程图,确定基本流和备选流
    在这里插入图片描述
    基本流:登录在线网站→选择书籍→放入购物车→登录账号→付款→生成订单

备选流1:用户不存在→注册用户

备选流2:密码不正确

备选流3:账户余额不足→充值

第二步:根据基本流和各项备选流确定场景;

场景1(成功购物):基本流;

场景2(账户不存在):基本流 备选流1

场景3(账户密码错误):基本流 备选流2

场景4(账户余额不足):基本流 备选流3

第三步:对每一个场景生成测试用例;
在这里插入图片描述
第四步:对生成的所有测试用例重新复审,补充测试数据值;

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值