Automated Bug Fixing via Neural Network Usage Pattern Analysis
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
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
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
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
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
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
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
Data Source
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.


