Greg Shackles
OLO
@gshackles
[email protected]
github.com/gshackles
Keeping Your Users Happy
With Testable Apps
Slide 2
Slide 2 text
TDD
Slide 3
Slide 3 text
TDD
KISS
SOLID
BDD
DRY
SOC
YAGNI
DDD
SRP OCP
LSP ISP
DIP
XP
IOC CQS
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
Why Test?
Slide 6
Slide 6 text
Stability
Slide 7
Slide 7 text
Stability
• Obvious, but important
Slide 8
Slide 8 text
Stability
• Obvious, but important
• Refactor and iterate with a safety net
Slide 9
Slide 9 text
Stability
• Obvious, but important
• Refactor and iterate with a safety net
• Compilation is only the first unit test
Slide 10
Slide 10 text
Stability
• Obvious, but important
• Refactor and iterate with a safety net
• Compilation is only the first unit test
• Verify cross-platform compatibility
Slide 11
Slide 11 text
“I don’t have time to write tests!”
Slide 12
Slide 12 text
“I don’t have time to NOT write tests!”
Slide 13
Slide 13 text
Once It’s Out, It’s Out
Slide 14
Slide 14 text
Once It’s Out, It’s Out
• This isn’t the web
Slide 15
Slide 15 text
Once It’s Out, It’s Out
• This isn’t the web
• Difficult and expensive to fix
Slide 16
Slide 16 text
Once It’s Out, It’s Out
• This isn’t the web
• Difficult and expensive to fix
• Quality bar has been raised
Slide 17
Slide 17 text
Once It’s Out, It’s Out
• This isn’t the web
• Difficult and expensive to fix
• Quality bar has been raised
• Bad reviews stick with you
Slide 18
Slide 18 text
The Happy Path
Slide 19
Slide 19 text
• Improves design
The Happy Path
Slide 20
Slide 20 text
• Improves design
• More shared code (not just mobile apps)
The Happy Path
Slide 21
Slide 21 text
• Improves design
• More shared code (not just mobile apps)
• Optimize independently of a platform
The Happy Path
Slide 22
Slide 22 text
• Improves design
• More shared code (not just mobile apps)
• Optimize independently of a platform
• IterationSpeed++
The Happy Path
Slide 23
Slide 23 text
• Improves design
• More shared code (not just mobile apps)
• Optimize independently of a platform
• IterationSpeed++
• FACT: Green tests are good for the soul
The Happy Path
Slide 24
Slide 24 text
What To Test?
Slide 25
Slide 25 text
What to Test?
Slide 26
Slide 26 text
What to Test?
• 100% code coverage != the goal
Slide 27
Slide 27 text
What to Test?
• 100% code coverage != the goal
• Test parts that provide value
Slide 28
Slide 28 text
What to Test?
• 100% code coverage != the goal
• Test parts that provide value
• Testing platform code can be difficult
Slide 29
Slide 29 text
What to Test?
• 100% code coverage != the goal
• Test parts that provide value
• Testing platform code can be difficult
• Start small