Automated Code Testing via Two-Dimensional Test Plane
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional code testing techniques fail to expose bugs and weaknesses in application code until after deployment in cloud infrastructure, as they rely on static test data that does not account for dynamically varying data.
Innovation Solution
Implementing a processing platform with a copy data manager and code version repository to create a two-dimensional test plane, allowing automated testing using multiple distinct data versions, including point-in-time backups and live application data, for improved code version testing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If static test data is used for code testing, then testing simplicity is maintained, but bug detection capability deteriorates
Solution Approach 1:
The patent transforms static test data into dynamic test data by implementing a data version repository that stores multiple versions of test data and automatically selects appropriate versions based on the code being tested. This dynamic approach allows the testing system to adapt data characteristics to match production environments, thereby improving bug detection capability while maintaining testing simplicity through automation.
Solution Approach 2:
The system changes the parameter of test data from static to dynamic by introducing version control and selection mechanisms. The data version repository manages multiple data versions with different characteristics, and the system selectively applies appropriate data versions based on code identifiers, effectively changing the data state parameter to enhance testing effectiveness.
2Reliability
If multiple data versions are used for testing, then test coverage is improved, but system complexity increases
Solution Approach 1:
The testing system performs self-service by automatically selecting appropriate data versions based on code identifiers without requiring manual intervention. The data version repository and selection logic work autonomously to match test data with corresponding code versions, reducing the perceived complexity for users while maintaining comprehensive test coverage.
Solution Approach 2:
The patent introduces a data version repository as an intermediary component that manages the complexity of multiple data versions. This intermediary layer abstracts the complexity from the testing process by handling data version selection, storage, and retrieval, allowing the rest of the system to interact with a simplified interface while benefiting from comprehensive data versioning.
3Productivity
If conventional static testing is used, then testing speed is maintained, but bug exposure timing deteriorates
Solution Approach 1:
The system performs preliminary action by conducting comprehensive tests using multiple data versions before code deployment to production. The data version repository pre-stores various data versions, and the automated selection process ensures that relevant bugs are exposed during the testing phase rather than after deployment, thereby reducing the time loss associated with post-deployment bug discovery.
Data Source
AI summary
An apparatus in one embodiment comprises at least one processing platform including a plurality of processing devices. The processing platform implements compute services for users and further comprises a copy data manager configured to maintain a data version repository. The data version repository stores under the control of the copy data manager a plurality of data versions for each of one or more of the compute services implemented by the processing platform. A code version repository stores a plurality of code versions for each of one or more of the compute services implemented by the processing platform. The code versions stored in the code version repository and the data versions stored in the data version repository collectively provide a two-dimensional test plane. Automated testing the code versions is carried out by an automated code testing system using multiple distinct ones of the data versions selected from the two-dimensional test plane.


