Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How ANDROID TESTING changed how we think about Death

How ANDROID TESTING changed how we think about Death

"Irreproducible bugs become highly reproducible right after delivery to the customer". This is something that happens "almost" everyday.
It is well known that testing offers significant advantages as a development practice and helps ensure higher quality code with fewer defects.
Unfortunately, testing Android apps can be challenging, so in this session we are gonna talk about available tools and practices that could help us accomplish our goals.

Fernando Cejas

November 10, 2013
Tweet

More Decks by Fernando Cejas

Other Decks in Programming

Transcript

  1. How ANDROID TESTING changed how we think about death… @fernando_cejas

    Code samples: https://github.com/android10/Inside_Android_Testing https://github.com/android10/AndroidApplicationTestingSample
  2. Who am I… •  Software Engineer •  GDG Barcelona Organizer

    •  Android lover •  Geek •  Gintonic fan… …y un pelotudo…
  3. Why testing..WTF? •  Testing increases the level of confidence in

    your code. •  Testing makes it possible to write new code, and refactor existing code, without worrying that you’ve broken existing functionality.
  4. Mockito is a mocking framework that tastes really good. Mockito

    doesn't give you hangover because the tests are very readable and they produce clean verification errors. GIVE A WARM WELCOME TO… mockito
  5. Allows you to run your android code on JVM. Allows

    loading of Android Classes in pure Java Projects. TO THE RESCUE…
  6. •  Uses real Android SDK code •  Styles and themes

    supported •  System resources are available •  Performance improved •  Bugs fixed Robolectric 2.0+
  7. •  A library by square (FTW!) •  It gives a

    chainable (or “fluent”) syntax for checking assertions. •  Makes tests easier to write (and read!). FEST Android
  8. Dependency injection is a software design pattern that allows the

    removal of hard-coded dependencies and makes it possible to change them, whether at run-time or compile-time Dependency what?
  9. Spoon •  Acceptance tests (black box) •  Automation of test

    execution across multiple devices •  Aggregation of the results
  10. WRITE TESTS!!! •  Simplify your architecture •  Have a robust

    testing strategy •  Use continuous integration tools •  Mock/stub functionality •  Create your own test runner Best practices and some advice…