Automated Bug Fixing via Neural Network Usage Pattern Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software development methods rely heavily on human testing, which is prone to errors, and automated test suites are limited to specific programming languages, making it difficult to achieve error-free software deployment across different languages.

Innovation Solution

The use of Artificial Neural Networks (ANN), Deep Convolution Neural Networks (Deep CNN) for transfer learning, and Deep Recurrent Neural Networks (Deep RNN) to determine usage patterns, execute test suites, identify bugs, and recommend code patches, enabling automated bug removal across various programming languages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If human testing is used to capture errors in software code, then testing coverage can be comprehensive, but human error reduces reliability

Engineering Contradiction:
Improveerror-free software deploymentVSAvoidmanual testing involvement
Core Design Contradiction:
ReliabilityVSExtent of automation

Solution Approach 1:

The system enables software code to test itself automatically through neural network-generated test suites, eliminating the need for human testers and removing the source of human error while maintaining comprehensive testing coverage

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the mechanical process of human testing with an automated system using Artificial Neural Networks, Deep Recurrent Neural Networks, and Deep Convolution Neural Networks to generate and execute test suites, thereby eliminating human error

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

2Adaptability or versatility

If pre-defined test suites are created for specific programming languages, then testing can be automated, but the test suites are not applicable to software in different programming languages

Engineering Contradiction:
Improvecross-language test suite applicabilityVSAvoidtest suite creation and maintenance
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The neural network-based test suite generation system is language-agnostic and can automatically generate appropriate test suites for any programming language by analyzing the software code's usage patterns, making the testing system universally applicable across different languages without requiring separate pre-defined test suites for each language

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

Solution Approach 2:

The system dynamically adapts test suite parameters based on the programming language and code characteristics by using Deep Recurrent Neural Networks to analyze usage patterns and generate language-specific test cases from a universal testing framework

Inventive Principle:
Principle #35Parameter changes

3Productivity

If automated test suites are used to reduce human element, then testing efficiency improves, but the test suites are limited to specific programming languages

Engineering Contradiction:
Improvetesting efficiencyVSAvoidprogramming language coverage
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent replaces language-specific automated test suites with a universal neural network-based system that automatically adapts to any programming language by learning usage patterns from the code, maintaining high testing efficiency while achieving cross-language versatility

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

Solution Approach 2:

The system introduces neural networks as an intermediary between the test execution engine and the software code, where the neural networks analyze usage patterns and generate language-appropriate test suites, enabling automated testing across different programming languages without requiring language-specific test suite configurations

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10671511B2Automated bug fixing
Publication Date: 2020.06.02 HCL TECH LTD
  • US10671511B2 patent drawing
  • US10671511B2 patent drawing
  • US10671511B2 patent drawing

AI summary

Disclosed is a system for removing bugs present in a software code. A determination module determines a usage pattern of a software code by using an Artificial Neural Network (ANN) technique. A comparison module compares the usage pattern with a set of pre-stored usage patterns of software applications similar to the software code. An execution module executes a set of test suites, on the software code, associated to at least one software application of the software applications, when a usage pattern of the at least one software application is matched with the usage pattern of the software code. An identification module identifies a code snippet comprising the bug. A recommendation module recommends a code patch, corresponding to the code snippet, from a ranked list of code patches determined by a Deep RNN technique. Further, a replacement module replaces the code snippet with the code patch thereby removing the bug.