Automated Code Checking for Commit Impact Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software developers face challenges in identifying and addressing errors caused by commit operations in software code, as manual unit tests often fail to cover all affected portions, leading to inefficiencies and potential collateral damage.

Innovation Solution

An automated code checking system that analyzes the impact of commit operations, identifies affected code areas, and generates comprehensive unit tests by updating existing or creating new jobs in databases to ensure thorough testing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If developers manually perform unit tests prior to committing changes, then they can test their respective source code changes, but the tests often fail to cover all of the portions of source code that may be affected by a given commit operation and the process is time consuming

Engineering Contradiction:
Improvecode testing coverageVSAvoidtime for creating and executing tests
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary analysis of the codebase to identify all portions that may be affected by a commit operation before the developer commits. This includes tracing dependencies, analyzing data flows, and determining impact scope in advance, so that comprehensive tests can be automatically generated and executed before the commit is finalized, ensuring complete coverage without manual time investment

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system automatically identifies affected code portions, generates appropriate unit tests, and executes them without requiring developer intervention. The system serves itself by autonomously analyzing the codebase, determining test requirements, creating test cases, and running the tests, thereby eliminating the time-consuming manual process while maintaining comprehensive coverage

Inventive Principle:
Principle #25Self-service

2Reliability

If developers perform manual unit tests for their source code changes, then they can identify errors in their own code, but they cannot detect errors caused by their commits in other areas of the source code

Engineering Contradiction:
Improveerror detection capabilityVSAvoidscope of code coverage
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system provides universal testing capability that automatically adapts to any commit operation regardless of which developer made it or which portion of the codebase is affected. It analyzes the entire codebase to identify all affected portions, generates appropriate tests for each affected area, and executes them, thereby providing comprehensive error detection across the entire codebase rather than limiting testing to only the specific files modified by a single developer

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If comprehensive unit tests are created to cover all affected portions of source code, then all errors can be detected, but the creation of such tests is time consuming

Engineering Contradiction:
Improvetesting completenessVSAvoidsoftware release speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary automated analysis of the codebase to identify all affected portions before commits are made. By pre-computing dependency graphs, data flow paths, and impact assessments, the system prepares the groundwork for comprehensive testing in advance, allowing rapid generation and execution of complete test suites when commits occur, thus maintaining both completeness and speed

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system replaces the manual mechanical process of creating and executing comprehensive tests with an automated computational system. The automated system analyzes code dependencies, generates test cases, and executes tests programmatically, eliminating the time-consuming manual effort while achieving complete coverage, thereby maintaining high productivity alongside comprehensive testing

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

Data Source

PatentUS11656977B2Automated code checking
Publication Date: 2023.05.23 EMC IP HLDG CO LLC
  • US11656977B2 patent drawing
  • US11656977B2 patent drawing
  • US11656977B2 patent drawing

AI summary

Methods, apparatus, and processor-readable storage media for automated code checking are provided herein. An example method includes identifying at least one test related to code of a repository that is affected by a commit operation; in response to determining that an existing job in a first database includes the at least one test: updating a configuration of the existing job based on the affected code, and executing the existing job with the updated configuration; and in response to determining that an existing job in the first database does not include the at least one test: determining that a previously executed job from a second database includes the at least one test, updating the configuration of the previously executed job based on the affected code to create a new job, adding the new job to the first database, and executing the new job.