Automated Tests, while they require additional effort to create, have a lot of advantages. Simply put, defects cost more to fix the longer they hang around for or the further they are discovered down the application life cycle. So, the earlier we can get feedback about defects, the better, which results in making users happy, reducing costs, avoiding fines or penalties (for regulated environments), allowing us to be more agile in a highly-evolving market, and developing happier and more productive teams.
We can classify tests into three general areas and map them onto the popular testing pyramid: unit tests at the bottom, integration tests in the middle and user interface tests on the summit of the pyramid. In this presentation we will look mainly at how to integrate all our Mobile Applications tests into Our CI Pipeline, run them on a Cloud platform and notify results with our Communications Channel. Participants will learn how to pull all of these levels of testing together and ensure they actually get run earlier and more often. They will have a high level overview of most popular tools and platforms, including unit test frameworks (JUnit), mocking framework (Mockito), UI Testing with Appium and Espresso, open-source CI servers (Travis/Jenkins), Collaboration Service (Slack) and Cloud Testing.
For the sake of demonstration, I will use Medic Mobile, an open source application that combines SMS messaging, data collection, and analytics for health workers and health systems in hard-to-reach areas. All the code, including production project code under test will be available on Github for interested attendees to fork and use as they see fit.