Voltage Fluctuation Resilience Validation — Device Test Automation with Wipro DevAssure

Wipro Tech Blogs
9 min readJun 26, 2023

Authors: Manoj Varghese Thomas, Mukesh M Prabhu

1. Introduction

Non-functional testing plays a significant role in ensuring the product performs the intended tasks in varying conditions and situations which are beyond the direct control of the product. In this context response of the product/device to voltage fluctuations becomes one of the essential considerations for quality assurance. The terms product and device, are used interchangeably in this article. Voltage fluctuation here refers to any changes in the voltage levels of the power source that feeds the power to the device. When the source of power is susceptible to variations, the device may get impacted due to voltage fluctuations, or at times, one or more sub-systems within the device may get affected based on the severity of fluctuation.

The expectation is that the device/subsystem operates optimally when the fluctuations are within the specified operating voltage range. When the fluctuation is outside of its operating voltage, the device/subsystem is expected to either gracefully transitions into low power mode or shut down safely. Subsequently, once the voltage is within specified operating voltage range, the device/subsystem is expected to power up or wake from low power mode and revert to the same state it was prior to the voltage fluctuation.

Validating device resilience under these conditions is not a trivial task as it involves inducing controlled fluctuations and validating the device behavior at various stages of device operations. This is where Wipro’s device test automation accelerator Wipro DevAssure plays a vital role in automating the entire validation process.

This article describes an approach to perform voltage fluctuation resilience validation for devices using Wipro DevAssure and supporting tools such as programmable power supply.

While the approach described in this article is successfully deployed for voltage fluctuation resilience validation for car infotainment units, it is equally applicable for test automation of several products/devices spanning industry segments and for non-functional validation beyond validating the device resilience for voltage fluctuations.

The rest of the article is organized into the following sections:

Section2: Provides an overview of Wipro DevAssure

Section3: Provide brief description covering basics of voltage fluctuation

Section4: Covers testbed creation with Wipro DevAssure and

Section5: Conclusion

2. Wipro DevAssure Overview

Wipro DevAssure is a UI-driven end-to-end test automation solution for smart devices. It is built for easy customization to support various device platforms and features. Wipro DevAssure’s plugin architecture of provides an easy and flexible way to incorporate new features and capabilities.

The overall architecture comprises broadly two parts, the Core system and the Plugins containers that make it possible to extend the functionality of DevAssure through standalone plugin modules. This plugin architecture allows easy extensibility of features and the flexibility of adding newer functionality while retiring older functionality as independent plugins. As a result adding new feature does not changes to Core.

DevAssure defines plugin containers, which define interfaces and designated locations to place the plugin modules, which can then be loaded at launch. The plugin containers are categorized into various plugin types as listed below:

1. Device Plugin -> for the customization of DevAssure to work with various device platforms such as Android, Windows Desktop and iOS.

2. Image/Text/Speech Recognition Plugin -> for supporting various image/text/Speech recognition libraries.

3. Language Plugins-> supporting different and popular scripting languages such as Python, Perl, etc.

4. Peripheral Plugin -> Enables customizing and adding support for Peripheral devices that needs to be part of the test automation ecosystem. A test ecosystem in the context of an embedded device could encompass typically Programmable USB switches, Robotic ARMs driving device HMI, optionally include capabilities for network simulation for reading and writing network messages on CAN, LIN, MOST networks, and VISA¹ compliant instruments such as Programmable power supplies, Digital Multi Meter, Oscilloscopes, etc.

The plugin architecture of Wipro DevAssure is shown in Figure 1, and Figure 2 illustrates the test automation ecosystem with Wipro DevAssure.

Figure 1 Wipro DevAssure Plugin Architecture
Figure 2 Wipro DevAssure Plugin Architecture driven Test Ecosystem

3. Understanding the Voltage Fluctuation

In the context of automotive vehicles, voltage fluctuation can occur because of cranking the engine or such other actions that drain more power. Hence, it is imperative to validate the behavior of the affected subsystems during voltage fluctuation, which could involve any of the following scenarios:

1. Graceful shutdown of the device under test when the voltage goes below defined threshold voltage and stays below the threshold value for a duration exceeding defined time.

2. Device restarts and reverts to the state it was before the shutdown occurred due to the voltage fluctuation.

3. Detect any device instabilities manifested as unexpected device restarts or reboots at timespans where the voltage is adequately above the minimum threshold voltage.

While it is possible to control the voltage using the front panel knobs of the power supply, it is impossible to manually control the fluctuation intervals in milliseconds range. The simulation of voltage fluctuation scenarios in a lab requires the use of programmable power supplies to power to device subsystem under test. These power supplies can generate voltage waveform of various types. Given the time sensitive nature of voltage variation in these waveforms, such power supplies support sequencing of variations, which can be programmed and saved to the programmable power supply. Later these saved sequences can be played out to the connected device. This ensures the voltage variations are not dependent on external factors, which can introduce unwarranted latencies.

Voltage fluctuations are represented as a waveform that shows voltage vs time plot over a period of observation. Some of the typical waveforms useful in the context of this article include flat line, square, positive ramp, negative ramp, sinusoidal riding DC waveform which are depicted in Figure 3 through Figure 7.

