Lessons learnt from test driven development
-
Upload
anand-powar -
Category
Software
-
view
345 -
download
1
Transcript of Lessons learnt from test driven development
![Page 1: Lessons learnt from test driven development](https://reader033.fdocuments.net/reader033/viewer/2022051706/5876053f1a28ab4a508b6731/html5/thumbnails/1.jpg)
Lessons Learnt fromTest-Driven Development
By: Anand Powar
![Page 2: Lessons learnt from test driven development](https://reader033.fdocuments.net/reader033/viewer/2022051706/5876053f1a28ab4a508b6731/html5/thumbnails/2.jpg)
Once Upon A Time
Our product has got quality issues
Manager Developer
We lack a good QA, lets hire one
![Page 3: Lessons learnt from test driven development](https://reader033.fdocuments.net/reader033/viewer/2022051706/5876053f1a28ab4a508b6731/html5/thumbnails/3.jpg)
6 Months Later...
Our development is slowing down
Manager Developer
There is just too much workload, we need to introduce a shadow resource
![Page 4: Lessons learnt from test driven development](https://reader033.fdocuments.net/reader033/viewer/2022051706/5876053f1a28ab4a508b6731/html5/thumbnails/4.jpg)
“One bad programmer can easily create two new jobs a year.”
David Parnas
![Page 5: Lessons learnt from test driven development](https://reader033.fdocuments.net/reader033/viewer/2022051706/5876053f1a28ab4a508b6731/html5/thumbnails/5.jpg)
The Problem
?
Good
Cheap Fast
![Page 6: Lessons learnt from test driven development](https://reader033.fdocuments.net/reader033/viewer/2022051706/5876053f1a28ab4a508b6731/html5/thumbnails/6.jpg)
No Silver BulletGood
Cheap Fast
![Page 7: Lessons learnt from test driven development](https://reader033.fdocuments.net/reader033/viewer/2022051706/5876053f1a28ab4a508b6731/html5/thumbnails/7.jpg)
However
A bit better
A bit cheaper A bit faster
Test-Driven Development
![Page 8: Lessons learnt from test driven development](https://reader033.fdocuments.net/reader033/viewer/2022051706/5876053f1a28ab4a508b6731/html5/thumbnails/8.jpg)
Test Driven Development
Write new test
New require-
ment
Run tests
Write new code
Run tests
Refactor
Run tests
Make it Fail
Make it Work
Make it Better
![Page 9: Lessons learnt from test driven development](https://reader033.fdocuments.net/reader033/viewer/2022051706/5876053f1a28ab4a508b6731/html5/thumbnails/9.jpg)
It’s a lot like going to the gym
![Page 10: Lessons learnt from test driven development](https://reader033.fdocuments.net/reader033/viewer/2022051706/5876053f1a28ab4a508b6731/html5/thumbnails/10.jpg)
Build your confidence
![Page 11: Lessons learnt from test driven development](https://reader033.fdocuments.net/reader033/viewer/2022051706/5876053f1a28ab4a508b6731/html5/thumbnails/11.jpg)
Use TDD where it's suitable, mix other styles
![Page 12: Lessons learnt from test driven development](https://reader033.fdocuments.net/reader033/viewer/2022051706/5876053f1a28ab4a508b6731/html5/thumbnails/12.jpg)
Only test things that can possibly break
![Page 13: Lessons learnt from test driven development](https://reader033.fdocuments.net/reader033/viewer/2022051706/5876053f1a28ab4a508b6731/html5/thumbnails/13.jpg)
Avoid bad design trade-offs
![Page 14: Lessons learnt from test driven development](https://reader033.fdocuments.net/reader033/viewer/2022051706/5876053f1a28ab4a508b6731/html5/thumbnails/14.jpg)
Yes, we still need QA
![Page 15: Lessons learnt from test driven development](https://reader033.fdocuments.net/reader033/viewer/2022051706/5876053f1a28ab4a508b6731/html5/thumbnails/15.jpg)
“Imperfect tests, run frequently, are much better than perfect tests that
are never written at all”
Martin Fowler
![Page 16: Lessons learnt from test driven development](https://reader033.fdocuments.net/reader033/viewer/2022051706/5876053f1a28ab4a508b6731/html5/thumbnails/16.jpg)
PracticalLego Game
![Page 17: Lessons learnt from test driven development](https://reader033.fdocuments.net/reader033/viewer/2022051706/5876053f1a28ab4a508b6731/html5/thumbnails/17.jpg)
Acceptance criteria:
It should be 4 inches tall
Our hypothesis: 4 inches is the ideal size
It should be able to walk
At least 2 legs
It should be able to jump
If I drop it from a height of 2 inches, it should not break
Build a toy dinosaur
![Page 18: Lessons learnt from test driven development](https://reader033.fdocuments.net/reader033/viewer/2022051706/5876053f1a28ab4a508b6731/html5/thumbnails/18.jpg)
5 minutes
![Page 19: Lessons learnt from test driven development](https://reader033.fdocuments.net/reader033/viewer/2022051706/5876053f1a28ab4a508b6731/html5/thumbnails/19.jpg)
Children want a bigger dinosaur
6 inches tall
Time to market
We need to beat the competition
Market Feedback
![Page 20: Lessons learnt from test driven development](https://reader033.fdocuments.net/reader033/viewer/2022051706/5876053f1a28ab4a508b6731/html5/thumbnails/20.jpg)
ASAP
![Page 21: Lessons learnt from test driven development](https://reader033.fdocuments.net/reader033/viewer/2022051706/5876053f1a28ab4a508b6731/html5/thumbnails/21.jpg)
Can your dinosaur still jump?
![Page 22: Lessons learnt from test driven development](https://reader033.fdocuments.net/reader033/viewer/2022051706/5876053f1a28ab4a508b6731/html5/thumbnails/22.jpg)
“If you don’t like unit testing your product, most likely your customers
won’t like to test it either.”Anonymous
![Page 23: Lessons learnt from test driven development](https://reader033.fdocuments.net/reader033/viewer/2022051706/5876053f1a28ab4a508b6731/html5/thumbnails/23.jpg)
ThanksGet connected
http://in.linkedin.com/in/anandpowar http://twitter.com/anandpowar