Incremental Code Coverage Analyzer for Multi-Team Software Projects

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems fail to provide accurate incremental code coverage for individual software projects in multi-team environments, leading to inaccurate reporting and inability to segregate changes made by different teams working on the same module, and do not calculate mutation coverage in a project-wise manner.

Innovation Solution

A system and method for determining project-specific incremental code coverage by integrating an incremental code/mutation coverage analyzer engine with project management and version control software, allowing parallel computation of delta coverage across multiple projects, and segregating changes made by different teams, using changelists and code coverage data from libraries like JACOCO and pitest.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If existing systems calculate code coverage for entire source code, then comprehensive coverage information is obtained, but incremental coverage for individual projects cannot be determined

Engineering Contradiction:
Improvecode coverage measurement precisionVSAvoidincremental coverage information
Core Design Contradiction:
Measurement precisionVSLoss of information

Solution Approach 1:

The system segments the monolithic code coverage measurement into project-specific incremental measurements. By dividing the overall codebase into individual software projects and calculating coverage changes for each project separately, the system enables precise measurement of incremental coverage without losing project-specific information.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system extracts incremental coverage information from the comprehensive code coverage data by identifying and isolating changes specific to individual projects. This extraction process separates project-specific coverage metrics from the overall codebase coverage, enabling focused analysis of incremental changes.

Inventive Principle:
Principle #2Taking out (Extraction)

2Productivity

If multiple project teams work on the same module simultaneously, then development productivity increases, but code coverage reporting becomes inaccurate and cannot segregate team-specific changes

Engineering Contradiction:
Improvedevelopment productivityVSAvoidcode coverage reporting accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system segments code coverage tracking by project team and module, creating isolated measurement contexts for each team's changes. This segmentation allows multiple teams to work simultaneously on the same module while maintaining accurate, team-specific coverage reports that do not interfere with each other.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system introduces an intermediary layer that tracks and attributes code changes to specific project teams before calculating coverage metrics. This intermediary mechanism mediates between multiple teams' concurrent modifications and the final coverage reporting, ensuring accurate attribution of changes to the correct teams.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If legacy code is updated frequently to meet customer requirements, then software adaptability improves, but maintaining code quality becomes more difficult

Engineering Contradiction:
Improvesoftware adaptabilityVSAvoidcode quality
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system implements feedback mechanisms that provide real-time incremental code coverage and mutation coverage metrics as legacy code is updated. This feedback loop enables development teams to immediately assess the impact of changes on code quality, allowing them to maintain reliability while adapting to new requirements.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system performs preliminary analysis of code changes before they are fully integrated, calculating incremental coverage metrics to predict potential quality issues. This preliminary action allows teams to identify and address code quality concerns before they propagate through the legacy codebase.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10949172B1System, method, and computer program for determining incremental code coverage of a software project
Publication Date: 2021.03.16 AMDOCS DEV LTD
  • US10949172B1 patent drawing
  • US10949172B1 patent drawing
  • US10949172B1 patent drawing

AI summary

A system, method, and computer program product are provided for determining incremental code coverage of a software project. In operation, a system provides computation of project specific incremental (delta) code coverage in parallel in scenarios of multiple project teams working on different projects on a same module (or in the same repository). Further, an incremental code/mutation coverage analyzer engine associated with the system may be integrated with a project management tool and a version control software to obtain the changed code lines with respect to each project, using what it calculates as the incremental code and/or the mutation coverage.