Figure 3 Flat Line Waveform
Figure 4 Square Wave
Figure 5 Positive Ramp waveform
Figure 6 Negative Ramp Waveform
Figure 7 Sinusoidal riding DC Waveform

A real-world voltage fluctuation could be represented as a composite waveform, comprising several types of waveforms with the specified duration for each type with max, Min values and repetitions. Figure 8 depicts one such composite waveform.

Figure 8 Composite Waveform

Programmable power supplies that implement VISA (Virtual Instrument Software Architecture) specification are helpful in automating the voltage fluctuation resilience validation. IVI Foundation² defines aspects of instrument interfacing, remote connectivity, underlying communication protocol and SCPI² (Standard Commands for Programmable Instruments) commands over VISA provide a set of standard commands for programmable instruments. The instrument processes and executes the SCPI commands sequentially and returns a status. The sequential execution and reporting of execution status could also pose latency challenges if not managed carefully.

4. Putting it Altogether: A Testbed with Wipro DevAssure

The testbed for Automotive Voltage fluctuation resilience validation, as shown in Figure 9, consists of the device under test, a programmable power supply and Wipro DevAssure. The diagram also shows the integration of voltage fluctuation plugin as a Peripheral Plugin module.

This peripheral plugin allows the programming of the power supplies with predefined waveform files and makes it possible to run them from the script. The programmable power supply peripheral can be used to control up to four programmable power supply units over SCPI/VISA interface, thereby making it possible playing out waveforms on four different channels. This illustration indicates the usage in terms of being able to control power fluctuations that could be applied to 3 Channel namely Battery(+B), Accessories (ACC), Ignition (IGN) which is relevant to vehicular devices such as in vehicle infotainment unit.

Figure 9 Testbed with Wipro DevAssure

The voltage fluctuation resilience validation with Wipro DevAssure comprises of the following high-level tasks.

1. Generation of test vectors in the form of wave forms to be programmed in the power supply. Waveform data is provided as input to the Wipro DevAssure test script.

2. Based on the voltage variation defined in the input data, SCPI commands are generated as part of the Wipro DevAssure test automation script to vary the voltage over the entire duration of testing

3. Script the test scenarios with automation sequence with Wipro DevAssure. A snippet of script is shown in Figure 10

4. Develop test suites, which a collection of test scripts for the chosen test scenario and organize them using Wipro DevAssure test suite editor as shown in Figure 11.

5. The system running Wipro DevAssure with plugins uses VISA interface to connect to the Instrument over the supported interfaces such as LAN, USB, GPIO, or Serial. Wipro DevAssure can establish one or more VISA sessions so that one or more channel specific voltage variations can be programmed and played out.

6. Wipro DevAssure script includes a mechanism to check the instances of device resets/reboots during testing.

Wipro DevAssure provides intuitive and easy ways to define the scope of testing and fully control when the voltage fluctuations are to be applied and what aspects of device behavior are to be recorded during and after the voltage fluctuations are applied. While the specifics of test validation will be device specific, a typical test run with Wipro DevAssure run could include the following:

1. DevAssure stores the device state and UI screen prior to applying the waveform. This will aid in validating the device behavior during and after the voltage fluctuations are applied. A typical Wipro DevAssure Test execution screen is shown in Figure 12.

2. Time spans where the voltage is expected to go below minimum threshold defines periods of low voltages. Based on the duration of this time span, device may transition into low power modes or complete shutdown. Device behavior can be validated with the expected behavior in terms of

a. Number of actual device restarts vs expected restarts.

b. Detecting instabilities in terms of device resets during low voltage transition phase by analyzing and looking for common patterns for instabilities in device logs.

c. Intermediate screen validations for transition from such as reboot, or transition from a low power state.

3. Validate if device retains state in terms of

a. Restoration of BT and WLAN connections after the restart.

b. Phone & Audio system resumes from where it left off.

Wipro DevAssure generates a test report at the end of test execution cycle that provides a summary of test execution and results. A typical Wipro DevAssure Test report screen is shown in Figure 13.

Figure 10 DevAssure Script
Figure 11 DevAssure Test Suite Editor
Figure 12 DevAssure Test Execution
Figure 13 DevAssure Test Suite Execution Reports

5. Conclusion

Voltage fluctuation testing is crucial for devices that operate under power sources susceptible to voltage fluctuation. It is important to verify and validate the behavior of device and its subsystems by subjecting it to real-world fluctuation patterns that the device is expected to encounter in the wild.

Wipro DevAssure has been successfully deployed for automated voltage fluctuation resilience validation of automotive devices. The approach described in this article along with a programmable power supply and Wipro DevAssure makes it possible to run the device against thousands of waveforms for regression and identify instabilities and functionality issues.

Wipro DevAssure provides UI-driven test automation capability, which has been used for both functional and non-functional validations. While, Voltage fluctuation resilience validation can be performed as a separate focused testing, leveraging the functional test automation of Wipro DevAssure, voltage fluctuations can be introduced as part of test environment of regular functional testing.

While the approach described in this article is about controlling programmable power supply, the SCPI & VISA based control of instruments is equally relevant to controlling other instruments and hence Wipro DevAssure with its plugin architecture capabilities is used across industry domains for test automation and validation.

Due to confidentiality reasons, the actual data of voltage and failures are not shown in this article. Synthesized data is used to illustrate the capability of Wipro DevAssure.