Patents by Inventor Mukul R. Prasad

Mukul R. Prasad has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20190278572
    Abstract: According to an aspect of an embodiment, a method may include generating an abstract code graph (ACG). The method may include obtaining an abstract syntax tree (AST). The AST may include a first AST node that may represent a first construct at a first level of abstraction and a second AST node that may represent a second construct. The method may further include generating an ACG, based on the AST. The generating of ACG may include generating a first ACG node based on the first AST node and a second ACG node based on the second AST node. The generating of ACG may also include generating, based on the first ACG node, a third ACG node that represents the first construct at a second level of abstraction. The third ACG node may be connected between the first ACG node and the second ACG node based on the AST.
    Type: Application
    Filed: March 8, 2018
    Publication date: September 12, 2019
    Applicant: FUJITSU LIMITED
    Inventors: Hiroaki YOSHIDA, Mukul R. PRASAD
  • Publication number: 20190265970
    Abstract: The disclosed method may include accessing features including feature information of one or more candidate target projects and of a subject project, in which the candidate target projects and the subject project are software programs. The method may include determining a similarity score between the feature information of each of the candidate target projects and the feature information of the subject project, in which a similarity score is determined for each feature of each of the candidate target projects. The method may include aggregating the similarity scores of the feature information of each feature in the candidate target projects to create an aggregate similarity score for each of the candidate target projects and generate a set of similar target projects. The method may include modifying the subject project by implementing recommended code, based on the similar target projects, in the subject project to repair a defect.
    Type: Application
    Filed: February 28, 2018
    Publication date: August 29, 2019
    Applicant: FUJITSU LIMITED
    Inventors: Ripon K. SAHA, Mukul R. PRASAD
  • Patent number: 10360027
    Abstract: A method of modeling behavior of a mobile application includes determining an action associated with the mobile application based on source code of the mobile application. The method further includes dynamically crawling through the mobile application based on the action and generating a graphical user interface (GUI) behavioral model based on dynamically crawling through the mobile application.
    Type: Grant
    Filed: August 16, 2012
    Date of Patent: July 23, 2019
    Assignee: FUJITSU LIMITED
    Inventors: Mukul R. Prasad, Wei Yang
  • Patent number: 10355985
    Abstract: A method of network property verification may include obtaining one or more properties of a network to verify, and obtaining first forwarding rules for a first network device in the network, where the first forwarding rules are indicative of how the first network device handles an incoming packet with a variable-length packet header. The method may also include obtaining second forwarding rules for a second network device in the network, the second forwarding rules indicative of how the second network device handles the incoming packet, and generating a pushdown automata based on the first and the second forwarding rules. The method may additionally include applying a saturation-based algorithm to the pushdown automata to verify the one or more properties of the network.
    Type: Grant
    Filed: January 20, 2017
    Date of Patent: July 16, 2019
    Assignee: FUJITSU LIMITED
    Inventors: Alex Horn, Mukul R. Prasad
  • Publication number: 20190163619
    Abstract: According to an aspect of an embodiment, a method may identifying a fault location of a fault in a tested software program using a test suite and obtaining a repair candidate for the fault. In addition, the method may include obtaining a repair code pattern of the repair candidate and determining a number of occurrences of the repair code pattern in existing code of multiple existing software programs. Moreover, the method may include prioritizing the repair candidate as a repair of the tested software program based on the number of occurrences of the repair code pattern. The method may also include performing repair operations on the tested software program according to the prioritizing of the repair candidate.
    Type: Application
    Filed: November 24, 2017
    Publication date: May 30, 2019
    Applicant: FUJITSU LIMITED
    Inventors: Hiroaki YOSHIDA, Mukul R. PRASAD
  • Patent number: 10296447
    Abstract: A method may include identifying a fault location in a software program. The method may further include generating an instrumentation function with respect to the fault location. In addition, the method may include replacing a statement at the fault location with the instrumentation function and performing a first test execution of the software program with the implemented instrumentation function. The method may also include selecting the fault location for implementation of a repair candidate based on output of the instrumentation function in response to the first test execution and implementing the repair candidate at the fault location as a patch based on the selection. Moreover, the method may include performing a second test execution of the software program with respect to the patch, evaluating the patch based on results of the second test execution, and accepting or rejecting the patch based on the evaluation.
    Type: Grant
    Filed: December 9, 2016
    Date of Patent: May 21, 2019
    Assignee: FUJITSU LIMITED
    Inventors: Hiroaki Yoshida, Mukul R. Prasad, Benjamin Mehne
  • Publication number: 20190132216
    Abstract: A method may include obtaining packet handling rules from at least one firewall in a network and at least one routing table in the network, and translating the packet handling rules to canonical data structures based on priority of rules at a given routing table or a given firewall. Each canonical data structure may represent a subset of packets affected by one or more corresponding packet handling rules such that each packet handling rule is covered by at least one canonical data structure. The method may also include generating a graph representation of the firewalls and the nodes corresponding to the routing tables in the network. The method may additionally include labeling vertices and edges in the graph representation based on the packet handling rules. The method may also include, using the graph representation, verifying one or more network properties to identify any network issues.
    Type: Application
    Filed: November 2, 2017
    Publication date: May 2, 2019
    Applicant: FUJITSU LIMITED
    Inventors: Alexander HORN, Mukul R. PRASAD, Naoki OGUCHI, Paparao PALACHARLA
  • Patent number: 10268572
    Abstract: In some examples, a method to interactively repair a software program using one or more automatically generated tests with human-provided test oracles may include identifying a fault location in a software program, generating a potential repair at the fault location based on a repair candidate, automatically generating a first test to test the potential repair, and generating a first query for a first test oracle based on the first test. The method may also include obtaining a response to the first query from a human, generating a first human-provided test oracle based on the first query and the obtained response to the first query, augmenting a test suite to include the first automatically generated test with the first human-provided test oracle, and testing the potential repair using the augmented test suite including the first automatically generated test with the first human-provided test oracle.
    Type: Grant
    Filed: August 3, 2017
    Date of Patent: April 23, 2019
    Assignee: FUJITSU LIMITED
    Inventors: Mukul R. Prasad, Hiroaki Yoshida, Ripon K. Saha, Indradeep Ghosh
  • Publication number: 20190116112
    Abstract: A method of network property verification, the method including obtaining a property of a network to be verified and obtaining forwarding rules for multiple network devices in the network, the forwarding rules indicative of how the network devices handle incoming packets and at least one of the network devices including forwarding rules to forward an address-based packet and forward a variable-length header packet. The method may also include generating a graph representation of the forwarding rules, where each rule of the forwarding rules is independently applicable to address-based packets or variable-length header packets. The method may additionally include assigning transition operations between the network devices in the graph representation based on the forwarding rules, assigning, in the graph representation, an atom to links between network devices that forward variable-length header packets, and verifying the property of the network using the graph representation to identify any network issue.
    Type: Application
    Filed: October 13, 2017
    Publication date: April 18, 2019
    Applicant: FUJITSU LIMITED
    Inventors: Alexander HORN, Mukul R. PRASAD
  • Publication number: 20190042398
    Abstract: In some examples, a method to interactively repair a software program using one or more automatically generated tests with human-provided test oracles may include identifying a fault location in a software program, generating a potential repair at the fault location based on a repair candidate, automatically generating a first test to test the potential repair, and generating a first query for a first test oracle based on the first test. The method may also include obtaining a response to the first query from a human, generating a first human-provided test oracle based on the first query and the obtained response to the first query, augmenting a test suite to include the first automatically generated test with the first human-provided test oracle, and testing the potential repair using the augmented test suite including the first automatically generated test with the first human-provided test oracle.
    Type: Application
    Filed: August 3, 2017
    Publication date: February 7, 2019
    Applicant: FUJITSU LIMITED
    Inventors: Mukul R. PRASAD, Hiroaki YOSHIDA, Ripon K. SAHA, Indradeep GHOSH
  • Publication number: 20190018753
    Abstract: According to an aspect of an embodiment, a method may include executing multiple tests with respect to code under test of a software program to perform multiple test executions. The method may further include identifying one or more passing tests and one or more failing tests of the test executions. In addition, the method may include determining an aggregated score for each statement based on two or more of: the passing tests and the failing tests; a semantic similarity between one or more statement tokens included in the respective statement and one or more report tokens included in an error report; and an amount of time that has passed from when the respective statement received a change. Moreover, the method may include identifying a particular statement of the plurality of statements as a fault location in the code under test based on the aggregated scores of the plurality of statements.
    Type: Application
    Filed: July 12, 2017
    Publication date: January 17, 2019
    Applicant: FUJITSU LIMITED
    Inventors: Ripon K. SAHA, Mukul R. PRASAD
  • Patent number: 10180897
    Abstract: According to an aspect of an embodiment, a method may include identifying a fault location of a fault in a software program using a test suite. The method may further include implementing, in the software program, a repair candidate for the fault. In addition, the method may include augmenting the test suite with a plurality of test oracles that are based on observed behavior of the software program and that correspond to the fault location. Moreover, the method may include running the augmented test suite with respect to the software program with the implemented repair candidate. The method may also include prioritizing the repair candidate as a repair of the software program based on a failure rate of the plurality of test oracles with respect to running the augmented test suite.
    Type: Grant
    Filed: September 26, 2016
    Date of Patent: January 15, 2019
    Assignee: FUJITSU LIMITED
    Inventors: Hiroaki Yoshida, Mukul R. Prasad
  • Patent number: 10176086
    Abstract: According to an aspect of an embodiment of the present disclosure, a method may include selecting, based on a behavioral model of an event-driven software program, an execution target of the event-driven software program. The execution target may be selected from multiple execution targets of the event-driven software program and may include an event of the event-driven software program. Additionally, the behavioral model may be generated using passive learning that is based on behavior of the event-driven software program during symbolic execution of the event-driven software program. The method may further include symbolically executing the execution target based on the selection. The event-driven software program may transition from a first state to a second state in response to execution of the execution target. In addition, the method may include updating the behavioral model of the event-driven software program based on symbolically executing the execution target.
    Type: Grant
    Filed: October 3, 2016
    Date of Patent: January 8, 2019
    Assignee: FUJITSU LIMITED
    Inventors: Martin J. Rogalla, Mukul R. Prasad
  • Patent number: 10152406
    Abstract: According to an aspect of an embodiment, one or more systems or methods may be configured to locate a fault in a software program using a test suite. The systems or methods may be further configured to modify, using a repair template, the software program in response to locating the fault. In addition, the systems or methods may be configured to determine whether the modification satisfies an anti-pattern condition. The anti-pattern condition may indicate whether the modification is improper. The systems or methods may also be configured to disallow the modification in response to the modification satisfying the anti-pattern condition or perform further testing on the software program, as modified, in response to the modification not satisfying the anti-pattern condition.
    Type: Grant
    Filed: August 25, 2015
    Date of Patent: December 11, 2018
    Assignee: FUJISTU LIMITED
    Inventors: Hiroaki Yoshida, Shin Hwei Tan, Mukul R. Prasad
  • Patent number: 10133657
    Abstract: According to an aspect of an embodiment, a method may include identifying a fault at a fault location in a software program using a test suite. The method may also include determining multiple textual similarity scores by determining a textual similarity score with respect to each of multiple repair candidates for the fault. In addition, the method may include sorting the repair candidates based on the textual similarity scores. The method may also include selecting a particular repair candidate from the repair candidates based on the sorting. Moreover, the method may include implementing the particular repair candidate at the fault location based on the selection of the particular repair candidate.
    Type: Grant
    Filed: February 23, 2016
    Date of Patent: November 20, 2018
    Assignee: FUJITSU LIMITED
    Inventors: Hiroaki Yoshida, Ripon Kumar Saha, Mukul R. Prasad
  • Patent number: 10078502
    Abstract: A method may include receiving a model of a graphical user interface (GUI) based application that includes a plurality of paths. The method may further include determining one or more paths of the plurality of paths that each include a pattern that satisfies a rule-pattern. The rule-pattern may be based on potential inaccuracies in the model as indicated by the pattern. The method may additionally include verifying whether the model is consistent with the GUI-based application. The verification may be based on a prioritization of a determination of whether the one or more paths are consistent with the GUI-based application. The prioritization of the one or more paths may be based on the one or more paths each including the pattern.
    Type: Grant
    Filed: June 19, 2014
    Date of Patent: September 18, 2018
    Assignee: FUJITSU LIMITED
    Inventors: Mukul R. Prasad, Frolin S. Ocariza, Jr.
  • Publication number: 20180239687
    Abstract: A method may include obtaining a plurality of synthesized method invocations using a plurality of objects and a plurality of methods of a software program. The method may also include determining a prioritization of the plurality of synthesized method invocations based on one or more of: relationships between one or more characteristics of each of the plurality of synthesized method invocations and a fault location; and relationships between the one or more characteristics and an error report that corresponds to the fault location. The method may also include selecting a synthesized method invocation from the plurality of synthesized method invocations for repair operations with respect to the fault location based on a corresponding prioritization of the selected synthesized method invocation. In addition, the method may include performing repair operations with respect to the fault location and the selected synthesized method invocation.
    Type: Application
    Filed: February 17, 2017
    Publication date: August 23, 2018
    Applicant: FUJITSU LIMITED
    Inventors: Ripon K. SAHA, Mukul R. PRASAD, Hiroaki YOSHIDA
  • Patent number: 10057166
    Abstract: A network verification method may include identifying a data plane including one or more forwarding tables for each switch of a plurality of switches in the data plane. The method may also include generating a forwarding behavior representation of the data plane to represent Boolean combinations of forwarding rules of the one or more forwarding tables of the data plane. Further, the method may include comparing the forwarding behavior representation of the data plane to one or more network properties to detect one or more errors in the data plane.
    Type: Grant
    Filed: September 13, 2016
    Date of Patent: August 21, 2018
    Assignee: FUJITSU LIMITED
    Inventors: Alexander Horn, Mukul R. Prasad, Ali Kheradmand
  • Publication number: 20180212870
    Abstract: A method of network property verification may include obtaining one or more properties of a network to verify, and obtaining first forwarding rules for a first network device in the network, where the first forwarding rules are indicative of how the first network device handles an incoming packet with a variable-length packet header. The method may also include obtaining second forwarding rules for a second network device in the network, the second forwarding rules indicative of how the second network device handles the incoming packet, and generating a pushdown automata based on the first and the second forwarding rules. The method may additionally include applying a saturation-based algorithm to the pushdown automata to verify the one or more properties of the network.
    Type: Application
    Filed: January 20, 2017
    Publication date: July 26, 2018
    Applicant: FUJITSU LIMITED
    Inventors: Alex HORN, Mukul R. PRASAD
  • Publication number: 20180165182
    Abstract: A method may include identifying a fault location in a software program. The method may further include generating an instrumentation function with respect to the fault location. In addition, the method may include replacing a statement at the fault location with the instrumentation function and performing a first test execution of the software program with the implemented instrumentation function. The method may also include selecting the fault location for implementation of a repair candidate based on output of the instrumentation function in response to the first test execution and implementing the repair candidate at the fault location as a patch based on the selection. Moreover, the method may include performing a second test execution of the software program with respect to the patch, evaluating the patch based on results of the second test execution, and accepting or rejecting the patch based on the evaluation.
    Type: Application
    Filed: December 9, 2016
    Publication date: June 14, 2018
    Applicant: FUJITSU LIMITED
    Inventors: Hiroaki YOSHIDA, Mukul R. PRASAD, Benjamin MEHNE