In today’s mobile world, quality assurance automation is a new necessary in successful testing. It allows us to be hyper-focused on the quality of our client’s work by checking overlooked things without using team resources. At Bottle Rocket, we’ve defined a formal process for it that allows our QA team to concentrate on more complex testing.
It wasn’t easy developing an automation process from scratch. Deciding to adopt automation brought about a lot of questions: How would automation engineers be allocated within the company and our projects? How much work can one automation engineer handle? What technology would we need to adopt to accommodate them?
Since starting from scratch also meant that there were no design patterns or coding standards in place, there was no testing framework or concrete plan for integrating automation into our current processes and projects. So we started off by selecting our tools of trade – Appium and Postman.
Step one: deciding the tools
Appium is an industry-standard, open source quality assurance automation tool based on Selenium's WebDriver. It works by sending commands such as swipe, tap, and long press exactly like a user would. It also includes features such as flexibility to program in multiple languages and a large community surrounding the framework.
For server testing, we selected Postman. This tool sends and receives HTTP messages and can easily test various user flows through API calls. Some benefits of Postman include ease of use, great user experience, and flexibility.
Step two: getting the ball rolling
Working out the new processes and workflows of automation comprised of a lot of trial and error. For example, some significant hurdles included provisioning profiles and attempting to install iOS apps from the command line. In the end, Rocketeers discovered a way to create the right build and how to get it onto the device.
After developing a framework from scratch to form automated test plans, automation engineers designed test cases that are general enough to be used for any project. Although reusable test cases take longer to build, they save time in the long run because testers don’t have to write or edit tests for every new project.
Encapsulation, or the explicit bundling of certain parts of code, was also a major focus of our initial automation process. This helps change the target operating system or device for a test run without affecting the test cases themselves. Having two separate code pieces makes the overall framework much more configurable.
Step three: integrating automation
The first phase of integrating automation with our current QA process involved training for manual testers. We started off with the basics: programming with Java. We hosted an interactive coding class covering everything from objects to arrays in an approximately eight-week time frame.
After the training, Rocketeers moved on to automation itself with a focus on Appium. We were given some sample code to examine and edit, and after a few weeks, our team wrote scripts and manipulated the app on a physical device.
Since adopting automation, test coverage for both test cases and devices has improved, and testing volume has increased. In the future, we will continue to grow our automation lab with a myriad of test devices to choose from as well as expand our automation team and refine our framework.
Automation streamlines the quality assurance process and frees up our testers to focus on tasks that matter most to our clients. Make sure to contact our team of Rocketeers if you’re interested in hearing more about our automation services.