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,351