Java Virtual Machine Class Dependency Tracking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing continuous testing solutions for Java applications are inefficient as they often re-run unnecessary tests, leading to prolonged testing times and excessive computational resource consumption, due to challenges in tracking and determining dependency relationships within large and complex applications.
Innovation Solution
The system instruments application classes to record usage during testing, mapping which classes are used by which tests, allowing only relevant tests to be re-run when a class is modified, thereby reducing unnecessary testing and conserving computational resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If all tests are re-run when a class is modified, then testing completeness is ensured, but testing time and computational resource consumption increase
Solution Approach 1:
The patent segments the test suite into multiple test classes, each associated with specific application classes. When an application class is modified, only the test classes associated with that specific class are re-run, rather than executing the entire test suite. This segmentation approach maintains testing completeness for modified components while significantly reducing overall testing time and computational resource consumption.
2Productivity
If dependency tracking is implemented to identify relevant tests, then testing efficiency improves, but system complexity increases
Solution Approach 1:
The patent performs preliminary action by pre-establishing associations between test classes and application classes during the initial setup. Test classes are configured with metadata indicating which application classes they test, allowing the system to quickly determine relevant tests when classes are modified without performing complex real-time analysis. This preliminary configuration simplifies the runtime dependency tracking process.
3Loss of energy
If only relevant tests are re-run, then computational resource consumption decreases, but risk of missed tests increases
Solution Approach 1:
The patent implements feedback mechanisms where the testing framework monitors class modifications and uses the pre-established test-class to application-class mappings to automatically determine which tests should be re-run. This feedback loop ensures that only relevant tests are executed while maintaining comprehensive test coverage for modified components, preventing both resource waste and missed tests.
Data Source
AI summary
A system includes a processor in communication with a memory, a virtual machine running on the processor, and an application executing within the virtual machine. The virtual machine is associated with at least one testing tool configured to transform a plurality of application classes of the application, such that each respective class of the plurality of application classes is configured to track its respective usage. The testing tool is further configured to test the application with a plurality of tests, and while testing the application, map which respective classes of the plurality of application classes are used by respective tests. Additionally, the testing tool is configured to determine which class(es) is used by which tests (e.g., a subset of tests). Responsive to a first class being modified, the testing tool is configured to retest the application with the subset of tests.


