• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Keeping your users happy with testable apps - Greg Shackles
 

Keeping your users happy with testable apps - Greg Shackles

on

  • 675 views

 

Statistics

Views

Total Views
675
Views on SlideShare
675
Embed Views
0

Actions

Likes
0
Downloads
21
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Keeping your users happy with testable apps - Greg Shackles Keeping your users happy with testable apps - Greg Shackles Presentation Transcript

    • Greg ShacklesOLO@gshacklesgreg@gregshackles.comgithub.com/gshacklesKeeping Your UsersHappyWith Testable AppsThursday, May 9, 13
    • TDDThursday, May 9, 13
    • TDDKISSSOLIDBDDDRYSOCYAGNIDDDSRP OCPLSP ISPDIPXPIOC CQSThursday, May 9, 13
    • Thursday, May 9, 13
    • Why Test?Thursday, May 9, 13
    • StabilityThursday, May 9, 13
    • Stability•Obvious, but importantThursday, May 9, 13
    • Stability•Obvious, but important•Refactor and iterate with a safety netThursday, May 9, 13
    • Stability•Obvious, but important•Refactor and iterate with a safety net•Compilation is only the first unit testThursday, May 9, 13
    • Stability•Obvious, but important•Refactor and iterate with a safety net•Compilation is only the first unit test•Verify cross-platform compatibilityThursday, May 9, 13
    • “I don’t have time to writetests!”Thursday, May 9, 13
    • “I don’t have time to NOT writetests!”Thursday, May 9, 13
    • Once It’s Out, It’s OutThursday, May 9, 13
    • Once It’s Out, It’s Out•This isn’t the webThursday, May 9, 13
    • Once It’s Out, It’s Out•This isn’t the web•Difficult and expensive tofixThursday, May 9, 13
    • Once It’s Out, It’s Out•This isn’t the web•Difficult and expensive tofix•Quality bar has beenThursday, May 9, 13
    • The Happy PathThursday, May 9, 13
    • •Improves designThe Happy PathThursday, May 9, 13
    • •Improves design•More shared code (not just mobile apps)The Happy PathThursday, May 9, 13
    • •Improves design•More shared code (not just mobile apps)•Optimize independently of a platformThe Happy PathThursday, May 9, 13
    • •Improves design•More shared code (not just mobile apps)•Optimize independently of a platform•IterationSpeed++The Happy PathThursday, May 9, 13
    • •Improves design•More shared code (not just mobile apps)•Optimize independently of a platform•IterationSpeed++•FACT: Green tests are good for the soulThe Happy PathThursday, May 9, 13
    • What To Test?Thursday, May 9, 13
    • What to Test?Thursday, May 9, 13
    • What to Test?•100% code coverage != the goalThursday, May 9, 13
    • What to Test?•100% code coverage != the goal•Test parts that provide valueThursday, May 9, 13
    • What to Test?•100% code coverage != the goal•Test parts that provide value•Testing platform code can be difficultThursday, May 9, 13
    • What to Test?•100% code coverage != the goal•Test parts that provide value•Testing platform code can be difficult•Start smallThursday, May 9, 13
    • Thursday, May 9, 13
    • !!Unit  TestsThursday, May 9, 13
    • !!!!Unit  TestsIntegra-on  TestsThursday, May 9, 13
    • !!!!!!Unit  TestsIntegra-on  TestsUI  /  UX  TestsThursday, May 9, 13
    • !!!!!!Unit  TestsIntegra-on  TestsUI  /  UX  TestsMixedAutomatedThursday, May 9, 13
    • Unit / Integration TestsThursday, May 9, 13
    • Unit / Integration Tests•AutomatedThursday, May 9, 13
    • Unit / Integration Tests•Automated•Low frictionThursday, May 9, 13
    • Unit / Integration Tests•Automated•Low friction•Leverage toolingThursday, May 9, 13
    • Unit / Integration Tests•Automated•Low friction•Leverage tooling•NUnit (Lite)Thursday, May 9, 13
    • Unit / Integration Tests•Automated•Low friction•Leverage tooling•NUnit (Lite)•Run on allplatformsThursday, May 9, 13
    • Unit / Integration Tests•Automated•Low friction•Leverage tooling•NUnit (Lite)•Run on allplatforms•Simulator vsDeviceThursday, May 9, 13
    • MockingThursday, May 9, 13
    • Mocking•Limited optionsThursday, May 9, 13
    • Mocking•Limited options•Manual mockingThursday, May 9, 13
    • Mocking•Limited options•Manual mocking•Code generation, T4github.com/gshackles/MuntzThursday, May 9, 13
    • 0102030405060708091011121314Mockinginterface IService{! string Foo(string bar);}!class MockService : IService{! public Func<string> FooBody { get; set; }! !! public Foo(string bar)! {! ! return FooBody();! }}Thursday, May 9, 13
    • Manual TestingThursday, May 9, 13
    • Manual Testing•User feedback iscriticalThursday, May 9, 13
    • Manual Testing•User feedback iscritical•UX testingThursday, May 9, 13
    • Manual Testing•User feedback iscritical•UX testing•Exploratory testingThursday, May 9, 13
    • MVVMThursday, May 9, 13
    • MVVM•MvvmCrossThursday, May 9, 13
    • MVVM•MvvmCross•Shared, testable view modelsThursday, May 9, 13
    • MVVM•MvvmCross•Shared, testable view models•Improved IoC supportThursday, May 9, 13
    • MVVM•MvvmCross•Shared, testable view models•Improved IoC support•Databinding keeps views thinThursday, May 9, 13
    • DEMOThursday, May 9, 13
    • Q&AThursday, May 9, 13