Isolated Software Testing Environment Using Production Data
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software updates can introduce unforeseen issues due to interdependencies between applications, leading to complex, costly, and time-consuming testing, and potential disruptions in computing systems.
Innovation Solution
A computing system generates an isolated computing environment to test software changes using production data, determining relevant datasets and simulating data operations to validate changes without impacting the production environment.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If software changes are tested in the production environment, then testing accuracy is improved, but system stability deteriorates due to potential disruptions
Solution Approach 1:
The patent creates a copy of the production environment called a reflection environment that mirrors the production system's configuration, datasets, and application instances. This copy allows testing to be performed with production-like accuracy while isolating any potential disruptions from the actual production system. The reflection environment is updated in real-time to maintain synchronization with production changes.
Solution Approach 2:
The reflection environment acts as an intermediary between the testing process and the production system. Instead of directly testing in production, the patent uses this intermediate environment to validate changes first. The reflection environment receives updates from production and allows safe testing of software changes, datasets, and configurations without directly impacting production stability.
2Reliability
If comprehensive testing of software changes is performed, then reliability is improved, but time consumption increases
Solution Approach 1:
The patent performs preliminary testing in the reflection environment before deploying changes to production. By pre-validating software changes, dataset updates, and configuration modifications in the reflected system, the patent identifies and resolves issues before they reach production, reducing the need for time-consuming post-deployment fixes and retesting.
Solution Approach 2:
The reflection environment continuously synchronizes with production updates, allowing testing to occur continuously alongside development activities. This continuous testing approach eliminates the need for separate, time-consuming testing phases by integrating validation into the ongoing software development and deployment workflow.
3Productivity
If multiple applications are updated simultaneously, then productivity is improved, but complexity of testing increases
Solution Approach 1:
The patent segments the testing process by creating individual application instances within the reflection environment for each application being tested. This segmentation allows each application's changes to be tested independently while maintaining the ability to test multiple applications concurrently in the same reflection environment, reducing the complexity of managing interdependencies.
Solution Approach 2:
The reflection environment provides a universal testing platform that can handle multiple applications, datasets, and configuration changes simultaneously. This multi-functional environment consolidates what would otherwise require multiple separate testing systems, reducing overall testing complexity while enabling parallel updates across multiple applications.
Data Source
AI summary
Systems and methods for centralized testing of software. The system can access change data indicative of at least one change to an implemented version of software, wherein: (i) the change is associated with a first computing environment and the implemented version of software is associated with a second computing environment, and (ii) the change data is associated with a request to test the change against the implemented version of software. The method can include generating an isolated computing environment to test the change against the implemented version of software, wherein generating an isolated computing environment includes determining one or more datasets that are relevant to the at least one change. The method can include testing, within the isolated computing environment, the change against the implemented version of software. The method can include migrating the change from the first computing environment to the second computing environment.


