【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

测试人员微博热议模型驱动测试 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:182527
用户头像

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

关注

评论

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

资源池化:多租户与数据库整合解决方案

TiDB 社区干货传送门

新版本/特性解读 数据库架构设计

IPQ9574 IPQ9554 what's the difference?|WIFI7 Solution|Wallys

wallyslilly

ipq9554 ipq9574

基于驱动因素的全面预算管理方式

智达方通

智达方通 全面预算管理 业财驱动 驱动因素

在找稳定的企业级数据云平台?奇点云DataSimbaR4.9 LTS发布

Geek_2d6073

无类教育完善内训体系,开启校企合作新篇章

Geek_2d6073

从零开始初识机器学习 | 京东云技术团队

京东科技开发者

人工智能 机器学习 企业号 6 月 PK 榜

发送Tidb告警信息到企业微信群实践

TiDB 社区干货传送门

监控

OpenResty 安装

流火

如何用smardaten90天快速开发并上线智慧空间loT物联平台?

热爱编程的小白白

关于 3.0 和 2.0 的数据文件差异以及性能优化思路

爱倒腾的程序员

TiDB 升级利器(参数对比)——TiDBA

TiDB 社区干货传送门

7.x 实践

远程desk工具利用总结

快乐非自愿限量之名

远程 ToDesk

TICDC 数据同步至 MySQL初体验

TiDB 社区干货传送门

迁移

来了,kubesphere轻松搭建redis

夜栩

后端 docker image KubeSphere

慧博云通加入飞桨技术伙伴计划,共同推动企业 AI 应用创新

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

迄今为止最完整的DDD实践

阿里技术

架构 DDD

专访|严靖炜:从参与 MatrixOne 到论文入选 IEEE BMSB 2023

MatrixOrigin

数据库 云原生 超融合

TIDB v7.1 reource control资源管控特性体验贴

TiDB 社区干货传送门

版本测评 7.x 实践

【TiDB v7.1.0】资源管控调研及评测

TiDB 社区干货传送门

7.x 实践

高考成绩都出来了,你的秒杀系统如何了?

冰河

并发编程 多线程 高并发 协程 秒杀系统

记一次Native memory leak排查过程 | 京东云技术团队

京东科技开发者

native 企业号 6 月 PK 榜 memory leak

干货|三个维度详解 Taier 本地调试原理和实践

袋鼠云数栈

开源 前端

探索To-D,落地好大夫效能平台

方勇(gopher)

DevOps SRE 效能平台

数字先锋|云上医院长什么样?宁夏固原中医医院带你一探究竟!

天翼云开发者社区

云计算

微服务架构的重要性:现代应用开发的关键趋势

2756

微服务架构 微服务、

券商网络信息安全启动三年计划圈重点

原点安全

微服务之道:8个原则,打造高效的微服务体系

不在线第一只蜗牛

微服务 微服务架构

带你了解爆火的AI框架-LangChain

派大星

边缘云特点、应用实践和发展趋势浅析

天翼云开发者社区

边缘云

TiDB 多租户方案和原理

TiDB 社区干货传送门

TiDB 底层架构 新版本/特性解读 7.x 实践

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