From Devices to Data: Navigating Complex Systems and Applications with Advanced Test Automation

By Mike Wager, Product Marketing Manager at Keysight Technologies.

  • 5 months ago Posted in

Software is constantly evolving with innovation happening every day, as a result applications need to adapt and follow suit. This rapid change makes software testing a difficult task, with many teams trying to find the balance between functionality, speed, and quality. Software testing is essential to not only ensure reliable and quality products, but it can provide substantial cost savings and return on investment. The challenge is that organisations need to adapt a modern approach offering a flexible testing framework. From providing validation across multiple platforms and devices, to advanced data handling, versatile system interactions and communication capabilities.

Traditional automation frameworks and open-source tools are limited due to the tendency to address only a single technology layer. Failing to validate the application-under-test (AUT) leads to quality assurance gaps and neglects the end user's experience. However, replicating real-world user actions when high-quality software products communicate with diverse systems and execute complex commands is challenging if teams can't validate the user experience at the graphical user interface. Modern applications require this level of robust testing to ensure they function as intended. So, to achieve this, quality assurance (QA) teams need an automated solution that interacts with the entire system-under-test (SUT) to create a series of end-user actions that control the AUT and checkpoints for validation during the test run.

Device Connectivity

A robust software testing solution should offer unparalleled flexibility when testing, with its versatility extending far beyond the limitations of traditional automation frameworks, single system testing, and the programming languages applications are running on. Having the capability to use various connectivity options to test different interfaces is vital for modern applications.

This includes connecting to WebDriver protocols as one example. An automated software testing tool can extend the capabilities of popular automation frameworks like Selenium and Appium by facilitating object-based testing for web applications and mobile devices. Using WebDriver commands and functions, the tool can automate web browser testing based on WebElements in web pages' Document Object Model (DOM). QA teams can also combine WebDriver and existing Selenium scripts or Appium tests with image-based scripting for a hybrid approach that utilizes the best of each testing method.

Visual recognition or automated graphic user interface (GUI) testing is also one area that some automation frameworks struggle with because of the necessity to interact with the source code. Some automation scripts can break when looking for object identifiers that may have changed or no longer exist during an update or test maintenance. Automated software testing tools can tackle intricate scenarios and complex applications by connecting to the entire system and validating the user interface (UI). Image and optical character recognition capabilities can locate specified text or images and read text from particular locations on a screen, which is only achievable at the GUI level.

Advanced testing solutions support various protocols, Remote Desktop Protocol (RDP) or Virtual Network Connection (VNC) for remote access, IP KVM (keyboard, video, mouse) for

controlling bare metal and embedded systems, and capture cards for recording video output from multiple devices simultaneously when access to the codebase is restricted. Even when traditional connections are unavailable or screen capture is disabled, some tools still enable visual recognition for closed systems using a video camera. Automated software testing can still occur for locked-down devices, such as smart TV applications, credit card terminals, and medical devices, by analyzing on-screen elements via video streams captured by a camera.

It is also important to look at mobile testing capabilities, to ensure QA teams have access to a comprehensive suite tailored to the various requirements for iOS and Android devices. Testers using a tool with access to mobile devices and simulators over USB or Wi-Fi can execute Appium and visual recognition testing on physical handsets and simulators/emulators within a device lab environment. This connection method enables testing applications across cellular networks to validate functionality under real-world conditions to ensure optimal performance and the end user experience. To extend testing capabilities further, an automated software testing solution that integrates with a device cloud opens access to hundreds of iOS and Android device models, increasing coverage beyond physical labs.

Advanced Data Handling

In addition to connecting to various applications and devices to test the whole SUT, a complete testing solution should include comprehensive data handling functionalities. The ability to handle diverse data sets from multiple sources is essential for software testers to ensure realistic testing scenarios, comprehensive test coverage, and validation of system interactions.

Testing databases ensures data accuracy, functional correctness, and performance. One key feature of a great tool is looking for open database connectivity (ODBC) support to enable users to interact with database tables, allowing dynamic data retrieval and manipulation during test executions. Some organizations don't use traditional databases, so on these occasions, testing teams will need a tool that can refer to plain text (.txt, .csv, .xml, etc.) and excel files (.xlsx) as databases. This enables testers to parse test data and write results. This two-way connectivity enhances testing by comprehensively validating software functionality across diverse and complex data sources.

A tool must fully support Simple Object Access Protocol (SOAP) and Representational State Transfer (REST) APIs to interact with web services, validate data, and verify system behavior at the UI by leveraging API calls. It is important to set up environments at the beginning of test execution for accurate configurations and real-world conditions. For example, configuring network settings using API calls to create different conditions to address connectivity or performance issues during testing.

Interacting with Shell commands via APIs also shouldn't be overlooked. This means testing teams can execute diverse commands to create complex test scenarios, such as monitoring website status and availability, that can impact the end-user experience.

Versatile System Interactions and Communication Capabilities

Testers should also look to ensure they can analyze system interactions, including executing Shell and CLI commands, monitoring terminal outputs, and interacting with system processors. It is important to ensure any tools can also support transmission control protocol (TCP) socket manipulation, facilitate communication with network-enabled devices, and integrate with standard input and output streams for command-line responses and executions.

As software is often intertwined with hardware, teams need to work with industry-standard virtual instrument software architecture (VISA) protocol to connect to a physical device and standard commands for programmable instruments (SCPI) to control these devices.

Final thought

Modern SUTs are integrated with multiple technologies, requiring robust end-to-end testing to validate complex processes. Even simple scenarios, such as two-factor authentication, need various components to be tested. In this instance, a user logs into a website on a Windows laptop, prompting the generation of a unique code on their Android mobile device.

Traditional testing tools frequently struggle with intricate test cases and transitioning between different technologies and platforms. So, the best tools can integrate into existing testing infrastructures with a wide range of connectivity options, offering flexibility and scalability to meet diverse testing needs while validating the end-user experience through automated GUI testing to enable desktop applications, web browsers, mobile apps, virtual environments, and more to be tested.

By Kashif Nazir, Technical Manager at Cloudhouse.
By Richard Eglon, CMO, Nebula Global Services.
By Graham Jarvis, Freelance Business and Technology Journalist, Lead Journalist – Business and...
By Krishna Sai, Senior VP of Technology and Engineering.
By Thomas Kiessling, CTO Siemens Smart Infrastructure & Gerhard Kress, SVP Xcelerator Portfolio...
By Aleksi Helakari, Head of Technical Office, EMEA, Spirent and Patrick Johnson, CMO, APNT - a...
By Dave Longman, Head of Delivery, Headforwards.
It’s getting to the time of year when priorities suddenly come into sharp focus. Just a few...