美文网首页test
对测试点分类后,测试建模之流程类测试设计

对测试点分类后,测试建模之流程类测试设计

作者: robot_test_boy | 来源:发表于2022-12-27 07:56 被阅读0次
    步骤1. 通过绘制业务流程图来建模

    由于每个流程类测试点都可以代表一个流程或者一些流程片段,所以可以从整体分析这些测试点,并绘制出这些测试点代表的流程图。

    需要特别注意的地方如下:

    1)测试者要充分理解和测试点相关的功能业务流程,以确保流程图的正确性。

    2)测试者要和产品设计者充分交流,保证绘出的流程图能够正确覆盖产品的设计。

    3)如果开发已经提供了该功能的流程图,测试者需要仔细审视流程图的正确性,如有必要应重新绘制。

    以“PC连接WiFi”为例,前面已经分析出测试点1~测试点4为流程类测试点。

    现在为测试点1~测试点4绘制业务流程图,并建立测试模型。

    图58
    步骤2. 路径分析法

    绘制好流程图后,要用“路径分析法”来覆盖这个流程图,即获得测试条件和测试数据进而设计并生成测试用例。

    所谓“路径”完成一个功能时用户所执行的步骤,也是程序代码的一条运行轨迹。

    所谓“路径分析法”指对能够覆盖流程的各种路径进行分析并得到一个路径的集合。在测试时,只需要按照这个路径集合进行测试。

    不同的覆盖策略,能够得到不同的路径集合。常见的覆盖策略有语句覆盖、分支覆盖、最小线性无关覆盖和全覆盖

    为了便于后续叙述问题,对组成流程的元素进行定义如表。

    表33 流程图中的元素定义

    1)语句覆盖

    语句覆盖是指覆盖系统中所有判定和过程的最小路径的集合

    图60

    仔细分析语句覆盖的路径,就会发现语句覆盖的程度是比较弱的,它不会考虑流程中的判定以及这些判定与过程之间的关系。如果测试只按照语句覆盖的方式来进行,很容易出现遗漏。

    2)分支覆盖

    分支覆盖指覆盖系统中每个判定的所有分支所需的最小路径数。

    如图60,满足分支覆盖的路径集合和语句覆盖的路径集合是一样的。路径1覆盖的是所有判定结果为“真”的情况,路径2覆盖的是所有判定结果为“假”的情况。分支覆盖考虑了流程中的判定,但是也没有考虑这些判定之间的关系。分支覆盖的覆盖度也较弱。

    3)全覆盖

    全覆盖指100%覆盖系统所有可能路径的集合。

    如图60,根据排列组合算法可知,它的“全路径”一共有2×2×2=8条。

    全覆盖包含了所有可能的路径,覆盖能力最强,但是除非你测试的是一个微型的系统,不然随着判定数量的增加,呈指数类型增长的路径数会使需要测试的路径数非常庞大,这完全超出了一个测试团队能够承担的正常工作量。所以在实际工作中很难按全覆盖来执行测试。

    4)最小线性无关覆盖

    仔细分析全覆盖就会发现,全覆盖的路径中有很多会被重复执行的片段。希望能有这样的一种覆盖方式,在保证流程图中每个路径片段都能够被至少执行一次的情况下,得到的路径组合是最少的,这就是最小线性无关覆盖

    步骤3.使用路径分析来确定测试条件和测试数据

    可以根据被测对象的优先级、测试阶段来选择合适的覆盖策略,例如在单元测试阶段,可以使用语句覆盖或分支覆盖来设计测试用例;在集成测试和系统测试阶段,使用最小线性无关覆盖;对系统中一些特别重要的部分,可以适当使用全覆盖的策略。

    在这些覆盖方式中,因最小线性无关覆盖得到的测试路径数量适宜,覆盖度也有保证,故推荐大家在测试设计中优先选用。

    以“PC连接WiFi”中的测试点1~测试点4为例,介绍使用最小线性无关覆盖方式确定测试条件和测试数据,以得到测试用例的过程。

    图58流程图,有两个输出,需要将这个流程图拆成两个子流程图,保证每个子流程图均只有一个输入和一个输出。

    拆出子流程58-1,它包含的“边”数为9,“节点”数为8,“判定”数为2(注意,“备选WiFi是否可用”和“连接是否成功”这两个判定,在子流程1中只有一个输出,不属于判定。)“区域”数为2。该子流程包含的最小线性无关路径数为3。

    58-1

    使用最小线性无关覆盖算法,对子流程1进行最小线性无关覆盖,会得到3种路径。

    路径1 路径2 路径3

    综上所述分析过程,得到子流程1中的最小线性无关路径的集合。

    拆出子流程2,它包含的“边”数为7,“节点”数为7,“判定”数为1(注意,“首选WiFi是否可用”“是否加密”和“连接是否成功”这3个判定,在子流程2中均只有一个输出,不属于判定),“区域”数为1。因此子流程2包含的最小线性无关路径数为2。

    子流程2

    使用最小线性无关覆盖算法,对子流程2进行最小线性无关覆盖,得到子流程2中的最小线性无关路径的集合。

    最后,将子流程1和子流程2中包含的最小线性无关路径集合在一起,就得到了系统整体的最小线性无关路径组合。

    步骤4.确定测试数据

    接下来要为测试路径选择一些测试数据(即输入),使得测试路径能够都被执行到。

    如果流程的输入是一些参数,那我们确定可以覆盖路径的参数值即可。如果输入是一个数据(取值范围),就使用等价类/边界值的方式来确定一个数值即可。

    以“PC连接WiFi”中的测试点1~测试点4确定好的最小线性无关路径集合确定测试数据。

    对路径1:加密方式为“WPA”(根据测试点5选择)。

    对路径2:加密方式为“WPA”(根据测试点5选择)。

    对路径3:无参数。

    对路径4:无参数。

    对路径5:无参数。

    将测试条件和测试用例整合起来,这样就完成了通过最小线性无关路径法为测试点1~测试点4设计测试用例。

    步骤5.根据经验补充测试路径

    只要不是使用全覆盖策略,其他的路径覆盖方式都是有遗漏的。这就需要根据经验,再补充一些测试路径,具体包括:

    ·是否要增加一些其他需要覆盖的路径?

    ·是否要增加一些其他测试数据?

    ·有哪些地方是容易出问题的?是否还需要补充一些测试用例?

    摘取自刘琛梅老师的《测试架构师修炼之道:从测试工程师到测试架构师 第2版》

    相关文章

      网友评论

        本文标题:对测试点分类后,测试建模之流程类测试设计

        本文链接:https://www.haomeiwen.com/subject/qwowqdtx.html