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

Build - Test - Ship - Repeat: Effective testing and delivery using Continuous Integration

Build - Test - Ship - Repeat: Effective testing and delivery using Continuous Integration

Android testing is hard and ensuring product quality is even harder. Both of these processes are very time consuming and unfortunately time is a very limited resource. As software engineers we should automate as many processes as possible and let machines do they heavy lifting in a more efficient and faster way.

In this talk we are going to explore how we can improve product quality, stability and delivery speed by embracing Continuous Integration and Firebase Test Lab. We will also explore which techniques and strategies that you should use to automate your most of the processes that are time consuming and hard to implement manually.

Note: Slides are in Spanish

carlospaulino

June 29, 2019
Tweet

Other Decks in Programming

Transcript

  1. Los temas de hoy 4 • Testing y Control de

    Calidad. • Conceptos fundamentales de Continuous Integration. • Firebase Test Lab. • Crashlytics Beta. • Estrategias para delivery.
  2. Ahora una encuesta 5 • Testing ? • Espresso ?

    • Firebase Test Lab ? • Continuous Integration ? • Delivery Automatizado ? • Fabric/Crashlytics?
  3. Las pruebas son extremadamente importantes, ya que ayudan a evitar

    que los desarrolladores rompan o afecten funcionalidades existentes.
  4. Facilita los cambios Ayuda a mejorar el diseñar una mejor

    arquitectura Simplifica la integración Ayuda a entender mejor el código Incrementa la velocidad del desarrollo
  5. ¿Que es Espresso? 10 • Una librería creada por Google

    para la creación de pruebas de UI. • Es fácil de leer y escribir gracias a su API fluida. • Comparte el proceso con la aplicación. onView(withId(R.id.my_view)) .perform(click()) .check(matches(isDisplayed())) // withId(R.id.my_view) es el ViewMatcher // click() es el ViewAction // matches(isDisplayed()) es el ViewAssertion
  6. 13

  7. 84% de los usuarios dicen que las calificaciones del Play

    Store son lo más importantes al momento de descargar una aplicación móvil. [1] [1]Mobile Apps: What Consumers Really Need and Want - Mobile App Survey Report → Dynatrace https://goo.gl/s2SWqq
  8. Static Analysis 16 Detekt: • Static analysis for Kotlin •

    Unsafe casts • Complex methods • Wrong formatting Android Lint: Static analysis for Android • Unused resources • Missing alt descriptions • Hard Coded Text Security Vulnerability Detection • Hard coded credentials • Broken SSL validation • Leaking information in the log
  9. Es difícil probar manualmente todo un sistema cuando se introduce

    una nueva característica. Ejecutar pruebas y procesos de análisis en la estación de trabajo puede tomar mucho tiempo.
  10. Continuous Integration 21 • Continuous Integration es una práctica de

    desarrollo la cual requiere que los desarrolladores integren código en un repositorio compartido varias veces al día. • Cada check-in o pull request es verificado por un proceso automatizado de compilación y ejecución de pruebas, lo cual permite a los miembros del equipo detectar problemas de manera precoz. • Algunos servicios de Continuous Integration son:
  11. 22

  12. 23

  13. 24

  14. Firebase Test Lab para Android ofrece infraestructura basada en la

    nube para probar apps de Android en dispositivos reales o virtuales.
  15. 27

  16. 28

  17. Las pruebas de espresso se ejecutan de forma secuencial. 31

    Testcase Testcase Testcase Testcase Testcase Testcase Testcase Testcase Test Suite
  18. 32 Testcase Testcase Testcase Testcase Testcase Testcase Testcase Testcase Testcase

    Test Suite Test Suite Test Suite Aumentando el performance con Flank [1]Flank - https://github.com/TestArmada/flank
  19. QA QA Alpha/Beta QA QA Staged 5% Full 100% ENG

    ENG Integrations Review Monitoring
  20. Continuous Integration no desaparece los bugs, pero sí ayuda a

    encontrarlos y eliminarlos. “Continuous integration doesn't get rid of bugs, but it does make them dramatically easier to find and remove” - Martin Fowler @martinfowler
  21. Tener un ambiente de trabajo con Continous Integration que ejecute

    las pruebas de Espresso vale cada segundo de la inversión de tiempo inicial. “Having a working CI environment that runs Espresso tests is worth every second of upfront time investment. Hands down. #AndroidDev” - Donn Felker @donnfelker
  22. Material Adicional 41 Flank: Smart Test Runner for Firebase https:/

    /medium.com/walmartlabs/flank-smart-test-runner-for-firebase-cf65e1b1eca7 FTL for Android reduced American Express app test costs by 50% https:/ /firebase.google.com/downloads/Firebase_American_Express_Case_Study.pdf