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

步骤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版》

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 230,578评论 6 544
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 99,701评论 3 429
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 178,691评论 0 383
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 63,974评论 1 318
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 72,694评论 6 413
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 56,026评论 1 329
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 44,015评论 3 450
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 43,193评论 0 290
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 49,719评论 1 336
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 41,442评论 3 360
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 43,668评论 1 374
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 39,151评论 5 365
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 44,846评论 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 35,255评论 0 28
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 36,592评论 1 295
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 52,394评论 3 400
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 48,635评论 2 380

推荐阅读更多精彩内容