How can you ensure a smooth and fully functional experience for end-users? How much testing is needed? When and how do you start the manual and automation testing, and what do you automate? These are a few of the questions that have attracted much debate over the years. This post is to shed some light on how MOBGEN is using automation testing and how it helps in improving the quality of the products we deliver.
What is automation testing?
Automated testing is the process, by using specific software, of controlling test execution and gathering results. This specific software is being used to simulate human interaction with the selected platform, translating human actions defined in test cases into commands. To gather test results, it includes graphical reports generated with the expected value and the one obtained during the execution.
It brings value to all stakeholders involved in the software application life cycle:
- Developers like it because it offers immediate feedback in case the new functionalities they implemented broke the previous implementation. In addition, faster feedback loop leads to faster fixes.
- Testers like it because it increases testing coverage and gives them room for focusing on the newly implemented functionalities. This leads to more confidence for testers that they are delivering good quality products.
- Managers and decision makers like it because it offers them quick reports based on which they can then make informed decisions.
- Business stakeholders like it because in combination with manual testing it offers a smooth and fully functional customer experience.
What challenges did we face at MOBGEN?
Mobile technology is used more and more nowadays, and it is essential for us to stand out on a quality level, to move things from ‘Good’ to ‘Great’. However, being able to test a mobile app in a relevant way is very challenging. Below is a list of the challenges we faced while using automation testing for our clients:
- Multiple platforms – unfortunately testing for Android is not the same as testing on iOS. The testing tools and frameworks available for Android are significantly different for iOS. Also, the UI layouts are built differently on each platform.
- Multiple environments: we wanted to run the automation scripts on different environments during the development cycle.
- Multiple markets: we are developing an international application, so that different markets with different languages could to be tested using the same tests.
- Multiple devices: we wanted to make sure the application ran successfully on multiple devices with different specifications.
- Multiple versions: with every new version of the app, changes can modify application behaviour. Test cases maintenance may be needed.
What to automate in order to bring value
On projects we applied automation at MOBGEN, the following scenarios led us to successful strategies in ensuring the product quality:
- API testing: the API is the place where the business logic is coded. The frontend applications only display the results and the error messages provided by the API. Automating these calls at an earlier stage during the software development life cycle allowed us to concentrate on more complete user-experience tests once the UI was released.
- Regression Testing: this is the biggest headache for every QA department. It is a time/resources consuming task, very tedious and repetitive. Testers can get bored or distracted leading to errors or mistakes. We defined automated testing to avoid this issues.
- Data Driven Testing: one application could have functions with a lot of different inputs to validate. Automated testing helped us in setting a big set of data and repeat one single test with every defined value, saving resources and increasing the test coverage.
- App upgrade testing: mobile application development normally includes new versions that will be released using Android/iOS online stores. We know how important it is to get a smooth app upgrade, so we automated this process.
What tools do we use?
You can automate iOS/Android applications with different solutions. Here at MOBGEN, we have developed our own mobile testing tool that integrates TestNG and Appium to automate both mobile platforms with the same code. This helps us save time, and ensures high reliability and easy maintenance. They are two of the most popular tools used for mobile automated testing, providing big communities to get support from. TestNG is taking care of all the testing setup, helping with defining test cases, running them, and generating graphical reports to keep our developers and clients on track of our progress. Appium is the software that manages device connection and sends commands to them simulating manual interaction.
For API testing, we use REST Assured framework. It introduces the simplicity of testing web services from dynamic languages like Groovy or Ruby to Java.
One standard solution in a mobile application development process is to use a server to generate application builds from time to time. We use Bamboo to generate those builds and we also schedule when to run the automated tests (nightly, on-demand or after each build), publish the generated reports, and updateg test execution results. Bamboo server also provides our integration with Jira, our issue tracking tool, helping on linking builds, and automation results.
On top of this, we know how important it is to use a flexible system with a high rate of scalability. We have built our Mobile Automation Testing tool keeping in mind how to easily add multiple devices, markets and environments, making automation able to run test cases over all possible combinations of the previous elements.
To close the loop, we are also integrating our automation framework results with our test case management tool. Once automation has finished, test results are directly updated into our test case execution reports, saving time and avoiding possible mistakes.
Automation is a testing solution that will bring extra value to all stakeholders involved in the software application lifecycle. It provides extra tools and resources, allowing QA departments to go further on ensuring the best quality is delivered. It is easy to integrate with the software development process and then schedule and run infinite times automated test cases at any time. It will also help in avoiding common human mistakes, and it is faster than a human tester, delivering immediate feedback from testers to developers.
Here at MOBGEN, we’ve applied all our experiences in testing to develop our automation tools and making them flexible and capable of providing solutions to every software application we face. This helps ensure that we are delivering the best quality products and keeping our clients satisfied.
If you’d like to receive more information about automated testing, or when you’re interested in the service for your project, please don’t hesitate to contact us: firstname.lastname@example.org!