首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏张善友的专栏

    行为驱动开发Behaviour Driven Development

    缘于一个很显而易见的原因——“软件开发是要服务于业务需要的”,但实际项目中往往因为各种外部原因打扰我们对这个问题的关注,项目开发的很多时间被“浪费”在怎样完成令项目经理满意的各种报表上,或者像有点“走火入魔”趋势的测试驱动一样 业务驱动的开发 翻译,行为驱动开发(一)Behaviour Driven Development 行为驱动的开发框架——NBehave Behave# NSpec nspec-extensions

    958100发布于 2018-01-31
  • 来自专栏ThoughtWorks

    如何驱使行为改变 | 驱动变革

    比起职权我们更应该学会影响他人,驱动他们在行为上发生改变 。无论是否具有职权,成功地驱动变革都不是件容易的事情。 关于职权在变革中的作用我们将在下一章讨论,在那之前首先需要讨论的是成功驱动变革的核心因素——如何驱使行为改变。 ? ---- 什么可以带来行为的改变? 最后,也是最重要的,分析结果的确能够改变人的思维,但却很少能够有效地改变人的行为方式。比起思维,情感更能驱动人们作出行为的改变,而很少有分析结果能真正地打动人心,建立情感上的纽带。 成功的变革最终都会解决一些具体问题,但单刀直入式地从解决问题开始,并不一定是驱动人们作出行为改变的最佳方式。而当人们在情感上建立联系之后,往往会作出更有效的分析,也更容易接受思维上的改变。 变革的意愿越强烈,成功改变行为的几率就越高。有两种感受与改变的意愿密切相关:信任感与紧迫感。所以驱动行为改变最重要的步骤是获取信任、确立愿景以及提升紧迫感。

    83520发布于 2019-05-05
  • 来自专栏FunTester

    行为驱动开发(BDD):不再鸡同鸭讲

    今天我们来聊聊行为驱动开发(BDD),看看它如何解决这个鸡同鸭讲的沟通难题。 BDD 是什么:用大白话讲明白 行为驱动开发(Behavior-Driven Development,BDD)是测试驱动开发(TDD)的升级版,核心思想很简单:用人话描述系统该怎么工作,不像 TDD 那样写一堆技术人员才看得懂的单元测试 ,BDD 直接用接近自然语言的方式描述系统行为,让产品经理能看懂,开发能看懂,测试能看懂,连老板都能看懂——这就是 BDD 的杀手锏。 TDD 和 BDD 的关注点不同:TDD(测试驱动开发)关注代码实现层面,颗粒度是类、方法级别的单元测试,主要由开发人员使用,解决的问题是保证代码质量和可测试性,典型问题是这个方法的输入输出对不对? 而 BDD(行为驱动开发)关注用户行为和业务价值,颗粒度是功能级别的验收测试,需要产品、开发、测试全员参与,解决的问题是确保做对的事和保证业务价值,典型问题是用户能不能完成这个业务流程?

    49810编辑于 2025-12-29
  • 来自专栏云计算运维

    什么是行为驱动的 Python?

    您是否听说过 行为驱动开发(behavior-driven development)(BDD),并好奇这是个什么东西? BDD 的核心是:使行为成为软件开发的焦点。在开发早期使用示例语言的规范来定义行为。最常见的行为规范语言之一是 Gherkin,Cucumber项目中的Given-When-Then场景格式。 行为规范基本上是对行为如何工作的简单语言描述,具有一致性和焦点的一些正式结构。 通过将步骤文本“粘合”到代码实现,测试框架可以轻松地自动化这些行为规范。 下面是用Gherkin编写的行为规范的示例: 根据产品的行为定义产品的功能可以更容易地描述产品,开发产品并对其进行测试。 这是BDD的核心:使行为成为软件开发的焦点。 行为规范基本上是对行为如何工作的简单语言描述,具有一致性和聚焦点的一些正式结构。 通过将步骤文本“粘合”到代码实现,测试框架可以轻松地自动化这些行为规范。

    2.4K30发布于 2021-10-25
  • 来自专栏Java Web

    Java 8——行为参数化

    Java 8中新增的功能是自Java 1.0发布以来18年以来,发生变化最大的一次。 (1)用行为参数化把代码传递给方法 Java 8中增加了通过API来传递代码的能力,但这实在听起来太绕了,这到底在说什么! 在Java 8中,这样做起来(不止于匿名类)远远比你想象的要来得更加清晰、简洁。 这就是行为参数化:让方法接受多种行为(或战略)作为参数,并在内部使用,完成不同的行为。 你现在在灵活性和简洁性之间找到了最佳平衡点,这在Java 8之前是不可能做到的!

    1.2K70发布于 2018-04-26
  • 来自专栏敏捷测试

    敏捷测试如何应用 BDD(行为驱动开发)?

    行为驱动开发(Behavior Driven Development,简称BDD)作为敏捷测试的重要实践,强调“以行为描述需求”,促使开发、测试、产品团队跨职能协作,有效缩短需求到交付的路径,提升软件质量和团队效率 一、BDD的核心理念与敏捷测试的契合点1.1 BDD简介BDD起源于敏捷和测试驱动开发(TDD),强调用自然语言的“行为规范”描述需求,通过示例驱动开发和测试。 自动化测试基础 行为规范直接转化为自动化测试脚本,实现“需求即测试”,确保代码始终满足业务预期。 快速反馈机制 敏捷强调短周期迭代,BDD通过行为示例驱动测试,缩短需求验证周期,快速定位问题。 二、敏捷测试中BDD的实施方法2.1 以用户故事驱动行为描述敏捷团队通常以用户故事形式捕获需求,BDD将用户故事细化为具体行为场景(Scenarios),描述“给定-当-那么”(Given-When-Then 3.4 支持业务驱动开发BDD聚焦业务价值,通过行为驱动开发优先级,有助于聚焦关键需求,提升产品价值交付速度。

    48810编辑于 2025-07-05
  • 来自专栏CreateAMind

    更新中:灵活意图驱动的目标导向行为

    Flexible intentions: An Active Inference theory 由动态和灵活的意图驱动的主动推理可以在不断变化的环境中支持目标导向的行为 关键的贡献涉及目标导向行为的形式化以及通过灵活意图的定义将动态目标 因此,由动态和灵活的意图驱动的主动推理可以在不断变化的环境中支持目标导向的行为,并且 PPC 可能承载其核心意图机制。 意图对运动目标或计划进行编码,在运动行为本身开始之前设定,因此可以被视为自愿行为的记忆持有者(Andersen,1995;Snyder 等,1997;Lau 等,2004;Fogassi 等,2004) 然而,需要进一步的研究来了解这两种力量在目标导向行为中的关系。 为了实现目标导向的行为,最小化与动作相关的自由能就足够了(参见公式 7): 鉴于电机控制信号仅依赖于感觉信息,我们得到: 最小化所有感觉信号的自由能当然是有用的,因为每个可能性贡献都会驱动信念更新;然而

    51310编辑于 2024-04-11
  • 来自专栏Opensource翻译专栏

    3个开源行为驱动的开发工具

    行为驱动开发(BDD)似乎非常容易。测试以易于阅读的格式编写,允许产品所有者,业务赞助商和开发人员提供反馈。这些测试是团队的有效文档,因此不需要任何要求。这些工具易于使用,可让自动化测试套件。 我还了解到,这是仅由团队的开发人员而不是BA或QA员工进行的实验,这违背了理解最终用户行为的目的。 在谈话中,被鼓励尝试BDD,因此我和测试分析师去找老板,说愿意一试。 然后,我读了Gaspar Nagy和Seb Rose的《发现:使用示例探索行为》,学到的第一件事是测试自动化是BDD的一项优势,但它不应成为主要目标。难怪失败了! 3种BDD工具可供选择 BDD的核心是一种帮助整个团队了解最终用户的行为行为的方法,这将导致更清晰的需求,测试以及最终更高质量的应用程序。在选择工具之前,请先做准备。 你有什么需要 实施BDD可使团队测试用户的行为。可以完全不自动执行任何测试来完成此操作,但是如果正确完成操作,则可以生成功能强大且可重复使用的测试套件。

    1.7K11发布于 2019-12-25
  • 来自专栏大飞的部落阁

    HttpRunner-8-数据驱动

    数据驱动概览 为什么要用数据驱动 举个简单例子,当我们在测试一个输入框的功能时,可能需要输入不同的参数,此时,我们不需要设计多个用例,而只需要将输入值参数化,将不同的参数作为一个列表通过数据驱动的方式进行加载即可 httprunner 的数据驱动 通过上篇文章,我们已经知道 httprunner 的数据驱动需要在 testsuite 中使用关键字 parameters 来定义。 yml parameters: user_id: [1001, 1002, 1003, 1004] 进行该配置后,测试用例在运行时就会对 user_id 实现数据驱动 通过以上内容,我们可以知道,在 HttpRunner 的数据驱动中,我们有 6 种方式进行实现。 独立参数 & 引用自定义函数 6 关联参数 & 引用自定义函数 数据驱动实例 在上面我们已经介绍了 6 中驱动模式,而且也学习了直接在 yml 文件中定义参数的两种场景,那怎么使用 CSV 文件实行数据驱动

    51110编辑于 2022-06-17
  • 来自专栏技术文献

    Java8——行为参数化传递代码

    匿名类还是不够好,第一,它往往很笨重,占用了很多的空间,第二,使用起来让人费解,导致代码可读性不高,即使匿名类处理在某种程度上改善了为一个接口声明好几个实体类的啰嗦问题,但是还是不能令人满意,自java8引入的 Apple apple)-> "red".equals(apple.getColor())); 不得不承认,使用lambda表达式改写之前的代码确实干净很多,因为它看起来更像问题陈诉本身了,解决了啰嗦的问题 8、 9、小结 行为参数化,就是一个方法接收不同的行为作为参数,并在内部使用他们,完成不同行为的能力。 行为参数化可以让代码更好的适应不断变化的要求,减轻未来的工作量。 传递代码,就是将新行为作为参数传递给方法,但是在java8之前实现起来很啰嗦。为接口声明许多只用一次的实体类而造成的啰嗦代码,在java8之前可以用匿名类来减少。 java API 包含很多可以用不同行为进行参数化的方法,包括排序、线程等。

    63130发布于 2020-09-02
  • 来自专栏云云众生s

    使用Cucumber在Android中实现行为驱动开发

    通过使用人类语言,行为驱动开发(BDD)弥合了软件开发中技术人员和非技术人员之间的差距。 这正是 行为驱动开发 (BDD) 的目标:在开发人员、测试人员和业务利益相关者之间达成理解。 作为一名软件工程师,我一直在使用最流行的工具之一 Cucumber 来实现 BDD。 它使任何人都可以使用任何口语编写所需行为的纯文本描述,并使用这些描述运行自动化测试。 它的纯语言解析器 Gherkin 促进了这一点,因为它以客户、利益相关者、经理、开发人员、质量保证 (QA) 测试人员等可以理解的清晰且合乎逻辑的语言指定了预期的软件行为行为驱动开发促进了自然语言中的协作和沟通。 Cucumber 等工具可帮助使用可执行规范作为自动化测试来实现 BDD,从而使团队能够创建清晰、共享的文档。

    1.9K10编辑于 2024-11-10
  • 来自专栏java一日一条

    暴露程序猿身份的8行为

    近年来,在Stack Exchange和Quora上也有过类似的讨论,我们这里总结了程序员日常生活中经常表现出来的8个编程思维。你有没有同感呢? 当然,还有一些约定俗成的编程规范,如代码缩进(是缩进4个字符还是8个字符)、注释风格,采用骆驼式(CamelCase)或帕斯卡式(Pascal)来命名变量或函数等等。 日常行为:这些编程习惯可能就会影响到程序员的日常文档书写习惯,比如写邮件时会用分号来结束一行内容等。 日常行为:这些快捷键有时在程序员的行为和话语中表现的很常见,这也会在一些场合引起尴尬。 例子: "Mentally trying to Ctrl-Z on things I just said. 日常行为:常常不以10进制而是以2进制进行计算。一些平常的日子在程序员眼里也变得很神奇,如程序员日就是每年的第256天(2^8),也有人推荐将每年的10月24日作为程序员日(2^10)。

    48510发布于 2018-09-18
  • 来自专栏Java架构师历程

    Java 8:1行为参数化

    18 次查看 行为参数化本质上是一块代码并使其可用而不执行它。例如,它可以传递给方法。由于Java 8引入了lambdas(最后),现在可以使用匿名函数来参数化方法的行为。 将行为作为参数传递可以帮助减轻变化的痛苦。 不幸的是,有些应用程序无法升级以与最新版本的Java一起运行。因此,我将介绍可用于Java 8之前的运行时的替代解决方案。 Java 8 lambdas 最新版本带来了一些新功能,可以提高代码的可读性,并帮助语言在未来保持竞争力。让我们看看书籍过滤示例,看看行为参数化如何与语言中内置的lambdas一起使用。 迭代由Streams API处理,由于lambda,行为是可参数化的。因此,Java 8不是编写大量的样板代码,而是处理常见的任务,只需一行代码即可解决手头的问题。 行为参数化很好,因为它使您能够将迭代集合的代码与应用于集合的每个元素的行为分开。这样可以更好地重用代码,并帮助您编写更灵活的API。

    2K20发布于 2019-03-08
  • 来自专栏数据的力量

    如何用数据看用户行为驱动产品设计

    从数据中看用户行为是一件很有趣的事情,了解用户行为后相应的对我们的产品设计、专题设计进行优化,就能生产更高转化率的作品。 3、输入行为会导致用户流失。 下面的例子从数据上看第三、四、五屏的数据比较平稳,但从第二屏到第三屏的丢失高达39%。 反观专题,第三屏到第四屏、第四屏到第五屏的操作是选择,而第二屏到第三屏的操作中还带有输入行为。 4、热门对象会带来更多关注。 7、有行为触发的icon要设计的足够醒目易懂。 PC页面用户有点击左上角logo返回首页的习惯,手机页面的操作习惯可能会受logo设计影响。 8、动画明显的元素容易引起用户注意并点击。 下例H5小游戏在开始前会进行一段动画,部分用户在动画过程中就开始点击页面。

    98530发布于 2018-06-20
  • 来自专栏ceshiren0001

    Playwright与Cucumber集成:实现行为驱动开发(BDD)实践

    这就是BDD(行为驱动开发)的核心价值——用业务语言描述测试。 经过两个月的实践,我们团队发现这套组合带来了明显的变化:沟通成本降低:产品文档几乎可以直接复制为测试场景测试覆盖更合理:关注用户行为而非实现细节反馈速度加快:失败的测试能明确告诉我们是"什么行为"出了问题当然

    20610编辑于 2026-01-21
  • 来自专栏PowerBI战友联盟

    世界首届“行为驱动型”报表大会-主题演讲精要

    近日,由 Zebra BI 发起组织的世界首届 “行为驱动型” 报表大会完毕。会中给出了非常重要的见解,在此与大家分享探讨。 小提示 大部分形形色色的报表在业务行为报表专家眼中的价值是零。 这个系列《“行为驱动型” 报表》将和大家一起来探讨这个问题。 这位是:Zebra BI 的创始人 Andrej Lapajne,他的演讲会让大家对这个问题有新的认识。 来看结果: 以上报表看着高大上,这些也是平时来吸引眼球的资料,但从 “行为驱动型” 报表的标准来说,都不符合标准。 观察这个报表,其问题是:我到底应该看哪里呢?销售额是这个,那是好还是不好呢? (推荐的方法) 数字化转型的基础:标准 过程改进的流程一个示范可以是这样的: 结论 要想实现 “行为驱动型” 报表并下决心这样做,就要考虑: 并重点强调: 清楚才是力量。 行动才是价值。 其实,所有的工具都有一套与之相适配的方法论,这里给出的 “行为驱动型” 报表的原则可以看到是一种方法论的凝练,这不限于任何技术。 欢迎大家一起讨论如何设计更有价值的报表。

    50920编辑于 2022-07-07
  • 来自专栏斑斓

    一文讲清楚什么是行为驱动开发

    标签 | 行为驱动开发 作者 | 张逸 行为驱动开发(Behavior-Driven Development, BDD)的概念来自于测试驱动开发,强调使用DSL(Domain Specific Language ,领域特定语言)描述用户行为,定义业务需求,是需求分析人员、开发人员与测试人员进行沟通的有效方法。 可以说,行为驱动开发将编码实现与业务行为描述完美地结合起来,走出了一条业务分析人员、开发人员与测试人员都能接受的中庸之道。 行为驱动开发的核心在于“行为”。 在进行行为驱动开发时,需要避免两种错误的倾向: 从UI操作去表现业务行为 描述技术实现而非业务需求 例如,我们要编写“发送邮件”这个业务场景,可能会写成这样: Scenario: send email 这种方式实则是让用户界面捆绑了你对领域行为的认知。准确地说,这种UI交互操作并非业务行为,例如上述场景中提到的button与textbox控件,与发送邮件的功能并没有关系。

    1.2K20发布于 2018-07-27
  • 来自专栏追不上乌龟的兔子

    使用behave框架在Python中实践行为驱动开发

    诞生于上世纪末的测试驱动开发(TDD)已经算是很深入人心了,一定程度上来说它通过既有的约定(测试)减少了开发人员间的沟通成本。 但这些测试也只是开发人员自己对需求的理解,有时候开发人员、业务人员、市场部门和用户对需求的理解是有分歧的,传统的方案是厚厚的需求说明书,从测试驱动开发引申来的行为驱动开发BDD(Behavior Driven 本文也不对行为驱动开发多做赘述,那是一个很大的话题,而是向大家介绍一下Python的BDD框架behave,其中会大致讲一下行为驱动开发的各个关键概念。 结语 下次当你和项目经理或用户对某个需求有很大分歧时,不妨考虑一下使用行为驱动开发。 最后祝大家享受生活,享受代码。

    4.6K50发布于 2018-07-06
  • 来自专栏公共互联网反网络钓鱼(APCN)

    行为 AI 驱动的邮箱安全融入 MSSP 运营模式研究

    反网络钓鱼技术专家芦笛指出,MSSP 邮箱安全的核心矛盾是高度动态的 AI 威胁与静态规则驱动、碎片化、人力密集的传统运营体系之间的不匹配,必须以行为 AI 替代规则、以统一平台替代多控制台、以弹性商业模型替代僵化授权 5.4 可解释自动化与复核机制系统输出决策依据,包括行为偏离点、关联证据、置信度,分析师可一键复核、回滚、升级,兼顾效率与托管安全责任。 7.2 威胁检出与处置能力增强行为 AI 有效识别 AI 生成钓鱼、BEC、零日威胁,跨通道关联降低漏检率,自动化将威胁阻断在早期阶段。 8 现存挑战与优化方向8.1 挑战行为基线建立需冷启动周期,初期需人工辅助验证;高度定制化协作工具与本地邮件系统集成复杂度较高;跨境数据合规与租户数据隔离需持续适配区域法规;部分小型 MSSP 仍存在 9 结论Darktrace 将行为 AI 邮箱安全深度融入 MSSP 运营模型,为行业提供了可复制的解决方案:以自学习行为检测应对 AI 动态威胁,以统一运营门户消除多租户碎片化,以智能降噪与自动化缓解告警过载

    10310编辑于 2026-03-31
  • 来自专栏C/C++基础

    设计模式(8)——命令模式(Command Pattern,行为型)

    命令模式(Command Pattern)属行为型,将请求封装成对象,以便使用不同的请求、请求日志或请求队列等来参数化其他对象。命令模式也支持撤销操作。 4.小结 (1)命令模式属行为型,将请求封装成对象,以便使用不同的请求、请求日志或请求队列等来参数化其他对象。命令模式也支持撤销操作。

    64420发布于 2018-08-03
领券