TestOps Orchestration: The Key To Rapid Deployment
Logesh Muruganandham, Android Developer, Rupeek
With TestOps, companies can visualize, plan and schedule tests, thereby reducing the run times and delivery cycle.
As part of the Customer Mobile team of Rupeek, our responsibility is to ensure that the app release should not introduce new production crashes. This blog talks about our testing processes that prevent these crashes. But before that, let us first see why crashes occur.
Crashes occur due to frontend mishandling, causing ANRs or backend issues such as server downtime/network failures that are not handled properly in the Android application. Nowadays it can also be due to device-specific problems, which are surprising in production because most scenarios/flows are tested in higher and lower API levels, and not every feature may be tested in specific ROMs.
We aim at providing a seamless experience to our users when using the Rupeek app, where the users are clear of what they are about to do. We also ensure that our interactive medium, the Android app, acts as a stable bridge between Rupeek and the user. Therefore, as developers, we cannot skip App Testing.
Before delving deep into Testing, it is necessary to understand
- When to do manual testing and,
- When to use a fully automated testing suite for mobile applications.
When to manually test the features?
- Whenever a new feature is developed, domain experts should test it exploratorily to check the functionalities and understand whether the experience matches the requirement.
- Then run the Usability Testing to check how user-friendly the feature is.
- Last, the quality assurance team tests the feature based on the test scenarios as per the product requirements.
Some unavoidable manual testing scenarios.
- If it’s a short-term product and is on low priority, one can avoid investing golden hours in writing scripts to automate.
- One can do manual testing if the test case is not automatable, and when there is an ad-hoc requirement.
When to use automation testing?
- Whenever the product is feature-tested manually, the app undergoes regression testing, which is highly time-consuming and involves many risk factors. Some of which are -
- Human testers may make mistakes, so we cannot expect accuracy.
- Testing the performance of an application with high and low latency is difficult for humans to detect.
- The testing process has to be repeated even if there is a small change, and it is a tedious task.
- It is tiresome and boring to perform the same test cases for every app release.
2. To analyze normal and peak load conditions
Load testing can be performed to verify that the application can handle both.
3. To analyze application performance
Performance testing can be automated to analyze the speed and scalability by meeting the required throughput, response time, and resource utilization.
“Quality is not an act. It is a habit.” -Aristotle
Test Suite setup for Android Application
Companies that deliver new features and high-quality products exponentially require some advancement in software testing and analytics. Although the initial TestOps orchestration setup cost is higher, it is less expensive than manual testing in the long run.
In this process, the Developer and Quality Assurance team can perform the product testing together, through the CI/CD pipeline setup. It can also help detect bugs early and fix them before it reaches the users.
In this article for performing TestOps, let’s use the Katalon framework to analyze the test results through the Katalon Analytics tool and the Kobiton cloud device for testing with a real dataset.
A basic structure of test files looks like Figure A.
Katalon Studio has a pre-defined artifact structure with several templates for test cases, test suites, test objects, and reports. Katalon Studio supports local and remote testing, as well as parallel and sequential executions. It runs on Groovy (Java) scripting language.
Setting up login test case
Any android application having user-specific data starts primarily with a login flow. It can be of various types of authentication like mobile number verification, mail authentication, etc. Simple steps to setup login test case are,
- Start the test either with the application package name or with the .apk file directly.
- Start recording the session.
- Capture the objects and perform available actions.
- Store the recorded session for the future.
How to automate the screen when there is dynamic data?
Login Test case :
The minimalist way of recording objects and building test case for Login screen of the Rupeek app is as follows -
Katalon also provides an option to have any kind of web service request in test objects to perform REST API calls. In lower environments, exposing some backend API to get the OTP and authorization token allows us to log in. Similarly, all other edge cases can be considered to develop the login test case. The test cases are put together in a test suite to perform sequentially.
At Rupeek, people work across verticals and the features are shipped to the play store by merging all the code. Most of the QA bandwidth is spent on executing the same test case repeatedly, even if there is a minor change. With the TestOps in place, teams can integrate CI/CD (e.g. Jenkins), Test environments (e.g. Kobiton, BrowserStack), and Automation tools (e.g. Katalon studio) to automate the test cases effortlessly.
TestOps allows performing tests in various environments with a single trigger point. Organizations can visualize the test plan and schedule the tests, thereby reducing the run times and delivery cycle.
TestOps orchestration using Jenkins Pipeline
The demand for complex applications has galvanized QA groups to find ways to innovate, adapt, and scale. We adopted a game-changing strategy — Test Automation — which allows the team to observe issues quickly in their development cycle. TestOps focuses on maximizing ROI and resource utilization within the pipeline.
Katalon TestOps brings a data-driven approach to boost application quality and provides users with the ability to achieve valuable insights from test results through the TestOps analytics dashboard.
Plugins required in Jenkins
- Katalon TestOps Plugin
- BrowserStack (cloud device) — optional
Plugins required in Katalon Studio
Jenkins Pipeline
Pipeline Script
The TestOps module in Katalon provides dynamic perspectives and insights into the automated testing activities and an overview of recent test activities and upcoming releases. This module highlights the testing with real-time data assembled in dashboards, which drive insights and assist us in decision-making.
Conclusion
Testing is a critical part of any software development lifecycle. It helps ensure that the final product is good to go live and ready for production. Here are some of the benefits that Rupeek enjoys by adopting Automation Testing with TestOps Setup -
- It accelerated Rupeek’s release cycle by delivering the product faster with accurate results.
- Since the tests can run in parallel, one can perform the test on multiple devices on Cloud.
- It also reduces execution costs by using the resources more efficiently.
- It enhances test coverage by allowing the distribution of numerous test suites across available test environments.
- It minimizes the risk of releasing applications.
We hope that this blog was as interesting and insightful to read as much as we loved putting it together. Stay tuned for more such informative blogs. Till then, head to the Rupeek website and explore the work we do.
We’re hiring! If you are interested in making it big in the Fintech industry with India’s fintech leaders, join us! See open roles here — https://rupeek.com/about/careers?city=Bangalore