ANDRII DATSENKO <ASDatsenko@luxoft.com>

SOFTWARE ENGINEER

February 18, 2016

TEST DRIVEN DEVELOPMENT

 QUALITY IS THE KEY

REQUEST

ARCHITECTURE

DEVELOPMENT

TDD STEPS

Navigation List

Test First

Assert First

Fail First

NAVIGATION

  • ​Create view

  • Validate form inputs

  • Show errors

  • Redirect on submit

Write NAVIGATION MAP for your current/next task at project

TEST FIRST

describe('Service', function() {
    it('should capitalise words', function() {
        
    });
});

ASSERT FIRST

describe('Service', function() {
    it('should capitalise words', function() {
        sut.capitalise('hello world')
           .should.equal('Hello World');
    });
});

FAIL FIRST

PROCESS

PROS

  • Requirements are met

  • Correctness

  • Improved code

  • Code as documentation

  • Safe refactoring

  • Coverage

  • No extra code

TDD ARTIFACTS

Pomodoro

Pair Programming

Continuous Integration

POMODORO

PAIR PROGRAMMING

CI

FIX IT LATER

At each step in time, the following transitions occur:

  • Any live cell with < 2 live neighbours dies, as if caused by under-population.
  • Any live cell with 2 or 3 live neighbours lives on to the next generation.
  • Any live cell with > 3 live neighbours dies, as if by over-population.
  • Any dead cell with exactly 3 live neighbours becomes a live cell, as if by reproduction.

 

A.K.A. B3/S23

CONWAY`S GAME OF LIFE

Novice

  • Use ping-pong technique
  • Code without conditional statements

 

Advanced

  • Use immutable approach
  • Implement infinite board
  • Implement hexadecimal board

 

Expert

  • Implement healing board
  • Implement async board

ACHIEVEMENTS

Q&A Time

ANDRII DATSENKO <ASDatsenko@luxoft.com>

SOFTWARE ENGINEER

 

February 18, 2016

TEST DRIVEN DEVELOPMENT

QUALITY IS THE KEY

TDD Code Session

By Andrew Dacenko

TDD Code Session

Luxoft TDD Code Session at 2 Feb 2016

  • 1,175