写点什么

测试人员微博热议模型驱动测试 MBT

  • 2012-11-06
  • 本文字数:2290 字

    阅读完需:约 8 分钟

林曙湧是一位敏捷教练,在诺基亚西门子工作,专供敏捷测试、自动化测试。他在一条微博中指出:

在我看来,MBT 可以解决很多自动化测试中的顽疾,比如测试架构混乱,重复步骤很多导致测试执行效率低,自动化测试的杀虫剂效应等等。当然,要用好 MBT,我们还会面临诸多的挑战,包括理念上的,工具上的,技能上面的。不过已经有很多先行者帮我们铺好了道路,比如微软的测试架构师 Harry Robinson。

社区知名敏捷教练徐毅有些疑问:

找到银弹了?2011 年我组织 Conformiq 的 CTO 到成都 NSN 介绍过 MBT,我觉得 MBT 本身理念不错,但适用范围有限,引入 MBT 要进行思维转化,这对当时 NSN 的测试现状不见得是好事。MBT 的重点在于测试建模,缺乏此能力做不好 MBT,但培养此能力也耗费不低。

林曙湧的回应是:

没错,这个世界上没有银弹。不过它的确可以解决很多自动化测试中的问题,当然,这也是有代价的,没有免费的午餐。如何能够具备应用 MBT 需要的能力,思维的培养,还有如何与敏捷的上下文结合起来,也许值得讨论。

徐毅认为:

MBT 的主要出发点是专业测试人员只需要开发出测试模型即可,而产生自动化脚本的过程则可以委托给工具去完成,而在我看来这就是不靠谱的地方。自动生成代码的工具,多年前在开发领域早就出现过,至于它的效果如何,不必我浪费口舌。而至于那些自动生成的代码,可维护性如何,大家心里有数。

林曙湧回应:

测试代码和产品代码的性质还是不太一样的,在开发领域不适用未必在测试领域不适用。产品代码要考虑很多细节的东西,比如硬件的差别,性能的优化,等等,而测试代码更多地从用户需求来描述,复杂性相对有限。在我们的实践中,生成的测试用例只是很薄的一层,复杂的逻辑全部放在库里面。

徐毅认为:

测试自动化本身就是开发,测试代码就应该等同于产品代码进行对待,应该放在同一个代码库,维系同一版本号。另外,“把逻辑放在库里面”,你这句话说得不够清晰,我不知道你说的是“业务逻辑”还是“程序逻辑”,我认同后者应该放在库里,但如果把前者放在库里,那就是测试自动化的大忌。

“建模思想”确实重要。我当时另一个出发点是,如果公司本身就在采用 UML 那一套路的开发方式,那么测试发展的下一步选择 MBT 是比较自然也是比较经济实惠的方案。但是,我当时所接触的那些产品线,用 OO 开发的很少,用建模套路的更少,使用 MBT,会有极高的学习曲线,且开发也无经验借鉴。

林曙湧认为还是可以做到控制:

测试自动化是开发没错,但不见得所有的开发都遵循完全一样的规律啊,开发里面也有很多分支啊,不能一概而论。业务逻辑是通过模型去表现的。你说得没错,业务逻辑应该尽可能往上移,但是在具体实现的时候,有时候也会有些 Tradeoff。总得来说,还是我们可以控制的。

徐毅提出四点:

1,确实不是所有开发道理都一样;

2,但是测试自动化其实比一般的开发更复杂,因为“需求来源”更不稳定和易变;

3,业务逻辑用模型体现,我想很多 UX 的人不一定认同

4,我也认同有 tradeoff,但到底有多少,多和少,是有区别的,这决定了控制的成本,也影响了 ROI。

林曙湧:

在我们的实践中,发现通过 MBT 来实现自动化测试,的确比原来的方式对测试人员的能力要求更高,包括你说的建模能力,以及测试人员的编码能力。所以现在还是要手把手教的,但是测试人员学会了之后,反响都很不错,愿意在他们的领域推广使用。

徐毅发现:可能他和林曙湧说到的“模型”不是同一个概念

林曙湧的“模型”上下文是:

我们碰到的问题是 case 数量爆炸,而且测试的输入数据,测试步骤固化在 case 里面也不利于引入变化,无论是应对需求的变化还是避免自动化测试的杀虫剂效应。所以在原有的测试用例上抽象出一层,我们把它叫做模型,测试用例可以由它生成。

徐毅说的“模型”是:

对系统抽象理解的呈现,并以此为基准开发出测试用例。你举例的模型,我认为最多称为测试集(set 或 collection)。关键区别在于自顶向下还是自底向上。

林曙湧也同意两个不是一回事:

一般自底向上会采用抽象和归纳的手段建模,自顶向下会采用分而治之的手段。决不能说自底向上就不是建模。不过我的理解你说的 MBT 更多指战略层面的应用,的确这不是我们现在做的事情。

架构师 Jack 也加入了讨论:

