Software Testing Time Scaling via Intermediary Layer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software testing for time-delayed event pairs is inefficient due to the need for code modifications and subsequent regression testing, which can affect the reliability and functionality of the original code and is resource-intensive.

Innovation Solution

A method and system that identify discrete time instances based on the time delay between input and output events, allowing for synthetic clock setting to test software without altering the original code, using predetermined inputs at these instances to validate output events.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If code modifications are made to implement time scaling for testing, then testing time is reduced, but code reliability and functionality are affected

Engineering Contradiction:
Improvetesting timeVSAvoidcode reliability
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The patent introduces a time scaling layer as an intermediary between the test execution environment and the actual software code. This layer translates test time units to real time units, allowing rapid testing without modifying the underlying code. The time scaling factor acts as a mediator that decouples test execution speed from actual software timing behavior, thus reducing testing time while preserving code integrity and reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a virtual time environment that copies and simulates the passage of time according to a scaling factor. Instead of modifying the actual code to wait for real time delays, the system creates a virtual representation of time progression that accelerates the testing process. This virtual time copy allows testers to simulate long-duration events in compressed time without affecting the original code's timing logic.

Inventive Principle:
Principle #26Copying

2Ease of operation

If code modifications are made for time scaling, then testing can be performed, but regression testing is required which increases resource consumption

Engineering Contradiction:
Improvetesting capabilityVSAvoidresource efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

By positioning the time scaling mechanism as an intermediary layer rather than embedding it in the code, the patent eliminates the need for code modifications. This intermediary approach enables testing capabilities without triggering regression testing requirements, as the original code remains untouched. Resources are used more efficiently since the time scaling infrastructure can be reused across multiple test scenarios without requiring repeated regression validation.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If 1:1 temporal mapping is used for testing, then code accuracy is maintained, but testing duration becomes excessively long

Engineering Contradiction:
Improvetime measurement accuracyVSAvoidtesting duration
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent changes the time parameter representation by introducing a time scaling factor that maps test time units to real time units. Instead of using a 1:1 mapping where 1 test unit equals 1 real time unit, the system applies a scaling transformation (e.g., 1 test unit equals N real time units). This parameter change allows the same temporal relationships to be tested in compressed time while maintaining the accuracy of time interval relationships through the consistent application of the scaling factor.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9454468B2Method and system for testing software
Publication Date: 2016.09.27 WIPRO LTD
  • US9454468B2 patent drawing
  • US9454468B2 patent drawing
  • US9454468B2 patent drawing

AI summary

In one embodiment, a method of testing a software is disclosed. The method comprises: providing an input event to the software under test, wherein the software under test is associated with a time delay between an input event and an output event; identifying one or more discrete time instances based on the time delay between the input event and the output event; and testing the software under test by synthetically setting a clock to the one or more discrete time instances.