행동 중심 개발(영어: BDD)은 소프트웨어 프로젝트에서 개발자, QA, 비기술자 또는 비즈니스 참가자 간의 협업을 장려하는 민첩한 소프트웨어 개발 기술입니다.

행동 주도 개발

행동 중심 개발 (영어: BDD )은 개발자, QA , 비기술자 또는 소프트웨어 프로젝트 참여자 간의 협업을 장려하는 민첩한 소프트웨어 개발 기술 입니다 . BDD는 원래 2003 Dan North 에 의해 명명되었습니다 . 여기에는 테스트 중심 개발 에 대한 대응으로 승인 테스트 및 고객 테스트 드라이브와 같은 극단적인 프로그래밍 방식이 포함됩니다 . 지난 몇 년간 많이 성장했습니다.

소프트웨어 개발

핵심 활동

  • 프로세스

  • 필요

  • 설계

  • 프로젝트

  • 구조

  • 시험

  • 디버그

  • 배포

  • 유지하다

패러다임과 패턴

  • 프로토타이핑

  • 깨끗한 방

  • 증분 모델링

  • 폭포 모델

  • 민첩한 소프트웨어 개발

  • 나선형 모델

방법론 및 프레임워크

  • 신속한 애플리케이션 개발

  • 데브옵스

  • 익스트림 프로그래밍

  • 팀 소프트웨어 프로세스

  • 개인 소프트웨어 프로그램

  • 동적 시스템 개발 방법

  • MSF

  • 스크럼

  • 광고 게시판

  • V 모델

  • FDD
  • MDD

  • 반복 개발

  • 린 개발

  • 프로세스 통합

지지적인 행동

  • 구성 관리

  • 선적 서류 비치

  • 품질 보증

  • 프로젝트 관리

  • 사용자 경험

관행

  • ATDD

  • 행동 주도 개발

  • 지속적인 통합

  • 지속적인 전달

  • 도메인 중심 디자인

  • 페어 프로그래밍

  • 스탠드업 회의

  • 테스트 주도 개발

도구

  • 컴파일러

  • 디버거

  • 성능 분석

  • GUI 디자이너

  • 모델링

  • 통합 개발 환경

  • 자동화 구축

  • 릴리스 자동화

  • 시험

표준 및 지식 시스템

  • 능력 성숙도 모델 통합

  • IEEE 표준

  • ISO 9001

  • ISO/IEC 표준

  • 스웨덴어 도서

  • 프로젝트 관리 지식 시스템

  • 바복

2009年,在伦敦发表的“敏捷规格,BDD和极限测试交流”中,Dan NorthBDD给出了如下定义:

BDD是第二代的、由外及内的、基于拉(pull)的、多方利益相关者的(stakeholder)、多种可扩展的、高自动化的敏捷方法。它描述了一个交互循环,可以具有带有良好定义的输出(即工作中交付的结果):已测试过的软件。

BDD的重点是通过与利益相关者的讨论取得对预期的软件行为的清醒认识。它通过用自然语言书写非程序员可读的测试用例扩展了测试驱动开发方法。行为驱动开发人员使用混合了领域中统一的语言的母语语言来描述他们的代码的目的。这让开发者得以把精力集中在代码应该怎么写,而不是技术细节上,而且也最大程度的减少了将代码编写者的技术语言与商业客户、用户、利益相关者、项目管理者等的领域语言之间来回翻译的代价。

Dan North创造了首个BDD框架:JBehave;之后是Ruby语言的基于故事的RBehave,后来被纳入了RSpec项目。他还与大卫赫利姆斯基、Aslak Hellesøy及其他人开发了RSpec,并一起编写了《The RSpec Book: Behaviour Driven Development with RSpec, Cucumber, and Friends》。RSpec中第一个基于故事的框架,后来被主要由Aslak Hellesøy开发的Cucumber 页面存档备份,存于)取代。

2008 年,参与了围绕BDD进行的首轮讨论的克里斯马茨,提出了特性注入(Feature Injection)的想法,使BDD可以覆盖分析空间并提供从初期的展望到编码和发布的整个软件生命周期过程的改造。

BDD 实践

BDD的做法包括:

  • 确立不同利益相关者要实现的远景目标
  • 使用特性注入方法绘制出达到这些目标所需要的特性
  • 通过由外及内的软件开发方法,把涉及到的利益相关者融入到实现的过程中
  • 使用例子来描述应用程序的行为或代码的每个单元
  • 通过自动运行这些例子,提供快速反馈,进行回归测试
  • 使用“应当(should)”来描述软件的行为,以帮助阐明代码的职责,以及回答对该软件的功能性的质疑
  • 使用“确保(ensure)”来描述软件的职责,以把代码本身的效用与其他单元(element)代码带来的边际效用中区分出来。
  • 使用mock作为还未编写的相关代码模块的替身

特性注入

一个公司可能有多个会带来商业利益的不同愿景,通常包括盈利、省钱或保护钱。一旦某个愿景被开发小组确定为当前条件下的最佳愿景,他们将需要更多的帮助来成功实现这个远景。

然后确定该愿景的主要利益相关者,会带入其他的利益相关者。每个相关者要定义为了实现该愿景他们需要完成的目标。例如,法务部门可能要求某些监管要得到满足。市场营销负责人可能要参加将使用该软件的用户的社区。安全专家需要确保该软件不会受到SQL注入的攻击。

通过这些目标,会定义出要实现这些目标所需要的大概的题目(theme)或者特性集合。例如,“允许用户排序贡献值”或“交易审计”。

从这些主题,可以得到用户功能以及用户界面的第一批细节。

由外及内

BDD是由商业价值--在应用开发中自然增长的商业利益--所驱动的。要认清这个利益的唯一方式,是通过用户接口(通常--但并不总是--图形界面,GUI)理解应用程序。

同样,每一段代码,从用户界面开始,可以视作它使用的其他模块代码的利益相关者。每个代码单元(element)通过与其他单元合作,提供部分行为,从而实现整个应用程序的行为。

参见

  • 测试驱动开发,TDD/Test-Driven Development
  • Scrum

引用

    1.  D.North, Introducing Behaviour Driven Development 页面存档备份,存于)
    2.  D.North, comments, The RSpec Book - Question about Chapter 11: Writing software that matters 页面存档备份,存于)
    3.  Dan North: How to sell BDD to the business 页面存档备份,存于)
    4.  D.North, Introducing RBehave 页面存档备份,存于)
    5.  S.Miller, InfoQ: RSpec incorporates RBehave 页面存档备份,存于)
    6.  Chris Matts, Feature Injection
    7.  E.Keogh, BDD - TDD done well? 页面存档备份,存于)

外部链接

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.

 

 

 

추천

출처blog.csdn.net/weixin_40191861/article/details/132823154