关键还是你的团队具备测试建模的能力吗?测试建模不是直接把产品的流程模型复制过来,还有在产品模型的基础上衍生出更多分支才是测试模型。如果只有边界值、等价类、正交组合这样的测试方法是不够进行测试建模的。

对此,徐毅认为:

是否具备测试建模能力是一方面,也即是否可以立刻产生效果。另一方面是,如果暂不具备,是否愿意投入来培养这个能力,包括是否能够承受这个投入,或者说当前应该专注的是其他方面和提升点。这是我 2011 年在诺西时对 MBT 的看法的出发点。

之浩提到:

难得看到有讨论 MBT 的,modeling 的过程是好入手但是很难做好的,否则状态爆炸、路径筛选困难等问题会很难搞,而本身边界值这种扁平式的测试也不太适合 MBT。btw,即便在微软内部很多 team 对 MBT 也是尝试后放弃之。

InfoQ 之前介绍过的、在微软工作的刘彪也参与到讨论中。他说自己在与 Harry Robinson 吃饭时,专门问了下为什么微软也没有推广起来 MBT,而 Harry 给出的答案是:

最主要的原因是做测试人其实不是真正想做测试,不愿意在测试上专研。

围绕这个讨论,很多测试方面的技术人员都参与进来,希望了解更多内容的,可以去看这条微博的详细转发和讨论

此外,林曙湧还推荐了两个网址,可供大家了解更多关于 MBT 的知识:

林曙湧在自己的博客上还有很多关于 MBT、敏捷测试和自动化测试方面的文章,感兴趣的同学可以前往阅读。

2012-11-06 03:183038
用户头像

发布了 479 篇内容, 共 175.4 次阅读, 收获喜欢 53 次。

关注

评论

发布
暂无评论
发现更多内容

手把手教你爬取优酷电影信息-2

happlyfox

学习 28天写作 2月春节不断更

【Python】关于 Type Hints 你应该知道这些

zhujun

Python

28天瞎写的第二百四十四天:冥想的种类

树上

冥想 28天写作 正念

“定义”

Nydia

关于个人认知的一些碎碎念「Day 6」

道伟

心理学 认知 28天写作

水墨屏开发设备,旧 Kindle 改造而成

HelloGitHub

开源 硬件 kindle

克服云安全挑战的5种方法

云计算

敏捷技术实践之TDD

Teobler

敏捷 敏捷开发 TDD 极限编程 测试驱动开发

使用 Tye 辅助开发 k8s 应用竟如此简单(六)

newbe36524

Docker Kubernetes 微服务 dotnet

Elasticsearch 一个 field 两个索引

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

(28DW-S8-Day6)区块链如何解决双重支付及防篡改

mtfelix

比特币 区块链 防篡改 28天写作 双重支付

山东区块链赋能农产品溯源平台解决方案

源中瑞-龙先生

微信小程序开发笔记(一)

陈飞

小程序

Selenium 自动化前的补充知识,Frame操作、多窗口切换、模糊定位、复合定位

梦想橡皮擦

Python 28天写作 2月春节不断更

手把手教你爬取优酷电影信息-1

happlyfox

学习 爬虫 28天写作 2月春节不断更

Linux入门篇 —— Linux软件安装(YUM & RPM & 源码)

若尘

Linux 源码 RPM安装 rpm yum

当深度学习遇上图: 图神经网络的兴起!

博文视点Broadview

敏捷团队实践

Teobler

项目管理 敏捷 敏捷开发 工程实践 敏捷开发管理

我凭借这份“2021全网最全Java面试清单”彻底征服阿里面试官

比伯

Java 编程 程序员 架构 面试

视频号直播和 PageRank 算法 [待完善]

小匚

机器学习

爬虫知识记录之一

头号摄影师

爬虫

1.2 Go语言从入门到精通:编写第一个Go程序

xcbeyond

28天写作 Go 语言

只有两颗糖,什么时候给——再谈峰终定律

Justin

心理学 28天写作 游戏设计

Kafka.08 - 消息交付可靠性保障

insight

kafak 2月春节不断更

前端HTML5面试官和应试者一问一答

我是哪吒

html 程序员 大前端 28天写作 2月春节不断更

话题讨论 | 各地都有什么特别的元宵节活动?

happlyfox

社会话题 话题讨论 28天写作 2月春节不断更 话题王者

一文带你了解GaussDB(DWS) 的Roach逻辑备份实现原理

华为云开发者联盟

容灾 备份 GaussDB(DWS) 逻辑备份 Roach

泰康和百度智能云为何相互需要?

吴俊宇

百度 保险数字化 泰康

基于SpringBoot实现文件的上传下载

Java鱼仔

springboot

让听见炮火的人来做决策,做决策的要好好听听炮火

数列科技杨德华

28天写作

为您收录的操作系统系列 - 线程小常识

鲁米

线程

测试人员微博热议模型驱动测试MBT_微软_郑柯_InfoQ精选文章