Binary Neural Networks for Test Dependency Identification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for identifying test dependencies in software codebases are manual, time-consuming, and error-prone, leading to inefficiencies in bug fixing and code development cycles, as they require developers to sift through numerous tests to find the root cause of a bug.

Innovation Solution

The use of binary neural networks to automatically predict and identify test dependencies by training the networks on test results, allowing for quicker identification of dependent tests and reducing the scope of code that needs to be examined, thereby streamlining the debugging process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If manual methods are used to identify test dependencies, then developers can find root causes of bugs, but the process is time-consuming and error-prone

Engineering Contradiction:
Improveaccuracy of test dependency identificationVSAvoidtime spent on bug fixing
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent replaces manual mechanical analysis of test dependencies with an automated neural network system. The neural network processes test results and code information to automatically identify dependencies, eliminating the need for developers to manually sift through tests and reducing both time consumption and human error.

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

Solution Approach 2:

The patent introduces a neural network as an intermediary between test execution and dependency analysis. This intermediary automatically processes test results and code information to identify dependencies, serving as a bridge that eliminates the need for direct manual analysis by developers.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If developers examine numerous tests to find root causes, then complete bug analysis is achieved, but developer resources are wasted

Engineering Contradiction:
Improvecompleteness of bug analysisVSAvoiddeveloper productivity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts and identifies only the relevant subset of tests that are actually dependent on each other using the neural network. By automatically extracting the minimal necessary set of dependent tests, the system allows developers to focus only on critical tests rather than examining numerous unrelated tests, thus maintaining analysis completeness while improving productivity.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent segments the large set of all tests into smaller meaningful groups based on actual dependency relationships identified by the neural network. This segmentation allows developers to work with focused subsets of tests rather than the entire test suite, maintaining thorough analysis while reducing overall examination time and resource consumption.

Inventive Principle:
Principle #1Segmentation

3Productivity

If automated neural networks are used to predict test dependencies, then identification speed increases, but system complexity increases

Engineering Contradiction:
Improvedependency identification speedVSAvoidcomplexity of analysis system
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent employs a universal neural network model that can handle multiple aspects of test dependency analysis simultaneously. The same neural network processes different types of inputs (test results, code information) and produces comprehensive dependency predictions, reducing the need for multiple specialized systems and thereby managing complexity while maintaining high productivity.

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

Data Source

PatentUS20230131105A1Identifying Test Dependencies Using Binary Neural Networks
Publication Date: 2023.04.27 EMC IP HLDG CO LLC
  • US20230131105A1 patent drawing
  • US20230131105A1 patent drawing
  • US20230131105A1 patent drawing

AI summary

A system can generate a neural network, wherein an output of the neural network indicates whether a first test of a computer code will pass given an input of respective results of whether respective tests, of a group of tests of the computer code, pass, and wherein respective weights of the neural network indicate a correlation from a group of correlations comprising a positive correlation between a respective output of a respective node of the neural network and the output of the neural network, a negative correlation between the respective output and the output, and no correlation between the respective output and the output. The system can apply sets of inputs to the neural network, respective inputs of the sets of inputs identifying whether the respective tests pass or fail. The system can, in response to determining that a first set of inputs of the sets of inputs to the neural network results in a failure output, storing an indication that the first test is dependent on a subset of the respective tests indicated as failing by the first set of inputs.