Skip to content

Instantly share code, notes, and snippets.

@mrtns
Last active January 2, 2016 21:39
Show Gist options
  • Save mrtns/8364792 to your computer and use it in GitHub Desktop.
Save mrtns/8364792 to your computer and use it in GitHub Desktop.
BDD Notes

BDD

“BDD is a second-generation, outside-in, pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software that matters.”

Goals

2. Quality

1. Go Faster

Theory, Practice

Extreme Programming

improve software quality and responsiveness to changing customer requirements

  • rapid iteration
  • tight feedback loops

http://en.wikipedia.org/wiki/Extreme_programming

TDD

  • code quality, modularity
  • safety net that allows more rapid change

http://c2.com/cgi/wiki?TestDrivenDevelopment

Behaviour

  • requirements are behaviour
  • tests are for behaviour
  • outside in vs inside out
  • outer loop vs inner loop
  • build the right software vs build the software right

Agile Organization, Process

  • cross functional
  • collaborative

Lean

eliminate waste

http://en.wikipedia.org/wiki/Lean_software_development

Agile Practice

User Stories

  • As a, I want, So that (In order to)
  • Personas

User Acceptance Tests

  • acceptance criteria
  • scenarios

Specifications

a semi formal format, template

Domain Driven Design

tackling complexity in the heart of software

  • Domain modelling
  • Ubiqitous language
  • Domain specific language

Design

structural design of shared information

  • information architecture
  • semantic elements, components

Automation

  • executable specifications
  • imperative vs declarative

Documentation

  • living
  • shared
  • canonical (single source of truth)

Communication

  • at scale
  • encoding intent

Collaboration

Agile Testing

Test Case Management

Testing Pyramid

Testing Quadrants

Testing vs Checking

Agile Story Mapping

Psychology

Frequent Feedback

  • execution reports
  • living documentation
  • story maps

Initiating and Evolving

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment