Prioritized Code Location List for Fault Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software testing methods often fail to efficiently focus resources on fault-prone code locations, leading to suboptimal testing, reviewing, and debugging processes due to the lack of effective prioritization based on change history and coverage information.

Innovation Solution

A method that utilizes a prioritization processor to assign priorities to software code locations based on change information and coverage metrics, producing a prioritized list that directs user attention to areas most likely to contain bugs, thereby optimizing testing, reviewing, or debugging efforts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If software testing resources are distributed uniformly across all code locations, then coverage is comprehensive, but testing efficiency is low due to inability to focus on fault-prone areas

Engineering Contradiction:
Improvetesting efficiencyVSAvoidfault detection precision
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent applies local quality by assigning different priority levels to different code locations based on their change history and fault propensity. Instead of uniform testing coverage, the system identifies specific high-risk locations (those with frequent changes or historical faults) and concentrates testing resources there, while reducing coverage in low-risk areas. This resolves the contradiction by making testing effort proportional to local fault risk.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent changes the parameter of resource allocation from uniform distribution to priority-based distribution. By introducing priority metrics derived from change history analysis, the system dynamically adjusts where testing resources are applied, transforming the static uniform coverage approach into a dynamic risk-proportional approach that improves both efficiency and precision.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If comprehensive code review is performed on all code locations, then fault detection is thorough, but time consumption increases significantly

Engineering Contradiction:
Improvefault detection thoroughnessVSAvoidreview time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts and identifies the critical subset of code locations that are most likely to contain faults based on change history analysis. Instead of reviewing all code, the system isolates high-priority locations (those with recent changes, frequent modifications, or historical fault patterns) and directs review efforts exclusively to these extracted regions, thereby maintaining thorough fault detection while dramatically reducing review time.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial action by performing comprehensive review only on the necessary portion of code (high-priority locations) rather than the entire codebase. The change history analysis identifies approximately 20-30% of code locations that are responsible for the majority of faults, allowing reviewers to apply excessive scrutiny to this partial set while accepting reduced coverage in low-risk areas, thus achieving high reliability with reduced time investment.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If debugging efforts are spread across the entire codebase, then all potential faults are addressed, but resource utilization is inefficient

Engineering Contradiction:
Improvefault coverageVSAvoidresource utilization efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary action by analyzing change history before debugging begins. The system pre-identifies high-risk code locations based on patterns of frequent changes, recent modifications, or historical fault data. This preliminary prioritization allows debugging resources to be pre-positioned at the most critical locations, ensuring that when debugging occurs, resources are immediately focused on the areas most likely to contain faults, thereby improving both fault coverage and resource efficiency.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8448141B2Evaluation of software based on change history
Publication Date: 2013.05.21 MAPLEBEAR INC
  • US8448141B2 patent drawing
  • US8448141B2 patent drawing
  • US8448141B2 patent drawing

AI summary

A method for software processing includes obtaining change information, which records changes that have been performed in respective locations in software code. The change information is processed so as to assign to at least some of the locations respective priorities, which are indicative of respective likelihoods that the locations contain program faults. The at least some of the locations are presented to a user in accordance with the assigned priorities.