Software Test Dependency Mapping for Rapid Error Identification
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Automated software testing of large software products with millions of lines of code is time-consuming, as existing methods require running entire test libraries, which slows down the development process, and fail to accurately identify changes in code and database units, leading to inefficiencies and potential missed failures.
Innovation Solution
A computing device executes software tests on a first version of the software product, collects code and database coverage data to create mappings between tests and code/data units, allowing for selective execution of tests that target modified units, thereby reducing the need to run the entire test library and improving failure identification.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the entire test library is executed against the software product, then comprehensive coverage of all code units is achieved, but testing time increases significantly
Solution Approach 1:
The patent segments the test library into smaller subsets based on code unit dependencies. By creating a mapping between code units and tests, the system divides the monolithic test execution into targeted subsets that only include tests relevant to modified code units, thereby reducing overall testing time while maintaining necessary coverage
Solution Approach 2:
The patent applies partial action by executing only a subset of tests rather than the complete test library. The system determines the minimum necessary test coverage by analyzing code unit changes and their dependencies, running only those tests that are actually affected by the modifications
2Measurement precision
If code coverage data and database coverage data are collected to create mappings, then test selection accuracy improves, but data processing complexity increases
Solution Approach 1:
The patent performs preliminary action by collecting code coverage data and database coverage data during initial test executions to build dependency mappings. This pre-computed mapping information is then reused during subsequent test selections, avoiding the need to re-analyze dependencies for every test run and simplifying the overall process
Solution Approach 2:
The patent introduces an intermediary mapping structure that connects code units, database units, and tests. This mapping acts as a mediator that simplifies the relationship between these elements, allowing the system to efficiently determine test subsets without directly complexly analyzing all possible relationships each time
3Productivity
If the mapping between tests and code units is determined, then the subset of tests can be identified quickly, but initial setup time is required
Solution Approach 1:
The patent performs the mapping determination as a preliminary action that is done once or infrequently. The resulting mapping structure is then reused across multiple test executions, making the initial setup time amortized over many subsequent quick test selections and executions
Data Source
AI summary
An example system includes (i) a software product having a plurality of code units that accesses a database, (ii) a processor, and (iii) a non-transitory computer readable storage medium having stored thereon software tests and instructions that cause the processor to: execute the software tests on a first version of the software product; determine a first mapping between each respective software test and one or more of the code units; determine a second mapping between each respective software test and one or more data units in the database; determine that, between a second version and the first version of the software product, a particular code and data unit have changed; select, from the first and the second mappings, a set of software tests with mappings to the particular code unit or data unit; and execute the set of software tests on the second version of the software product.


