HOW TO INCREASE PRODUCTIVITY OF AUTOMATED MOBILE TESTS USING ACCELERATORS
Mobile devices, such as cell phones and tablets are doubtlessly one of the key technologies that allows us to easily access the digital world. Over the years, these small devices have evolved so fast that today they are no longer only used for their initial purpose, when the world needed them to make voice calls. With the massification of smartphones, calls lost their importance and gave way to a digital world full of novelties, innovations and possibilities.
According to IBGE’s National Household Sample Survey (PNAD), in a population of 10 years or older, the rate of people using cell phones for personal use went up from 77.1% (2016) to 78.2% (2017). In 2017, in urban areas, this percentage was 81.9% and in rural areas 55.8%. The largest participation was found in the 30–34 age group (88.9%) and the 25–29 age group (88.8%).
If we take into account ease of use and agile access, it is not surprising that in Brazilian homes, cell phones are the device that’s most used to access the Internet (98.7% of households with Internet access). Today, according to surveys, there are 230 million active cell phones in Brazil that are used more than 3 hours a day on average.
Given that new market niche, companies began to move to adapt to this new reality. Apps have been developed that are increasingly focused on day-to-day productivity, as well as work tools that can be accessed from anywhere and by anyone. Leading companies are increasingly focusing on customer satisfaction, robustness and lightness of apps.
Today, due to cell phones’ enhanced processing power and the stability and high speed of mobile networks, computers have started to be left behind a little in terms of practicality and portability. Cell phones have become the main tool for accessing the Internet, shopping, banking, working, in other words, they have become an extension of how we live.
Now imagine an Internet connection that’s up to 50 times faster than the current one and that provides more efficient data exchange between devices? Yes, increasingly modern mobile phones and 5G will allow us to experience the technological market with an ideal structure so that the Internet of things may become a global reality. And, given this wide range of new possibilities, mobile apps will also expand and keep up with the technological developments of the market.
When we talk about the expansion of the mobile app market, we automatically think of the issues this may cause. Who has never come across an error while trying to access one’s bank account or an unexpected termination of an app transportation system? Right now, the need for mobile testing implementation is fundamental to ensure the quality level required by the market. To minimize these risks, the software development process needs to go hand in hand with quality assurance methodologies, techniques and processes.
For a long time, functional app testing was absorbed by software developers themselves or by the business team, which, due to their core activities, had neither the time nor the required knowledge to perform proper validation, leading to system failures, cost increases, impact on business image, potential security vulnerabilities, and end-user impact. Glenford Myers, in his 1979 book “The Art of Software Testing” states that the sooner an error is discovered, the lower the costs for the project, according to “Myers’ Rule 10”.
Every software development project needs to take into account the software testing activity. In addition, an analysis and survey of how it should be inserted is required. Performing such activity allows us to understand how mature the team and the software itself are. Depending on its size, various types of tests may be applied that range from the simplest and most responsive ones, such as manual tests, to the most advanced ones, e.g., automated and performance tests.
Given the increasing demand for apps and the need to test them to obtain a quality end product, various methodologies have been developed to find the maximum number of flaws that may occur in apps and make sure that what has been developed is implemented correctly. Manual testing is a good quality assurance solution, but becomes infeasible when high frequency execution is required. Automated testing allows to run a set of test cases more quickly, reduce repetitive stress, and helps reduce human failure due to standardized scripts.
High test execution frequencies require greater scalability in a controlled environment. Device Farms address this market need, which support both manual and automated scale testing and may be set up locally or via paid services that offer cloud-connected mobile devices.
Cloud Device Farms are an excellent choice to reduce costs of real equipment, as they help avoid purchasing extras or depreciation. In addition, test runs can be performed within a version controlled environment of operating systems, network and power, eliminating the need for physical devices owned by the test team. Its relatively high costs become rather irrelevant when compared to productivity gains and delivered quality.
If you have ever tried to automate testing for the iOS platform, you surely faced the challenges of connecting locally via USB to mobile devices and of interacting with the apps’ objects. The largest Device Farms companies offer an architecture that eliminates this intermediate configuration activity in the Apple environment (XCode, developer account, and appium). Therefore, testing automation becomes virtually plug-and-play, eliminating hours of effort in non-scripting activities.
Eliminating repetitive tasks is certainly one of the main purposes of automated testing. Imagine that in addition to reducing human effort in repetitive executions, eliminating the need of purchasing equipment, facilitating mobile device integration with automation tools, one manages to accelerate the scripting process with frameworks that dramatically reduce the number of lines of code.
Frameworks perform an abstraction, joining various codes and features that are already implemented. They also provide the centralization of components that allow faster execution of automated scripts, offering a broader coverage of validations that yield more reliable results.
To reduce costs and centralize the latest tools on the market, frameworks have been developed and when added to automated test codes, they minimize project architecture setup time and speed up creation productivity and script maintenance. When they are implemented in a code, they show a high rate of adaptability and allow inserting or removing technologies or tools that are more compatible with the project. Selenium, e.g., is currently the most widely used automated testing tool, but if a new tool becomes the best on the market, it may be replaced with little code loss and little implementation complexity. An encapsulated structure eliminates the need to download multiple libraries for every new project.
A good example is the need to create gigantic methods with Apache POI to manipulate documents and capture evidence in a more organized way. An automated testing framework encapsulates the Apache libraries, includes Selenium’s actions and automatically generates evidence and documents after every test run.
Among all these benefits provided by frameworks, everis has developed EFATHREE. As shown below, this framework developed by everis is able to provide an optimized experience to automatizers so that projects get more freedom to adapt/use tools, yielding accelerated results.
According to Roger Pressman, Software Engineering author:
“Quality and serviceability are the result of a well-designed project.”
Therefore, connecting software quality with accelerators, such as Device Farms and Frameworks, will streamline processes and add more value to projects and, as a result, to end users. Raising the quality of digital products is a must and Software Quality will be essential and an important contributor to taking the next steps in digital evolution.