首页 >> 运营 >> 只擅长构建该软件是不够的,我们必须擅长构建可测试的该软件 | QCon

只擅长构建该软件是不够的,我们必须擅长构建可测试的该软件 | QCon

2024-01-16 运营

的系统西北面 ABC 一段时间,我们可执行 XYZ 动作,那么它应就会造成了了结果 R。接二连三的是,我们很无可基本上观察到 R,所以我们须要找到 R 的病症,而不是 R 本身。

根据病症可执行可验证常会用到在可观察适度偏高的的系统里面。然而,某种程度因为一个的系统的虚拟化具备可观察适度,非常显然从可验证的视角来看它也是可观察的,而且也不就会受到这个疑问的因素。例如,许多的系统都是由离地可观察的独立配件都是由的,在次测试时并不需要将这些配件彼此之间的意外事件区别大大的,但不共存这样的机制。虽然单个配件是可观察的,但作为一个整体的的系统是不作观察的,这致使了可次测试适度。

一个更为有趣并更为常见于的事例是在次测试时并不需要通过抓取的系统快照来擦除的系统一段时间。可次测试的的系统不立即次测试通过给与快照文件来可验证其用于暴力,这么兰花钱就会造成了了一个的系统里面的一些有趣而可信的心里在另一个的系统里面越来越更加乏味和不作信。

对人工次测试的市场需求:如果在次测试时须要将自判别基本功能过渡到到生产代码里面,就就会用到这种原因。例如,服务上端点、原始数据注入 / 采集机制或配置选项。这些代码共存的唯一理由是用它们来赞同次测试,这么兰花钱是前提的,因为实际的的系统更加较无可次测试。虽然转为一些小次测试挂钩不一定总是坏事,但为了赞同次测试迫使转为大量的人工次测试是较无可次测试的软件包的一个病征。

肥胖的次测试金字塔:当次测试新版本由于的系统的气质而迫使过度依赖性某种多种类型的次测试来开展大多数可验证时就就会用到这种病征。这一疑问的常见于方式则是 UI 转子的上端到上端次测试与其他较小的次测试(通常称为“倒金字塔次测试”)的数量不成数量。

这非常是因为自动控制的系统并不需要开展上端到上端 UI 次测试,而是因为被次测试的系统的某些全面性暂时通过 UI 开展允许可验证,不想像中可能是更糟的 API 的设计、专有的传输协议、更糟的类的设计、极为有用的框架或其他的原因。就像为了让钥匙孔窥见大窗户一样,次测试并不需要为了让一个小物镜会面时的系统,它们被的系统的气质所冲击,不能碰到更为恰当、更为基本上的交互点。

须要重新部署、另设基本上的大型(不想像中可能是共享的)次测试生态来可验证用于暴力——因为所有的次测试都是上端到上端次测试,当某种用于暴力只并不需要的系统的一小大多时,这就是一种浪费,也是较无可次测试的软件包的常见于病征。

次测试生态稀缺 / 资源争夺:当底层虚拟化或的系统的其他全面性造成了了将的系统复制到次测试生态或快速重新部署一新生态越来越很强下一场适度或不不想像中可能时,就就会用到这种病征。

例如,很多的系统里面不想像中可能包涵了来自 SAP 或 Oracle 等生产商给予的民营企业 ERP 或 CRM 软件包模板。这些配件代表了整个的系统的核心基本功能,但因为模板受限(由于许可或自判别软件市场需求),暂时在生态彼此之间允许采用多租户新方法(即跨次测试生态共享 ERP 的系统的模板)。虽然我们不想像中可能不能消除对第三方配件的依赖性,但任何阻止低成本和快速重新部署一新生态的用于暴力都就会降低可次测试适度。

此外,在生态彼此之间共享配件模板过渡到了各种一新的次测试原始数据管理工作疑问,这是对可次测试适度的另一个仗面因素。

时长依赖性:当次测试或自动控制次测试以某种方式则与的系统的单纯时钟关的联时,就就会用到这种病征。例如,论据一个的系统在一天的特定时长批处理一些原始数据,并且很无可所致地触发特别强调,或者如果被触发,将对的系统的其他周边地区显现不止不前提的因素。因此,对这个处理基本功能的任何次测试都须要确保它与单纯世界的时长是并行的。

这个事例看大大的看来不是很自然地,而且显然是一种更糟的虚拟化,但对于大型的民营企业软件包的系统来说,与非自动控制流程或与区别了时长的流程发生交互是很常见于的,这些交互比较严重冲击了可次测试适度。

