Automated Risk Analysis Correlating Software Defects to Source Code

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software testing methods struggle to accurately trace defects back to their introduction in the development cycle, making risk evaluation and resource allocation challenging, and limiting feedback on engineering processes and individual performance.

Innovation Solution

An automated risk analysis system that correlates source code files with compiled binaries, maps changes to defects, determines attributes like code coverage and complexity, and establishes temporal relationships to assess the likelihood of factors interfering with software execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If manual defect tracking tools are used to link defects to development cycles, then defect analysis can be performed, but the process is not scalable and requires accurate information that may not be available

Engineering Contradiction:
Improvedefect linking accuracyVSAvoiddefect analysis scalability
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The system automatically performs defect analysis without requiring manual intervention. The defect tracking tool autonomously links defects to development cycles by analyzing code changes and version control data, eliminating the need for manual information gathering and association by defect filers.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces manual mechanical processes (defect filers manually gathering information and linking defects) with an automated computer-based system that uses algorithms to analyze code changes, correlate with version control data, and automatically establish defect-to-development-cycle links.

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

2Ease of manufacture

If the exact code change that introduced a defect is not known, then resource allocation becomes difficult, but manual tracking methods are ineffective at identifying specific code changes

Engineering Contradiction:
Improveresource allocation efficiencyVSAvoidcode change identification
Core Design Contradiction:
Ease of manufactureVSLoss of information

Solution Approach 1:

The system establishes feedback loops that continuously monitor code changes, track them through version control systems, and automatically correlate them with detected defects. This feedback mechanism provides real-time information about which specific code changes introduced defects, enabling effective resource allocation for bug fixes.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent introduces an automated defect analysis system as an intermediary between code changes and defect reports. This intermediary automatically traces code changes through version control systems and correlates them with defects, providing the missing link between specific code modifications and the defects they introduced.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If testing is performed concurrently with development to improve quality early, then quality improvement is achieved, but defects are discovered in later development cycles making tracing difficult

Engineering Contradiction:
Improvesoftware qualityVSAvoiddefect tracing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by continuously tracking and recording all code changes as they occur during development, maintaining a detailed history of modifications with timestamps and version information. This preliminary tracking ensures that when defects are discovered later, the system already has the information needed to quickly trace them back to their source without time loss.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10747652B2Automatic risk analysis of software
Publication Date: 2020.08.18 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10747652B2 patent drawing
  • US10747652B2 patent drawing
  • US10747652B2 patent drawing

AI summary

Techniques are described herein that are capable of performing automatic risk analysis of software. An automatic risk analyzer may determine correlations between binaries of the software and source files of the software, between the source files and functions (i.e., sub-routines) of the software, between changes to source code of the software and defects, new features, and/or feature enhancements in the software, between attributes of the software (e.g., attributes associated with the changes to the source code), etc. at various time instances. The automatic risk analyzer may compare the correlations corresponding to a first time instance and the correlations corresponding to a second time instance to determine any of a variety of temporal relationships regarding underlying factors, including but not limited to new feature(s), feature enhancement(s), defect(s), churn rate, code coverage, code complexity, etc. The automatic risk analyzer may determine risk(s) for the software based on the temporal relationships.