Gain CI Efficiencies: Test Advanced Functionalities on the Right Devices

Gain CI Efficiencies: Test Advanced Functionalities on the Right Devices

/, Mobile Application Development, Mobile Application Testing/Gain CI Efficiencies: Test Advanced Functionalities on the Right Devices

Does this device support the feature I’m testing?

FaceID, TouchID, location, camera, and conversational interfaces are offered on such a wide array of devices that it’s enough to make a testing professional dizzy. There’s a constant question buzzing in our testing minds: which device supports which feature?

The fragmentation and the level of support become increasingly complex over time with each operating system and hardware update. Testers spend precious time mapping and manually programming tests to run on specific devices based on feature capabilities. If they don’t do this time-consuming task, the result can be false failures due to testing features on non-supported devices.

Advanced device capabilities

Seeing the frustrations & pains experienced by testing customers led Perfecto to develop a new set of custom capabilities (built on Appium). This new feature set allows users to ensure the testing device(s) can support the requested functionality.

To see this in action, see the settings and example below:

Figure 1: Advanced Capabilities to Select Device

Inside of a single script, naturally a tester can select a device based on a capability, for example:

capabilities.setCapability(“platformName”, “Android”);

capabilities.setCapability(“platformVersion”, “[56].*”);

capabilities.setCapability(“manufacturer”, “Samsung”);

capabilities.setCapability(“model”, “Galaxy.*”);

capabilities.setCapability(“perfecto:motionInjectionSupport”, true);

Naturally, this can be parameterized so that the setting can be made at TestNG, or even in Jenkins.

In this example, we attempt to allocate a device only based on standard capabilities and attempt to inject text into Siri, which naturally fails. Instead, we add a new capability ‘perfecto:voiceAssistantInjectSupport’ = true, which reserves the right device and the scripts executes correctly.

Figure 2: Adding selection of device based on voice assistant capability

Big thanks to Daniel Tourgman for the awesome example!

About the Author:

Leave A Comment