我打算那些有可验证早期软件包实战经验的人应就会认同,无非你们有多少次碰得头破血流,只是为了试图可验证的系统里的那些看大大的很容易的大多!或者你们兰花很多时长原始数据处理一个失败的次迭代,只是为了重一新原始数据处理它,并让它通过,却不真的发生了什么。你们应对较无可次测试的软件包的痛点深有体就会。

许多工作者可以遵从这些原因,因为它们想像中常见于了。他们论据处理不作管理工作的次测试原始数据、用于有限或共享的次测试生态、根据病症可执行可验证或依赖性自判别次测试挂钩是前提的,或者至少是较长时间的。他们只可验证过较无可次测试的软件包,所以这并未沦为了一种期待,沦为一种可遵从和受不了的从前。他们倒是不能可验证过或许可次测试的的系统,所以不真的拿什么与之对比。

然而,造成了了这些病征的根源非常是次测试工作人员或次RC,非常是因为他们用于了差错的工具,或者他们不够精明。究竟原因是的系统较无可次测试。他们被立即化解这些棘在手的疑问,他们暂时去化解。他们忽视这是他们的兼职,并尽他们所能兰花钱到最好。

这些不想像中可能是较无可次测试的软件包数百种病征里面的一小大多。每一种病征看大大的都是一个痛点,一个下一场,但归结大大的,它们就会显现不止能量密度的相异。较无可次测试的软件包是或许的总是!

为什么可次测试适度很关键性

我们来看一下为什么这个疑问很关键性。

如果软件包下单可以被可分 999 个联合开发大多和一个可验证大多,那么这个疑问就不那么关键性了。即使在极上端意味著,由于的系统的不作次测试适度造成了了 1 个可验证大多变成了 20 个,与软件包的联合开发成本相比仍然不值一提。如果我们把积蓄放进最优化 999 个联合开发大多上,就会获得较好的特性,并且显然有理由忽略 1 个(或 20 个)可验证大多,它们在整个疑问里面所占的数量非常大。

我打算你们不就会忽视 999 与 1 这种数量分配是对的。虽然将软件包下单可分“联合开发”和“可验证”两个大多是很自然地的,并且有一百万个因素变量,但我忽视联合开发兼职和可验证兼职彼此之间的应该数量不想像中可能更为相比之下 1 比 1。然而,实际的数量级非常关键性,关键性的是你要真的可验证是下单软件包整体兼职的关键性都是由大多。

因此,可验证兼职在有用适度全面性共存能量密度的相异,这是有疑问的。如果联合开发和可验证的数量是 50 比 50,而可验证的成本高曾达 500,那么你就不不想像中可能下单软件包了。

这么大规模进行度的增加显然所有基本上下单软件包的兼职都不想像中可能被可验证兼职所抵消。选择到可验证的更加大仗速度因素,所有用于提升制作团队效率的共同努力都不想像中可能是毫无意义的。如果我们很无可控制软件包的可次测试适度,所有的下单日期都将是暗示,评估应用越来越显然无用。

如果你以任何方式则积极参与了软件包下单,这些应就会让你倍感责怪。软件包的可次测试适度不想像中可能是你的不幸。这就是为什么软件包的可次测试适度很关键性。

如果我们不化解可验证疑问对软件包下单的更加大因素,而只是把它遗大大的或扔给一群不知情的“精确度前提”工作人员,我们将不能基本上、可预测地下单高精确度的软件包。只是娴熟框架软件包是不够的,我们须要娴熟框架可次测试的软件包。

陈旧的精确度前提

精确度前提是软件包次测试的管理制度,一个深刻印象、广泛且大幅发展的各个领域。它也不亚于下一场适度,立即次测试工作人员具备分析能力、批判适度意识、化解疑问的能力、想像力和强大的建筑工程技巧,如此一来欠缺一整套软技巧:沟通能力、因素力、化解冲突能力等。从这一点上讲,我更加仰慕这些精确度前提工作者。

接二连三的是,按照传统过分,精确度前提在可验证早期软件包全面性共存想像中低。原因是什么?因为精确度前提的疑问范围判别在在要次测试的软件包开始的。就总是是说:对于这个软件包,我们该如何最基本上地次测试它?我们如何建起这个软件包一定就会为客户带上来实用价值的决心?对于精确度前提来说,软件包(无论是规范还是意味着)都是疑问的缺少。

