zoukankan      html  css  js  c++  java
  • 测试入门1:黑盒测试用例设计方法

    不懂黑盒测试这个概念的同学,自己百度,哈!

    我主要给大家分享,黑盒测试用例有哪些分析方法?

    1、等价类划分法

    分为

    有效等价类:有效等价类符合产品需求说明的,合理的输入数据

    无效等价类:有效等价类是不符合产品需求说明的,不合理的输入数据

    等价类划分设计的原则:

    举例:如果输入条件规定了取值范围是不超过100的整数,则可以确定一个有效等价类和两个无效等价类;

    此时的有效等价类:小于100的整数,无效等价类:大于100的数

    虽然有效和无效均有一个等价类,但是有效等价类还是可以再次被划分的,无效等价类也是一样,下面我们来设计等价类的表格,将每一个条件都带上编号

    有效等价类

    无效等价类
    1、小于100的正整数,例如99 4、小于100的非整数,例如99.9,或者-0.1
    2、小于100的负数,例如-1 5、大于100的整数,例如101
    3、等于0  

    看了上面的组合图之后,我们来进行组合,那就是1/4;2/4;3/4;1/5;2/5;3/5,各是一条用例,共计6条用例,等价类是我们平时经常会使用到的分析方法,其次就是边界值分析方法。

    其实图例中使用到来边界值,那就是有效等价类1处的99和无效类5的101

    设计一个测试用例,使其尽可能多的覆盖所有尚未覆盖的有效等价类和无效等价类。使得有效等价类和无效等价类均被测试用例所覆盖

    2、边界值分析法

    什么时候会用到这个方法呢?

    输入条件明确了一个值的取值范围,或是规定了值的个数 输入条件明确了一个有序集合,等价类就使用到了边界值。往往等价类和边界值是相辅相成的,用了等价类肯定会用到边界值,用了边界值肯定涉及等价类,只是大家平时没有注意到而已。

    分析的原则:

    如果输入(输出)条件规定了取值范围,或是规定了值的个数,则应该以该范围的边界内及边界附近的值作为测试用例

    如果输入(输出)条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据

    如果程序规格说明中提到的输入或输出是一个有序的集合,应该注意选取有序集合的第一个和最后一个元素作为测试用例

    如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例

    3、判定表法

    判定表是分析和表达多种输入条件下系统执行不同动作,它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确

    多个条件的组合会导致不同的结果。组合的话,就会存在雷同,雷同的用例我们可以进行合并留一个即可,

    原则以合并相似为目标。如果有两条或多条规则具有相同的意义,并且其条件项之间存在极为相似的关系,我们便可以将其合并。最后将合并的每一条转换成用例。

    备注:

    合并的话可能会存在主观认为类似,但是实现的代码判断逻辑是不同的,会导致漏测,所以建议大家减少合并,宁可多测,不要少测漏测。

    4、因果图法

    因果图符号

    约束符号

    提供了一个把规格转化为判定表的系统化方法,从该图中可以产生测试数据。其中,原因是表示输入条件,结果是对输入执行的一系列计算后得到的输出。

    因果图方法最终生成的就是判定表。它适合于检查软件输入条件的各种组合情况

    设计用例的步骤:

    (1)把一个大的需求功能模块,分解成可以测试的一个小的模块,模块和模块之间的耦合度低;

    (2)分析待测的模块,找出哪些是原因,哪些是结果,并把他们罗列出来;

    (3)画出因果图,然后把转换成判定表,最后我们把判定表能够简化的部分进行简化,最后 用判定表中的每一项生成测试用例。

    但有一个缺点,就是相对于该方法不熟练的同学,或者需求特别庞大的,使用因果图,很难去寻找处符合要求的低耦合的模块,需求大因果关系复杂,导致因果图特别多,测试用例数据大;

    但是因果图法能够帮助我们按照一定步骤,高效的选择测试用例,设计多个输入条件组合用例,发现等价类方法中因为等价划分组合遗漏的内容。

    5、状态迁移图法

    许多需求用状态转移的方法进行描述。通过测试验证给定的条件内是否能够产生需求的状态变化,有没有达不到的状态和非法的状态,可能产生非法的状态, 通过测试准备模拟能导致状态迁移的事件,常用于协议测试 用这种方法可以设计逆向的测试用例,如状态和事件的非法组合

    设计用例的步骤:

    (1)画出状态迁移图 (类似流程图,不过是因为一系列的前置条件,满足则进行状态的变更)列出状态—事件图

    (2)从状态转换树推导出测试路径 根据测试路径编写合法和非法的测试用例

    6、流程分析法

    是将需求的各个模块看成一个路,有起点有终点,起点到终点的路程中,会有无数可能出去的其他小路,也可以到达终点,所以用哪条路可以到终点的方法来设计测试用例。

    根据流程的顺序依次进行组合,使得流程的各个分支都能走到。这是从白盒测试中路径覆盖分析法中推广到黑盒测试中来的测试分析方法。

    设计用例的步骤:

    (1)我们把可能出现的路径画成业务流程图

    (2)根据图,可以看出,哪些是主路径,哪些是分支,通过主路径,分支能够知晓功能路径优先级,从而确定测试路径 选取测试数据,形成测试用例

    7、正交试验法

    验设计法,是从大量的试验点中挑选出适量的、有代表性的点,应用依据迦罗瓦理论导出的“正交表”,合理的安排试验的一种科学的试验设计方法。

    指标:通常把判断试验结果优劣的标准叫做试验的指标 因子:所有影响试验指标的条件 因子的状态:而影响试验因子的,叫做因子的状态;该方法其实就是排列组合

    该部分的内容,涉及的正交工具的使用,不做多讲,,可以自行百度,这是目前测试用例分析方法中,使用比较多的。

    8、异常分析法

    就是针对系统有可能存在的异常操作、软硬件缺陷引起的故障进行分析,依此设计测试用例。主要针对系统的容错能力、故障恢复能力进行测试。

    9、错误猜测法

    就是根据经验猜想可能有什么问题并依此设计测试用例 错误猜测法只能作为测试设计的补充而不能单独用来设计测试用例,否则可能会造成测试的不充分。

    总结:所有的黑盒用例设计方法,最终的目的就是尽可能的覆盖完全逻辑,保证产品的质量。

    设计出的测试用例要保证在测试中,程序的每一个可执行语句至少要执行一次(虽然这是要求在白盒用例设计方法中的,黑盒也是能够做到用例的设计覆盖到逻辑判断的)

    若能够将以上的分析方法都搞清楚并熟练使用时,那么设计用例将没有任何问题,同时能够快速的抓住需求的重点模块,主要的测试路径,快速定位处模块间的优先级。

    后期会不断的分享我个人总结和学习的测试知识和内容。

  • 相关阅读:
    强连通分量(Kosaraju)
    拓扑排序
    树状数组BIT
    差分
    RMQ(ST表)
    LCA(Tarjan)
    LCA(ST倍增)
    海亮SC2019 树上数数(转载)
    海亮SC
    【十二省联考2019】异或粽子/可持久化01trie
  • 原文地址:https://www.cnblogs.com/SparkProgram/p/11509330.html
Copyright © 2011-2022 走看看