Testing is a key step in the process of delivering a high quality application… everyone knows that. As web development has become more and more popular, the quality of both websites and tooling has skyrocketed. Just take a look at Bandwidth’s own site only 5 years ago compared to today.
All that is great news for web developers as countless tools to test, validate, and deliver web applications are released/updated on a daily basis. However, for native mobile apps the quality toolbox is still limited. The good news for mobile developers, however, is that there’s a mini-renaissance of sorts happening in the mobile dev world.
Here are some of favorite Android tools and resources that I’ve used in my time as a mobile QA (iOS coming soon!).
Robolectric enables you to run tests from within Android Studio (with some configuration) without mocking out the Android SDK. High test coverage with Robolectric helps us to create a very tight feedback loop for developers working in a dense code base.
Calabash leverages Ruby and Gherkin style BDD tests to create a ‘single source of truth’ for any iOS or Android application. Calabash is limited to Ruby and a specific test layout [Feature File -> Step Definition -> Page Object]. For more information about Calabash, check out my slide deck and demo repository.
Appium is the rival test framework to Calabash and is rapidly becoming the more popular choice. Appium allows testers to control the entire phone through any programming language so long as it has selenium webdriver protocol. For more information about Appium, check out their home page for examples and tutorials.
Travis (or any) Continuous Integration
I prefer Travis over other CI tools as it’s hosted for me 🙂 and recently supports iOS builds. Travis also does a fantastic job of tying all the above technologies together in a continuously deliverable environment. Each pull request into the main branch runs both the Robolectric and Calabash/Appium tests against any changes. This, along with code reviewing like a boss ensures that each new commit is thoroughly tested and meets our quality control standards.
Blogs, Blogs, and more Blogs
Perhaps the most useful resource for mobile quality is the sheer number of blogs dedicated to mobile development. Here are a few of my favorite resources in no particular order.
http://www.reddit.com/r/androiddev – Seriously! this is great!
http://androidweekly.net/ – Great newsletter on new tools/more blogs
https://codeascraft.com/ – Etsy’s Engineering blog
http://latticelabs.com/blog/ – Lattice Lab’s Blog
http://www.vogella.com/tutorials/android.html – Staggering about of tutorials
http://www.android4devs.com/ – Android Blog
These are my top picks. What are yours? Feel free to share in the comments below.
Make sure you don’t miss content like this! Subscribe in the right hand column to be notified of future posts!