Production Level App Testing using Espresso, UI Automator, Firebase Test Labs and Continuous Integration
Developers these days face some complications when it comes to testing their apps. Be it choosing the right framework, overcoming flaky tests, testing on multiple devices, continuous integration etc.
In today's scenario where features are built at very fast pace, it has become very important to automate your app testing and not let any bug or issue go to production.
This talk will help you by taking an example of a production level app involving good business logic, uploading files etc. We’ll see how Espresso can help us write smooth UI tests and also how we can use Firebase Test Labs to run tests on cloud on different devices and achieve continuous integration using Circle CI.
Outline/structure of the Session
This talk is divided into the following 5 parts :-
1.) Important Testing GuideLines
-> Different types of Testing
-> Hero Hermetic to mitigate Flakiness
-> Unit Tests vs Integration Tests
2.) Deep Dive Into Eespresso
-> Why Espresso ?
-> Espresso Commands At a glance
-> Espresso Synchronization
-> Idling Resource
-> Custom Idling Resource
-> Espresso is Sad :( Flakiness All Around
-> Hypnotic Effect of Espresso Intents - Let’s Mock’em
-> Demo on a Production level App
3.) UI Automator
4.) Feel The Fire , Take Testing a Level Higher With Firebase Test Labs
-> Test on Multiple Devices
-> Robo Tests
-> Run From Android Studio
-> Get Very Detailed Reports
5.) Continous Integration With Circle CI
-> What is Continous Integration ?
-> Caching in Circle CI
-> Circle CI with Firebase Test labs using gCloud
6.) Beautiful Bonus [New]
-> Using dagger in unit testing
-> How to unit test if your app has a good architecture and how to if it doesn't
-> When and when not to use Roboelectric
-> What's new in roboelectric and espresso
-> Drawbacks of Firebase Test Labs and Explain AWS device farm integration with Jenkins
-> Become a Test Driven Developer
-> Learn How to achieve Continuous Integration
-> Learn what to test, When and How
-> Know about Firebase Test labs to run tests on multiple devices and see detailed reports including videos and performance analysis of tests
Developers, QA Engineers, Architects
1.) Passion and Urge to improve your App’s quality, development and deployment processes :) :)
2.) Don't worry I'll cover things from grass root level ;) .