腾讯移动品质中心TMQ [腾讯 TMQ] 测试建模 :从尔康的鼻孔说开来,重要的用例写三遍

匿名 · 2016年09月19日 · 最后由 766 回复于 2017年02月28日 · 2576 次阅读

作者:锅仔

看完本文你会了解以下内容

1. 什么是 SUT 模型

2. 测试建模在工作中究竟是怎样一个过程

3. 从业务流程到测试用例我们忽略了什么

4. 测试建模会有哪些产出

一、关于本文

回想起本人在最初学习测试建模时的混沌经历,在这个时候过多的介绍什么是建模其实并不是一个很有意义的事情,因为各种各样的概念只会让你更加摸不着头绪,甚至放弃学习。因此,作为测试建模系列文章的第一讲,还是决定通过一些实际的工作内容来让大家对测试建模有一个简单而实际的了解。

二、关于建模

关于什么是模型?什么又是建模?各种资料和教科书中可能有不同的解释和分类。之于测试这个行当和今天要向大家汇报的这个实例,还是选择了如下一种,广而告之。

SUT 建模 (System Under Test),它是一种心智模型的外化,即通过使用各种符号以及与现有模型的整合将头脑中对产品的理解、设想和体验进行表示,它是一种图形化或形式化的类比模型。本质就是通过抽象泛化、删减,只保留有助于实现特定测试目的的特征来生成一个测试对象的 “等价类”。
       

呃~别慌,知道这样的概念很啰嗦,下面举个例子来为你介绍一下就明白了。

考虑到本例中建模对象的身份,还是隆重的放个图吧

如图所述,今天我们要建模的对象就是 福家大公子——尔康

废话少说,开始建模:

很简单的几步就把尔康的样子勾勒出来,我们可以通过生成出的类比模型去理解尔康、解释尔康。

结合 SUT 模型的概念,为大家做一个说明

将上面的例子做一个转换,其实就可以很好的说明测试建模的过程了

三、测试建模——重要的用例写三遍

正如本段标题,重要的用例写三遍,工作中不是所有的需求都需要进行建模,这一点很重要,因为他可以让你把有限的精力利用得更加充分。任何时候都要学会克制,不要 “用力过猛”, 即使你在学习《测试建模》。记住了这一点,我们再开始讨论 “写三遍”。

接下来,通过一个开源的 Android Launcher 项目为大家介绍下实际工作中测试建模的应用。

第一遍:需求转化为流程图

把本例中的需求全部罗列出来肯定会引起不适,再此就简要说下吧:

Android 的桌面图标可通过拖拽变更位置,可拖至文件夹内,可拖至顶部菜单删除/卸载。

① 桌面图标含应用图标和文件夹图标

② 桌面和文件夹图标可拖拽移动位置

③ 图标可拖拽至顶部菜单进行卸载/删除

④ 文件夹内至少有一个图标

⑤ 拖至顶部菜单卸载后,有确认弹窗
 

考虑到此部功能操作略显分散且流程图整理思路相对简单,所以在梳理完这里面的逻辑后,画上了一个流程图来关注系统行为。到这里,第一遍 “写” 的任务就完成了。这一步,就是 SUT 模型的建立,通过整理需求,将头脑中对产品的理解用图形的方式表示出来将给后续的测试提供大大帮助。

第二遍:由流程图导出基本用例

得到流程图后,通过遍历每一条分支,我们很容易得到测试这些逻辑的测试用例,因为只关注路径,所以这里得到的用例也是最为基础的用例。你可以喊他自测用例,或是 P0 用例。但对保证产品质量来说显然这是不够的。

说明:遍历每条逻辑分支生成用例

结论:桌面发起拖动 5 条,文件夹内发起拖动 6 条

第三遍:填充数据,丰富用例

终于到了第三遍,这也是很多人容易忽略的一步,为了将测试的逻辑覆盖的更充分,我们将一些流程中的变量罗列出来,填充上一定的数据后放入基础用例中,这样一来,我们的用例看起来更加充分了。

1.业务流程中的变量有:

  • 应用图标类型:系统应用,非系统应用
  • 桌面应用个数:1 个,多个,满屏
  • 拖动起始文件夹图标个数:1 个,多个,满一页,多页
  • 拖动起始位置:队头,队中,队尾
  • 目标文件夹图标个数:1 个,多个,满 1 页,多页
  • 拖入目标区域是否释放图标:释放,未释放退出
  • 是否有中间流程(拖至其他位置后又拖出):有,没有
  • 是否编辑模式下首次操作:是,不是
  • 卸载确认提示:卸载,取消 

2.将数据填入基础用例

图中的 a、b、d……每一列都勾选了不同的测试数据,最终 1 条基础用例扩充为 10 条,显而易见,这样生成的用例覆盖的逻辑更全了。接下来,把每一条基础用例都这样一番整理,第三遍的用例也就写完了。

//关于这里测试数据的选择、组合我们后续会有文章进行介绍

小结:

之所以这里强调 “三遍” 而非 “三步” 更多的是为了说明在我们通过建模去进行测试的时候,每个阶段的产出都有着重要的用途,仅以这个例子来说:

第一遍的流程图不仅可以用于梳理逻辑导出基础用例,同时还可以用于项目组内各类沟通使用(用例评审、任务拆分/交接)。另外,在一些其他的设计方法中这一步可以借助工具直接生成自动化测试用。

第二遍导出的基础用例可用于开发自测、生成 BVT 自动化测试用例等。

以上就是 SUT 模型的一点实际应用,至于 “第一遍 “中的其他设计方法,后面会有更多的文章来跟大家分享、讨论。

本章完~

原文链接:http://tmq.cs0309.3g.qq.com/2016/09/test-modeling-said-from-his-nostrils-important-cases-to-write-three-times/


TMQ(腾讯移动品质中心)是腾讯最早专注在移动 APP 测试的团队
我们专注于移动测试技术精华,饱含腾讯多款亿级 APP 的品质秘密,文章皆独家原创,我们不谈虚的,只谈干货!

扫码关注我们

扫一扫 关注 TMQ
精彩分享不断
共收到 2 条回复 时间 点赞

作者写的很用心,支持!

思寒_seveniruby 内容不符合版规屏蔽此话题 09月19日 22:22
3楼 已删除

为什么会被屏蔽呢?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册