GithubHelp home page GithubHelp logo

nike-inc / tdd-training-cube Goto Github PK

View Code? Open in Web Editor NEW
11.0 2.0 4.0 6.37 MB

Papercraft cube used as training aid for Outside-In Test Driven Development

License: Creative Commons Attribution 4.0 International

training-materials test-driven-development tdd-workflow outside-in-tdd uncle-bob mnemonic papercraft

tdd-training-cube's Introduction

TDD Training Cube

The TDD Training Cube helps you keep track of which Outside-In Test-Driven Development phase you are currently operating in and what steps to take once you get there. Print out the .pdf file , follow the assembly instructions, and use the TDD Training Cube whenever you practice test-driving your code. Each face of the TDD Training Cube contains conditions and actions to take in order to transition between TDD phases; use the up-face of the cube as a reminder of what you are doing in each TDD cycle.

TDD Training CubeThe six Outside-In Test-Driven Development phases depicted on the TDD Training Cube are:

  • (Green, Outer, Start Here) All Functional Tests Pass
  • (Red, Outer) A Functional Test is Failing
  • (Blue, Outer) Refactor Functional Tests -or- Perform DevOps Tasks
  • (Green, Inner) All Unit Tests Pass
  • (Red, Inner) A Unit Test is Failing
  • (Blue, Inner) Refactor Unit Tests -or- Refactor Production Code

 

History

The TDD Training Cube was inspired by Uncle Bob's tri-billed, red-green-refactor baseball cap. Uncle Bob turns his cap to indicate to the viewer which TDD phase he is currently operating in while he demonstrates test-driven development.

Uncle Bob pictured wearing his red-green-refactor cap during a Clean Code screencast episode

We had our own Test-Driven Development screencast videos to produce for the TDD Learnstitute. But, we needed to track which of the six Outside-In TDD phases we were in, rather than Uncle Bob's three phases. We felt it would be too silly to construct a six-billed red-green-refactor hat for our videos. So, we opted instead to create a papercraft cube where, similar to Uncle Bob's cap, the face of the cube displayed to the viewer indicates which TDD phase we are currently operating in.

TDD Training Cube pictured during a TDD Learnstitute screencast episode

Also, Harry J. W. Percival's Obey the Testing Goat includes a workflow diagram that influenced the development of the TDD Training Cube.  

Protips

Handy tips to get the most out of your TDD Training Cube:

  • Reminder: you control your cube, your cube does not control you
  • TDD Training Cube power levels will naturally increase with code coverage. Never exceed the posted, safe, 100% code coverage limits
  • Do not taunt TDD Training Cube!
  • Do not hold your TDD Training Cube close to an LSS Training Sphere or an OE-1 Training Hyperboloid due to continuity slippage risks
  • Never open the TDD Training Cube. Though it is a wondrous item, once opened, TDD Training Cube will cease to contain an extradimensional space

 


The TDD Training Cube is Copyright (C) 2019, Nike, Inc. It is licensed under the Creative Commons Attribution 4.0 International license.

TDD Learnstitute Logo

tdd-training-cube's People

Contributors

woldiejdi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.