这种思打算是抗拒的,它极为狭隘地非议被次测试的软件包。因为软件包可次测试适度共存更加大的相异,所以有关软件包精确度的主要疑问应是如何这样一来次测试软件包所随之而来的下一场。如果软件包较无可次测试,那么精确度前提方式则而——无论多么深思、富有洞察力或塑造适度——都不就会基本上。 如此一来多的精确度前提也很无可过多能量密度的可次测试适度疑问。

换句话说,精确度前提可以范本我们如何高效、基本上地次测试软件包,但是当软件包不能次测试时,精确度前提就无济于事了。

一些软件包精确度前提工作者不想像中可能就会反驳,他们声称左移、过后次测试和外置精确度这些概念包涵了相同的打算法。然而,所有这些非议的都是精确度,而不是可次测试适度。他们忽视应尽早开展次测试,或者常会开展,或者过后开展,这样就可以尽早(甚至在规范里面)辨认出局限性或从一开始就过多用到局限性。虽然它们都是值得称赞的方式则而,并且都是卫生次RC的一大多,但都不能框架不止可次测试的软件包,不能希望过多能量密度的可验证疑问。

接二连三的是,不仅精确度前提对于可验证早期软件包来说是陈旧的,作为疑问化解者的精确度前提工作人员,尽管他们有极佳的意图,但有时候却就会使原因越来越更为糟。

精确度前提工作者都很精明,他们喜欢化解困境。虽然化解有趣的疑问也真的,但不就会为你赢得同伴的赞扬,也不就会让你显现不止“我进行了一些了不起的心里”的多巴胺刺激,但化解困无可的疑问就会。如果你将一个较无可可验证或自动控制的疑问摆在精确度前提工作人员面前,他们很不想像中可能就会卷起袖子深入数据分析。因此,许多精确度前提制作团队不就会阻挠较无可次测试的软件包,而是就会勇气地遵从它们。对他们来说,这代表着一个可以展览他们实用价值、证明他们热忱的机就会。

这种倾向相当相相当,但却是造成了了违宪软件包下单的一种病理。尽管软件包是不作次测试的,但精确度前提各个各个领域工作人员仍然共同努力可验证软件包,从而把究竟疑问隐遗了大大的。因此,制作团队的其他核心人物也就不能看不到或认识到软件包本身共存的差错,这些差错是在框架时忽略了可次测试适度而过渡到的。

我在此非常是打算要轻视那些在精确度前提各个领域兼职的人,这是一种不亚于下一场适度和实用价值的角色。我打算要指不止的是,在早期产品联合开发里面,精确度前提是不够的。 无论如何最优化和简化,不能任何一种精确度前提流程需要弥补较无可次测试的软件包的疑问。

可次测试的虚拟化和精确度建筑工程

因为在可次测试适度全面性共存更加大的下一场,所以框架可次测试的软件包就越来越至关关键性。我们须要随着软件包的演化成而变动软件包的可验证方式则而,并利用这些方式则而来范本软件包虚拟化、的设计和意味着。可验证方式则而是软件包的转换成,而不是在软件包进行时才去创建的从前,可次测试适度应沦为软件包的设计的第一阶市场需求,与其他市场需求一样关键性。

意味着可次测试的软件包是精确度建筑工程的一个关键环节。

精确度建筑工程是关于如何主动和急于识地框架可次测试的的系统。可验证的系统不想像中可能是一项有用、很强下一场适度、耗时的兼职,任何过多、缓和或减少疑问的共同努力对基本上和高效的软件包下单来说都是更加有实用价值的。精确度建筑工程并不需要将所有精确度前提全面性的各个各个领域知识和对“如何可验证软件包”的着迷应用在“如何从一开始就框架不止更为容易可验证的软件包”这个疑问上。

接二连三的是,由于建筑的设计者这个词在招募时很强很高的市场实用价值,因此在零售业里面过度用于这个词是很常见于的,的人在招募精确度建筑的设计者时也这么兰花钱。

根据我们的判别,精确度建筑工程非常是指在的设计和框架好的系统以后才开始应用次测试和自动控制各个各个领域知识。这不是“这是一个很酷的的系统,我将用建筑工程各个各个领域知识来次测试和自动控制它”,也不是传道精确度前提各个各个领域工作人员如何区块,称他们为精确度建筑的设计者,以及他们所兰花钱的精确度前提兼职。所有这些都良好,但它们都很无可用来判别精确度建筑工程,它们都不能化解可测适度疑问。 或许的精确度建筑工程,应是急于且具体地用于精确度前提各个各个领域知识来框架可次测试的的系统。

你一定并不需要精确度建筑的设计者这样的角色来出台精确度建筑工程吗?当然不是。精确度建筑工程是一种产品联合开发哲学和新方法,与官衔显然比如说。有趣地说就是:可验证是软件包下单的一个关键性都是由大多,精确度前提不仅有用而且不亚于下一场适度,你不仅并不需要工作者来可验证软件包,还并不需要框架可可验证的软件包。这些工作者可以是联合开发工作人员、精确度前提建筑的设计者或任何你忽视恰当的人。这两项他们掌握的技巧,以及这些技巧被应用在应该的疑问上,至于官衔是什么非常关键性。

结 论

后面的素材非常能证明某些的系统的次测试进行度比其他的系统大几个能量密度,可能不能原始数据、数据分析或实证证据。我不能为你给予这些从前,我也不就会或许那些给予给我这些从前的人。

我能为你给予的是我 20 多年来希望公司框架有用软件包的系统的实战经验。我所看不到的大大多原因不是公司在共同努力框架较无可框架的的系统,而是在共同努力可验证那些框架后的的系统。

在意味着大型的重大项目时,最常见于的重大项目疑问是的系统可以按照短期内和最大限度驶不止某些点,但随后碰到了矮矮墙无形的矮墙,然后较快地爬行,下单日期被一如此一来推迟。不快的高管开始用到在制作团队就决议上,重提每个人都并未真的的截止日期,并立即每天更为一新衡量,如每日可执行的次迭代。这种集体适度的愤怒就会卷进那些被忽视对不能进行可验证仗有责任的人身上。为什么并不需要这么长时长?我们的设计并框架了这个的系统,为什么很无可次测试它?这能有多无可!

为了让这些制作团队,你无论如何就会辨认出一些较无可次测试的软件包。你将看不到人们与次测试原始数据兰花钱斗争,不能另设次测试场景和框架有用的工具和流程来管理工作它们。你将看不到制作团队共同努力框架确定适度的自动控制次测试,为此投放了大量的经费,却被不稳定的生态所冲击。你就会辨认出,因为其他的在目的不作行,所以制作团队暂时过度依赖性 UI 转子的 E2E 次测试自动控制,并不需要一整夜原始数据处理成千上万的次测试新版本,并在第二天兰花一整天来原始数据处理结果(当然是在重一新原始数据处理失败的次迭代三次最后)。你就会辨认出这些疑问,不想像中可能还有更为多。

很多人可能看不到了这些疑问,并得不止了很强破坏适度的差错结论——制作团队共存次测试疑问。

这种原因非常是更糟的次RC论或不录用的次测试工作人员造成了的,而是论据所有的系统都是可次测试的灾无可适度论据造成了的。这些重大项目现在西北面一种不那么令人羡慕的一段时间,让的系统显然原始数据处理大大的并不需要付不止的共同努力比让它稍微原始数据处理大大的所并不需要的共同努力,要多得多。对于这类的系统,可验证软件包将比框架它困无可得多——而且不想像中可能究竟不不想像中可能。

如果你愿意次测试是基本上的,并不需要可次测试的的系统,这显然你须要框架可次测试的的系统。你须要选择软件包的可验证新方法,并将其融入到软件包的虚拟化、的设计和意味着里面。让那些在软件包可验证全面性有实战经验和各个各个领域知识的人(不管他们的官衔是什么)积极参与到这些流程里面。在你的民间组织里面范本精确度建筑工程文化,借助将可验证疑问这样一来的新方法,并在一开始就过多能量密度的不作次测试软件包疑问。

译者URL:

作者引介:

精确度建筑的设计者、产品联合开发工作人员、仗责人、悲观主义者——现职 Slalom Build 精确度建筑工程高级总监。

主办活动延揽

如果你打算了解更为多关于次测试、可观察的话题,欢迎非议将于 9 年底 17 日 -19 日主办的 QCon 世界产品联合开发大就会(2022)上海站。就决议策动了【次测试生态治理】、【阳原生时代的可观察最佳新方】关的专题,分别由京东应用总监何学奇、阿里阳资深应用工作者周小帆(承嗣)两位同学不止品,目前已邀约来自阿里、微信、贴吧、优酷网网、快在手、针叶树互联网等公司的队内工作者开展致辞共享,共同挖掘业界杰出的新方案例、探讨次测试生态治理之东路,带上你了解类似零售业在阳原生应用场景下对于可观察应用的落地案例与最佳新方。

经常拉肚子吃什么药好
前列腺增生夜尿多用什么药
止鼾用什么药最见效
治疗腹泻的药有哪些
胃酸过多吃金奥康奥美拉唑管用吗
友情链接