In today’s competitive business climate, changes in the application and internet markets are amazingly dizzying; users are demanding more product features all the time. As new versions are launched to the public at an increasingly fast pace, sometimes continuously, the development and software testing world becomes much more challenging and interesting.
We are no longer just focusing on the product, but also, on its multiplicity of features. To solve the problem of the time required for version updates, the testing industry is moving to Scaling Agile methods. These frameworks allow multiple teams to work simultaneously on several processes, while synchronizing teams within the organization in a dynamic manner that enables solutions that improve the quality of the existing capabilities of the product.
As large quantities of features are added, the product swells and its capabilities grow, software testers are required to increase the number of regression tests and find automated test solutions. As Open Source expands and become more common in the testing community, various tools offer advanced technological solutions.
The mobile sector is also developing rapidly and brings additional demands. The differences between mobile phone and PC capabilities are reduced technologically, as is the world of the web against the world of mobile applications. Today, the mobile application and website have almost identical capabilities.
On the other hand, the number of platforms is endless; manufacturers such as Samsung, LG, Lenovo and Chinese manufacturers are producing a wide range of phones and tablets that are rising exponentially with the support of the Android operating system, not to mention Apple, which simultaneously launches three different devices in parallel.
So how can we solve the problem of automating testing on the number of configurations that exist between the diverse application world and the number of infinite platforms while performing comprehensive tests on the entire range? How can one work on one web browser technology with a range of 3-4 competitors such as Chrome, Firefox, IE, EDGE and the applicable technologies in various mobile devices that also have both native and hybrid applications without harming the quality of the product written?
The main problem is that large amounts of code are required when new technology launched. In addition, it’s necessary to use many devices and to create a complete infrastructure for them or to engage expensive mobile labs to create an existing infrastructure management, which can be costly, especially when a wide variety of devices is required.
Just for that, Qualitest developed a hybrid working method for the implementation and automation of various technologies. The general idea is to always find the similarities between the web and the mobile app and to provide a lateral solution and adjust as needed for the different cases. In this way, we create more efficient dynamics, reduce costs, save time on solutions in development and testing and in automation and testing, and integrate with new features .
For example, let’s look at a simple login screen for one product that has a web and a mobile app (that works on several operating systems) and different mobile devices. In this screen, we usually have a user name field, a password field and a login button.
This screen has similar behavioral elements that will appear in both the application and the WEB site. If the architectural design was done well, the names of these elements will be identical. Therefore, in this case, a function or functions will be opened to perform actions on the login screen.
The ability to connect locators is usually dependent on the driver. In the WEB world, we have Web drivers that can identify which browser we’re contacting with, which device we’re working on, and whether it’s a hybrid or a Native application. Therefore, the implication in conversation with the same field, the same element is different. Qualitest has developed various libraries that can handle the conversation with the configuration we need and transmit to it the operation that we want to run.
To provide 100% coverage in application testing and WEB, there is a theoretical need to test all devices. Why theoretical? Since it’s practical, it won’t be possible to test an infinite number of devices. In some cases, companies use mobile labs to increase coverage, but this is very expensive and not always effective. The need to establish a broad infrastructure for a specific product and its capabilities requires special sewing that requires testing on its own.
We have developed an automated infrastructure which manages the chances of success and risk; since it’s not possible to physically check all the devices, we are testing the leading devices in the market. For example, we test APPLE devices in several backward versions, as well as on common Android devices with several version; the rest of the devices, we will emulate.
True, emulation testing is less preferable than using a real device, since we create a state of laboratory testing rather than environmental testing. This is especially true when there are applications that depend on the device’s physical mechanisms such as: WIFI or GPS. It’s possible to symbolize a decrease in cellular reception or disconnect and reconnect the GPS mechanism in the simulation, but we’ll never reach a real level of testing against a physical device.
On the other hand, testing in laboratory conditions will give us confidence regarding the logical testing of the application as a reference point, a point of view where we know for sure that application works in a clean manner. When we introduce noise from the environment, we understand that the faults come from the environment rather than from the logic of the application.
Therefore, from a methodological point of view, there is an advantage in testing a simulation, moving to a real situation, and back again. In this way, a single setup, based infrastructure with a limited number of devices can perform larger tests and receive larger coverage in a short time together and increase response times.
Hybrid automation includes code savings, flexibility with different technologies that also change over time, and cost savings in the long-term maintenance of automation against a product and its increasing capabilities.