test

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

2022-12-27  本文已影响0人  robot_test_boy
步骤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版》

上一篇下一篇

猜你喜欢

热点阅读