Code Coverage File Recommendation via Clustering and Filtering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In software development, especially in enterprise projects, users face the challenge of manually verifying a large number of code coverage files, leading to important data being overlooked, as they typically focus on a small subset, without fully understanding the code base.

Innovation Solution

An automatic code coverage file recommendation system that uses historical data and developer profiles to cluster and filter code coverage files, combining collaborative and content filtering methods to provide a ranked list of relevant files for verification, thereby reducing the manual effort and ensuring comprehensive verification.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If users manually verify a large number of code coverage files, then comprehensive verification can be achieved, but time consumption and workload increase significantly

Engineering Contradiction:
Improveverification completenessVSAvoidverification time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system automatically generates code coverage file recommendations by analyzing historical data and developer behavior patterns without requiring manual intervention. The recommendation engine self-serves by autonomously processing code coverage data, clustering files, and generating prioritized lists, eliminating the need for users to manually verify all files while maintaining high verification completeness.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary analysis of code coverage files before user verification by pre-processing historical data, clustering similar files, and pre-generating recommendation lists. This preliminary action filters and prioritizes files in advance, so when users do verify files, they are presented with a pre-curated list of high-priority files rather than browsing through all files manually.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If users focus on a small subset of code coverage files, then verification speed increases, but important data may be overlooked

Engineering Contradiction:
Improveverification speedVSAvoiddata coverage
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system changes the parameter of file selection from random or manual choice to algorithmically determined priority ranking. By transforming the selection criterion based on historical verification patterns and code coverage metrics, the system enables users to quickly focus on the most important files (high productivity) while ensuring comprehensive coverage of critical areas (high reliability) through the prioritization logic.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system applies different verification priorities to different files based on their characteristics. High-priority files that are more critical or have higher risk are placed at the top of the recommendation list, while lower-priority files are placed lower. This local differentiation ensures that limited user time is allocated to the most important files, achieving both speed and completeness.

Inventive Principle:
Principle #3Local quality

3Measurement precision

If developers fully understand the code base before verification, then verification accuracy improves, but the time required for learning increases

Engineering Contradiction:
Improveverification accuracyVSAvoidlearning time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The recommendation system acts as an intermediary between the developer and the code base. Instead of requiring developers to directly understand and navigate the entire code base, the system mediates by analyzing the code structure, historical data, and coverage patterns to generate intelligent file recommendations. This intermediary processing enables developers to achieve high verification accuracy without needing to invest significant time in learning the code base.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system replaces the mechanical process of manual code base exploration and understanding with an automated intelligent system. Instead of developers mechanically reading and understanding code files before verification, the recommendation engine automatically analyzes code patterns, historical verification data, and coverage metrics to generate prioritized file lists, substituting human cognitive effort with automated computational analysis.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS11119898B1Automatic code coverage file recommendation
Publication Date: 2021.09.14 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11119898B1 patent drawing
  • US11119898B1 patent drawing
  • US11119898B1 patent drawing

AI summary

Techniques for automatic code coverage file recommendation are described herein. An aspect includes receiving historical code coverage data. Another aspect includes clustering the historical code coverage data. Another aspect includes performing content filtering based on the clustered historical code coverage data to determine a content filtering preferred file list. Another aspect includes performing collaborative filtering based on the clustered historical code coverage data to determine a collaborative filtering preferred file list. Another aspect includes combining the content filtering preferred file list and the collaborative filtering preferred file list to determine a code coverage file recommendation list. Another aspect includes providing the code coverage file recommendation list to a user.