Including Analysis Of Program Execution Patents (Class 717/131)
  • Publication number: 20150007148
    Abstract: An approach is provided to identify test cases based on changed test code. In the approach, test cases are compared to a current test environment that includes an instrumented software program that results in matching test cases. Matching test cases are selected based on a detection of one or more substantive changes to the current test environment. The current test environment is tested using the selected test cases. In an alternate approach, the current environment is tested with multiple test cases and code coverage metrics are retained. After the initial testing, modification of the software program results in comparing of the modification to the retained code coverage metrics whereupon a set of the test cases are selected and used to re-test the software program.
    Type: Application
    Filed: September 16, 2014
    Publication date: January 1, 2015
    Inventors: Timothy S. Bartley, Gavin G. Bray, Elizabeth M. Hughes, Kalvinder P. Singh
  • Publication number: 20150007149
    Abstract: A computer implemented method and system including techniques for developing and executing automated test cases are described herein. In one embodiment, a test case automation tool provides functionality for defining an automated test set and associated test cases within a testing user interface without the use of scripting languages or compiled programming. The definition of each test case may occur within a testing user interface, including displaying and receiving user selection of available methods for testing; displaying user parameter fields and receiving user parameter values in response for testing; abstracting parameter types in the user parameter values; and generating XML-format definitions of the test case. The test case automation tool may then execute the selected methods of the software application using parameters provided in the XML-format definitions, and return testing results of the test case execution.
    Type: Application
    Filed: September 19, 2014
    Publication date: January 1, 2015
    Inventor: Hari Kiran Maddela
  • Patent number: 8924936
    Abstract: A method is implemented in a computer infrastructure having computer executable code tangibly embodied on a computer readable storage medium having programming instructions. The programming instructions are operable to receive a tool error output determined by a code inspection tool and select at least one defect classification mapping profile based on the code inspection tool. Additionally, the programming instructions are operable to map the tool error output to one or more output classifications using the selected at least one defect classification mapping profile and generate at least one report based on the one or more output classifications.
    Type: Grant
    Filed: June 21, 2013
    Date of Patent: December 30, 2014
    Assignee: International Business Machines Corporation
    Inventors: Ian E. Baker, Kathryn A. Bassin, Steven Kagan, Susan E. Skrabanek
  • Patent number: 8924942
    Abstract: Disclosed are various embodiments for identifying user interface improvements from observed user behavior. A use case description is obtained from a developer of an application. Usability metrics are collected that observe interaction of a plurality of users with a user interface of the application. The usability metrics are analyzed in conjunction with the use case description to identify at least one aspect of the user interface for improvement. The aspect includes a page or an actionable element. Information is provided to the developer about the at least one aspect of the user interface identified for improvement.
    Type: Grant
    Filed: February 1, 2012
    Date of Patent: December 30, 2014
    Assignee: Amazon Technologies, Inc.
    Inventors: Jason D. Makuch, Mitchell Kim, Zahur A. Peracha
  • Patent number: 8918764
    Abstract: An approach to selectively recording trace data. The approach sifts through process control and state data to store data that is most relevant to aiding debugging while reducing the overall amount of data that is stored in a trace data set by a trace facility. The approach may involve initiating a trace operation for the software component and, for each resource of the software component, determining whether the resource is currently in use. For those resources in use, the current state of the resource is compared with the previous state of the resource. If the current state has changed, the current state is written to the trace data set. If the resource is not in use, or the current state has not changed, no entry is made to the trace data set. The approach may also analyze users to determine which resources the users are holding and/or waiting for.
    Type: Grant
    Filed: September 21, 2011
    Date of Patent: December 23, 2014
    Assignee: International Business Machines Corporation
    Inventors: Joel L. Masser, David C. Reed, Max D. Smith
  • Patent number: 8918766
    Abstract: Annotation information associated with entities of a computing system can be added to a forest generated from the entities where the structure of the forest reflects relationships between the entities. Annotations associated with a child node can be propagated to all parent nodes of the child node all the way up to one or more root nodes of the annotated forest. Annotations associated with a child node can be propagated to a specified depth or place or at nodes with one or more particular characteristics or annotations. The propagation can be performed on-demand to all or some subset of nodes. The annotated forest can be analyzed to determine nodes to which a set of conditions apply.
    Type: Grant
    Filed: December 12, 2012
    Date of Patent: December 23, 2014
    Assignee: Microsoft Corporation
    Inventors: Christopher G. Kaler, Mayila Babang, Xin Zhang
  • Publication number: 20140372988
    Abstract: The use of a static analysis for configuring a follow-on dynamic analysis for the evaluation of program code is provided. A request may be received for configuring a static analysis session for the evaluation of the program code. The static analysis may be executed and an output may be produced therefrom. The output may be analyzed to determine whether a dynamic analysis is needed for resolving code ambiguities in the program code. If it determined that the dynamic analysis is needed, then the dynamic analysis of the program code is initiated.
    Type: Application
    Filed: June 14, 2013
    Publication date: December 18, 2014
    Inventors: Michael C. Fanning, Frederico A. Mameri, Zachary A. Nation, Christopher Michael Henry Faucon, Alexander Robin Gordon Lucas
  • Publication number: 20140372989
    Abstract: A method to identify a failed code change in a deployment pipeline with a plurality of code changes. The plurality of code changes are tested by running a set of tests on the plurality of code changes until a subset of the plurality of code changes pass the set of tests. Each time the subset fails the set of tests, at least one of the plurality of code changes is removed from the subset. The failed code change is determined based on the subset that passes the set of tests.
    Type: Application
    Filed: January 31, 2012
    Publication date: December 18, 2014
    Inventors: Inbar Shani, Amichai Nilsan, IIan Shufer
  • Patent number: 8910125
    Abstract: Systems, methods and computer program products may provide monitoring of software performance on a computer. A method of monitoring software performance in a computer may include marking at least one of a load request and a store request, the marked request including an effective instruction address and an effective data address, recording the effective instruction and data addresses in a processor core and sending the marked request to a memory subsystem. The method may also include receiving a fabric response for the marked request, recording the fabric response in the core and tying the effective instruction and data addresses and the fabric response together in a sample.
    Type: Grant
    Filed: September 27, 2012
    Date of Patent: December 9, 2014
    Assignee: International Business Machines Corporation
    Inventors: Guy L Guthrie, Randall R Heisch, Venkat R Indukuru, Aaron C Sawdey
  • Patent number: 8910120
    Abstract: Software debugging recommendation technique embodiments are presented that generally entails creating a database of characterized software bug descriptions and providing software debugging recommendations from the database in response to a query. This can employ a two-phased approach in the search for similar software bugs. The first is a search phase that takes a query as input and returns a ranked list of software bug descriptions that match the query. These bug descriptions can contain a mix of structured and unstructured data. The second phase is a related-information phase that uses the output of the first phase to retrieve a set of related recommendations such as for people, source files, functions and binaries.
    Type: Grant
    Filed: March 5, 2010
    Date of Patent: December 9, 2014
    Assignee: Microsoft Corporation
    Inventors: Gopal Ranganatha Srinivasa, Vipindeep Vangala, Balasubramanyan Ashok, Sriram Rajamani, Jacek Czerwonka, Hongkang Liang, Joseph M. Joy
  • Patent number: 8910129
    Abstract: Various example embodiments are directed to systems and methods for managing a plurality of distributed test engines to test at least one device under analysis (DUA). A controller and a control database may be used to manage the plurality of test engines. The control database may have stored thereon a plurality of configuration documents, a plurality of instruction documents, and at least one statistics document. Each configuration document may be associated with at least one of the plurality of test engines and may indicate an execution group of the associated at least one test engine. Each instruction document may be associated with an execution group and may comprise an indication of a testing task to be performed by the execution group associated with the instruction document.
    Type: Grant
    Filed: June 10, 2013
    Date of Patent: December 9, 2014
    Assignee: Spirent Communications, Inc.
    Inventor: Brian Wilkerson
  • Patent number: 8910189
    Abstract: Techniques are disclosed for automatically determining one or more configuration parameters associated with one or more programs executable by a computing system. For example, in a system including at least one application and at least one parameter which affects a behavior of the at least one application, a method for determining a frequency for invoking the at least one application includes the following steps. The method estimates a cost which includes overhead resulting from invoking the at least one application. The method estimates an improvement in the behavior resulting from modifying the at least one parameter based on invoking the at least one application. The method selects the frequency based on the cost and the improvement.
    Type: Grant
    Filed: February 28, 2007
    Date of Patent: December 9, 2014
    Assignee: International Business Machines Corporation
    Inventors: Arun Kwangil Iyengar, Jian Yin
  • Patent number: 8910114
    Abstract: In one embodiment, a method includes identifying a byte swap operation, building a domain including the byte swap operation and other expressions, identifying domain entries and domain exits associated with the domain, determining that a benefit will be obtained by performing a swap of the domain, and responsive to the determination performing the swap of the domain, and storing the swapped domain in a storage medium. Other embodiments are described and claimed.
    Type: Grant
    Filed: June 25, 2009
    Date of Patent: December 9, 2014
    Assignee: Intel Corporation
    Inventor: Mikhail Yurievich Loenko
  • Patent number: 8910128
    Abstract: A computer-implemented method is provided for determining the performance of an application platform. The application platform includes one or more applications associated with a plurality of resources of a computer system. A plurality of synthetic resource consumers are disposed within the application platform. Each synthetic resource consumer is configured to consume at least one of the plurality of resources. A workload profile is provided to the plurality of synthetic resource consumers. The workload profile includes parameters specifying resource consumption by the plurality of synthetic resource consumers. Performance data is acquired based on the impact of the workload profile on the plurality of resources and the plurality of applications.
    Type: Grant
    Filed: June 18, 2012
    Date of Patent: December 9, 2014
    Assignee: salesforce.com, inc.
    Inventor: Gokhan Kutlu
  • Publication number: 20140359584
    Abstract: Systems and methods for application analytics reporting include comparing metrics regarding the use of the application to a usage model for the application. The usage model indicates an expected set of states of the application and transitions between the states during execution of the application. A determined difference between the metrics and the expected states and transitions indicated by the usage model that exceeds a predetermined threshold is provided as analytics data.
    Type: Application
    Filed: June 3, 2013
    Publication date: December 4, 2014
    Inventor: Maurice Kyojin Chu
  • Patent number: 8899343
    Abstract: In an embodiment, a first execution path in a program is determined that has been executed a largest number of times, as compared to at least one other path in the program. Swapped instructions are replaced in the program with breakpoints, wherein the swapped instructions are not on the first execution path. The breakpoints that are not on the first execution path and that are contiguous to each other are replaced in the program with a control word.
    Type: Grant
    Filed: September 12, 2012
    Date of Patent: December 2, 2014
    Assignee: International Business Machines Corporation
    Inventors: Cary L. Bates, Justin K. King, Lee Nee, Michelle A. Schlicht
  • Patent number: 8902307
    Abstract: A machine vision system editing environment is provided for a part program in which a continuous stream of image acquisition operations are performed during a run mode. In one embodiment, a new common syntax and representations are utilized wherein continuous image acquisition operations are recorded in the same way as regular operations, with the running of the part program being performed in two stages. In the first stage, the portion of the part program that is to have the continuous stream of image acquisition is scanned for image acquisition operations, and the most efficient order for acquiring the images is determined, after which the image acquisition process is begun. Then, in the second stage, while the image acquisition process is being performed, the portion of the part program is scanned again, with the image analysis operations then being performed.
    Type: Grant
    Filed: November 15, 2011
    Date of Patent: December 2, 2014
    Assignee: Mitutoyo Corporation
    Inventors: Mark Delaney, Barry Saylor
  • Patent number: 8898636
    Abstract: One embodiment of the present invention provides a system for testing an application running on a virtual machine. Note that this involves the system profiling the application, and determining when the virtual machine is executing code in response to commands from the application and when a device hosting the virtual machine is executing code in response to commands from the virtual machine. During operation, the system executes the application. In response to executing the application, the system receives a code-level log associated with the application from a code-level profiler. Then, using a system-level profiler, the system creates a system-level log associated with the application. Next, the system combines the code-level log and the system-level log to produce a profile of the application. The system then analyzes the profile to determine if a problem exists in the application.
    Type: Grant
    Filed: February 14, 2007
    Date of Patent: November 25, 2014
    Assignee: Oracle America, Inc.
    Inventors: Omer Pomerantz, David Glushko, Ami Navon
  • Patent number: 8898649
    Abstract: Disclosed is a method for analyzing a program that includes database operation statements, including: a first procedure for analyzing control flow of a program and data used in the program, on the basis of the program and the execution result of the program; a second procedure for analyzing the dependency relationship among a plurality of database operation statements, in accordance with the analysis result of the first procedure and the operation details of the plurality of database operation statements; a third procedure for analyzing the propagation path of the incorrect operation in the opposite direction to the control flow, on the basis of the analysis result of the first procedure and the analysis result of the second procedure and taking as a starting point for analysis a predetermined program location which is operating incorrectly; and a fourth procedure for displaying program statements on the propagation path obtained by the third procedure.
    Type: Grant
    Filed: July 23, 2010
    Date of Patent: November 25, 2014
    Assignee: Hitachi, Ltd.
    Inventor: Hiroyasu Nishiyama
  • Patent number: 8898648
    Abstract: A profiling tool identifies a code region with a false sharing potential. A static analysis tool classifies variables and arrays in the identified code region. A mapping detection library correlates memory access instructions in the identified code region with variables and arrays in the identified code region while a processor is running the identified code region. The mapping detection library identifies one or more instructions at risk, in the identified code region, which are subject to an analysis by a false sharing detection library. A false sharing detection library performs a run-time analysis of the one or more instructions at risk while the processor is re-running the identified code region. The false sharing detection library determines, based on the performed run-time analysis, whether two different portions of the cache memory line are accessed by the generated binary code.
    Type: Grant
    Filed: November 30, 2012
    Date of Patent: November 25, 2014
    Assignee: International Business Machines Corporation
    Inventors: I-Hsin Chung, Guojing Cong, Hiroki Murata, Yasushi Negishi, Hui-Fang Wen
  • Patent number: 8898646
    Abstract: An apparatus and method for profiling program code. In particular, an apparatus according to one embodiment comprises a filtering component identifying a first set of instructions for which profiling is desired wherein, in response to detecting that an instruction has been retired, the filtering component determines whether the instruction is within the first set of instructions for which profiling is desired; an event selection component detecting an event in response to the instruction retiring, the event selection component generating event signals in response to a designated event; and a profiling component recording the occurrence or not occurrence of the event within a first storage device responsive to signals from the filtering component and/or the event selection component.
    Type: Grant
    Filed: December 22, 2010
    Date of Patent: November 25, 2014
    Assignee: Intel Corporation
    Inventors: Enric Gibert Codina, Josep M. Codina, Carlos Madriles, Raul Martinez
  • Patent number: 8893093
    Abstract: In application testing and debugging processes, it is necessary to change, rebuild and test code. Thus, to speed the testing and debugging process, the process of retrieving application change lists, rebuilding the application, executing the application and recording application performance metrics may be automated. Additionally, through the use of environment independent metrics 110, application performance can be better evaluated for a wider range of hypothetical hardware configurations than tradition metrics which are highly dependent on the environment in which the test is running.
    Type: Grant
    Filed: May 5, 2011
    Date of Patent: November 18, 2014
    Assignee: salesforce.com, inc.
    Inventors: Fiaz Hossain, James Iry, James Waldrop, Peter Morelli
  • Patent number: 8893092
    Abstract: A program code data structure is described. The data structure contains substantive code of a multithreaded computer program that includes a plurality of communicating instructions that effect communication between threads. The data structure further contains, at each of one or more points in the substantive code, an indication that, when the computer program is being executed, one or more communicating instructions that are in a selected relationship with the indication should be executed by any thread that reaches the point in a particular order relative to execution of one or more other communicating instructions by other threads. The contents of the data structure may be used to determine an order in which to execute communicating instructions.
    Type: Grant
    Filed: March 14, 2011
    Date of Patent: November 18, 2014
    Assignee: F5 Networks, Inc.
    Inventors: Andrew J. Whitaker, Mark H. Qskin, Peter J. Godman
  • Publication number: 20140337822
    Abstract: Methods and systems for analyzing software. For example, one method can include executing a software program including a function by a computer. The method also includes producing an execution sequence for the function when, during execution, the software program executes the function. The method further includes generating an identifier for the execution sequence, wherein the identifier uniquely identifies a path of execution through the function represented by the execution sequence. In addition, the method includes saving the identifier and making the identifier available to at least one user through a user interface.
    Type: Application
    Filed: June 13, 2014
    Publication date: November 13, 2014
    Inventor: Neil Craig Puthuff
  • Patent number: 8886999
    Abstract: A low cost error-based program testing apparatus and method are provided. The testing apparatus according to an embodiment of the present invention generates error programs by adding errors to a test target program, selects a test target error program associated with test data among the error programs using error information obtained through the error addition, receives the test data to execute the test target error program, and tests for presence/absence of the errors. Accordingly, it is possible to reduce a text execution time and testing costs.
    Type: Grant
    Filed: July 16, 2012
    Date of Patent: November 11, 2014
    Assignee: Electronics and Telecommunications Research Institute
    Inventors: Yu-Seung Ma, Seon-Tae Kim
  • Publication number: 20140331212
    Abstract: A system and method for indexing and annotating use cases and generating test scenarios using in-memory processing from the corresponding use case model includes a use case model creator to create/build an in-memory use case model for the use cases created by a user; a predetermined structural format, according to which the steps of the use cases are organized by an editor; an indexer to appropriately index the steps of the use case(s) in the use case model; a generator which facilitates extraction of the indexed steps from the use case and identification of at least one ordered set in which the indexed steps can be assembled; and a test scenario generator to generate a test scenario having the indexed steps arranged according to the ordered set identified by an identifier and being validated by a validator according to pre-determined validation criteria.
    Type: Application
    Filed: July 21, 2014
    Publication date: November 6, 2014
    Inventors: Vijaykumar GAIKWAD, Saurabh Manohar BOBDE, Nupur MITTAL
  • Publication number: 20140331211
    Abstract: The existence of errors and bugs in device drivers and other software operating in kernel space may be difficult to find and eliminate. A system and method for debugging computer programs may involve the use of several different modules. Running in the kernel space is an event monitor. Running in the user space is an event collector, an event player, and a concurrency error detector. This setup allows one to debug device driver software and other software that executes in kernel space using existing user space error detectors.
    Type: Application
    Filed: March 27, 2013
    Publication date: November 6, 2014
    Inventor: Zhiqiang Ma
  • Patent number: 8881293
    Abstract: Methods, systems, and computer-readable storage media for analyzing source code of an application. In some implementations, actions include determining a control flow graph of the application using the source code of the application; determining a plurality of source-sink pairs of exploitable data sources and exploitable data sinks; and determining, for each source-sink pair, whether the source-sink pair is potentially exploitable by: determining one or more conditions under which the invoking procedure passes the exploitable data source to the exploitable data sink of the invoked procedure; and determining, using the control flow graph, whether the conditions are met in at least one possible context of the application, and if so, determining that the source-sink pair is potentially exploitable.
    Type: Grant
    Filed: July 1, 2013
    Date of Patent: November 4, 2014
    Assignee: SAP SE
    Inventors: Achim D. Brucker, Thomas Deuster
  • Patent number: 8881116
    Abstract: A software testing tool may use static verification analysis techniques to locate points (lines/events) in computer code at which an error may be present and points (lines/events) in the computer code that may be the underlying cause of the located error points. In one implementation, a device may perform a static verification analysis of computer code to locate a point in the code that causes an error in the execution of the computer code. The static analysis may be performed by analyzing a first set of possible execution paths of the computer code based on an over-approximation of states. The device may back-propagate, from the located point, through a second set of possible execution paths, where the second set of possible execution paths is obtained based on an under-approximation of the states that were over-approximated. Based on the back-propagation, the device may determine potential causes of the error.
    Type: Grant
    Filed: June 8, 2011
    Date of Patent: November 4, 2014
    Assignee: The MathWorks, Inc.
    Inventor: Gael Mulat
  • Patent number: 8881271
    Abstract: A system and method for employing memory forensic techniques to determine operating system type, memory management configuration, and virtual machine status on a running computer system. The techniques apply advanced techniques in a fashion to make them usable and accessible by Information Technology professionals that may not necessarily be versed in the specifics of memory forensic methodologies and theory.
    Type: Grant
    Filed: August 1, 2008
    Date of Patent: November 4, 2014
    Assignee: Mandiant, LLC
    Inventor: James Robert Butler, II
  • Publication number: 20140325490
    Abstract: A technique to classify source code based on skill level. Features may be extracted from the source code. The source code may be classified based on the extracted features using an expertise model.
    Type: Application
    Filed: April 25, 2013
    Publication date: October 30, 2014
    Applicant: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
    Inventor: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
  • Patent number: 8869119
    Abstract: Affinity-based preferential call technique, in one aspect, may improve performance of distributed applications in a hybrid system having heterogeneous platforms. A segment of code in a program being executed on a processor may be intercepted or trapped in runtime. A platform is selected in the hybrid system for executing said segment of code, the platform determined to run the segment of code with best efficiency among a plurality of platforms in the hybrid system. The segment of code is dynamically executed on the selected platform determined to run the segment of code with best efficiency.
    Type: Grant
    Filed: September 14, 2012
    Date of Patent: October 21, 2014
    Assignee: International Business Machines Corporation
    Inventors: Michael H. Dawson, Parijat Dube, Liana L. Fong, Yuqing Gao, Xavier R. Guerin, Michel H. T. Hack, Megumi Ito, Graeme Johnson, Nai K. Ling, Yanbin Liu, Xiaoqiao Meng, Pramod B. Nagaraja, Seetharami R. Seelam, Wei Tan, Li Zhang
  • Patent number: 8869113
    Abstract: Particular embodiment compile a C++ program having one or more input variables to obtain bytecode of the C++ program; compile a C++ library to obtain bytecode of the C++ library; symbolically execute the bytecode of the C++ program and the bytecode of the C++ library, comprising assign a symbolic input to each input variable of the C++ program; determine one or more execution paths in the C++ program; and for each execution path, construct a symbolic expression that if satisfied, causes the C++ program to proceed down the execution path; and generate one or more test cases for the C++ program by solving the symbolic expressions.
    Type: Grant
    Filed: January 20, 2011
    Date of Patent: October 21, 2014
    Assignee: Fujitsu Limited
    Inventors: Guodong Li, Sreeranga P. Rajan, Indradeep Ghosh
  • Patent number: 8869115
    Abstract: Systems and methods are disclosed for emotive healthcare software usability. A method to improve software usability is described, the method comprising presenting a software application to a user. The method also including logging activities of the user with respect to the software application, wherein the logging includes recording the user using the software application, and wherein the activities include user action with respect to the software application and mouse location on a user interface displaying the software application. The method also including interpreting user emotion from the recording, and tracking an emotive index based on a combination of user emotion and user action with respect to the software application and mouse location. The method also including providing feedback based on the emotive index.
    Type: Grant
    Filed: April 20, 2012
    Date of Patent: October 21, 2014
    Assignee: General Electric Company
    Inventors: Kirk Lars Bruns, Christopher John Olivier, Piali Das, Peter Tu, Xiaoming Liu
  • Patent number: 8869118
    Abstract: System aware performance counters including a processor for performing a method that includes executing a predefined code segment of an application, the executing on a processor. The executing includes executing an instrumented thread included in the predefined code segment. The method includes performing a first action associated with executing the instrumented thread in the predefined code segment, and registering the instrumented thread. A performance counter associated with the predefined code segment is started. Also, the execution of the predefined code segment is paused and the performance counter is paused. The method further includes performing a second action associated with pausing the executing of the predefined code segment. The executing of the predefined code segment is resumed and the performance counter is resumed responsive to resuming the executing of the predefined code segment. Also, a third action associated with resuming executing the predefined code segment is performed.
    Type: Grant
    Filed: June 1, 2011
    Date of Patent: October 21, 2014
    Assignee: International Business Machines Corporation
    Inventors: Raymond M. Higgs, George P. Kuch, Bruce H. Ratcliff
  • Publication number: 20140310694
    Abstract: A computer captures a thread state data of a first program. The computer generates a second program by applying a first program patch to the first program. The computer inserts additional code into a source code of the second program. The computer executes a first performance test using the second program and the inserted additional code. The computer monitors a first status of the second program and the inserted additional code that are under the first performance test. The computer determines a degree that a first deadlock state was prevented during the first performance test. The computer generates a first message based, at least in part, on the determined degree that the first deadlock state was prevented during the first performance test.
    Type: Application
    Filed: April 11, 2013
    Publication date: October 16, 2014
    Applicant: International Business Machines Corporation
    Inventors: David Granshaw, Samuel T. Massey, Daniel J. McGinnes, Martin A. Ross, Richard G. Schofield, Craig H. Stirling
  • Patent number: 8863128
    Abstract: One embodiment of the present invention is a technique for optimizing a task graph that specifies multiple tasks and the dependencies between the specified tasks. When optimizing the task graph, the optimization engine performs multiple iterations of runtime optimization operations on the task graph. At each iteration, an optimized task graph is generated based on a different task aggregation topology. The optimized task graph is then compiled and executed. Runtime statistics related to the execution are collected, and, in subsequent iterations, the task graph is further optimized based on the collected statistics. Once the optimization process is complete, the most optimal task graph topology that was identified during the process is used to generate an optimized task graph for execution.
    Type: Grant
    Filed: September 19, 2011
    Date of Patent: October 14, 2014
    Assignee: AUTODESK, Inc
    Inventor: Francesco Iorio
  • Patent number: 8863096
    Abstract: A symbolic execution task is dynamically divided among multiple computing nodes. Each of the multiple computing nodes explores a different portion of a same symbolic execution tree independently of other computing nodes. Workload status updates are received from the multiple computing nodes. A workload status update includes a length of a job queue of a computing node. A list of the multiple computing nodes ordered based on the computing nodes' job queue lengths is generated. A determination is made regarding whether a first computing node in the list is underloaded. A determination is made regarding whether a last computing node in the list is overloaded. Responsive to the first computing node being underloaded and the last computing node being overloaded, a job transfer request is generated that instructs the last computing node to transfer a set of one or more jobs to the first computing node.
    Type: Grant
    Filed: January 6, 2012
    Date of Patent: October 14, 2014
    Assignee: École Polytechnique Fédérale de Lausanne (EPFL)
    Inventors: Stefan Bucur, Cristian Zamfir, George Candea
  • Patent number: 8856755
    Abstract: A method, apparatus and product for dominant state based coverage metric. The method comprising: determining whether all possible states of a computer program were examined based on an analysis of states that were examined excluding controlled states that are dominated by a self-dominating states; wherein the controlled states are associated with a controlled nodes in a control flow graph of the computer program, wherein the self-dominating states are associated with a self-dominating node in the control flow graph; wherein each execution path in the control flow graph that reaches the controlled nodes also includes the self-dominating node; and wherein there exists an execution path in the control flow graph that both starts and ends at the self-dominating node and further includes at least one controlled node.
    Type: Grant
    Filed: January 27, 2013
    Date of Patent: October 7, 2014
    Assignee: International Business Machines Corporation
    Inventors: Hana Chockler, Dmitry Pidan, Sitvanit Ruah, Karen Yorav
  • Patent number: 8856750
    Abstract: A system and method for evaluating interfaces includes computing a reference script for a task from a reference interface design and translating the reference script into one or more target action scripts based on a target design. The one or more target action scripts on the target design are executed to produce target metrics. The target metrics are compared to determine whether the target action script successfully translates the reference script.
    Type: Grant
    Filed: September 28, 2010
    Date of Patent: October 7, 2014
    Assignee: International Business Machines Corporation
    Inventors: Rachel K. E. Bellamy, Bonnie E. John, Calvin B. Swart, John C. Thomas, Jr., Sharon M. Trewin
  • Patent number: 8850402
    Abstract: Methods, systems, and products for determining performance of a software entity running on a data processing system. The method comprises allowing extended execution of the software entity without monitoring code. The method also comprises intermittently sampling behavior data for the software entity. Intermittently sampling behavior data may be carried out by injecting monitoring code into the software entity to instrument the software entity, collecting behavior data by utilizing the monitoring code, and removing the monitoring code. The method also comprises repeatedly performing iterations of the allowing and sampling steps until collected behavior data is sufficient for diagnosing performance of the software entity. The method may further comprise analyzing the collected behavior data to diagnose performance of the software entity.
    Type: Grant
    Filed: May 22, 2009
    Date of Patent: September 30, 2014
    Assignee: International Business Machines Corporation
    Inventors: Randall Ray Heisch, Bret Ronald Olszewski
  • Patent number: 8850405
    Abstract: A method is disclosed that includes, using a static analysis, analyzing a software program to determine a number of paths from sources accepting information to sinks using that information or a modified version of that information and to determine multiple paths from the number of paths. The determined multiple paths have a same transition from an application portion of the software program to a library portion of the software program and require a same downgrading action to address a vulnerability associated with source-sink pairs in the multiple paths. The analyzing includes determining the multiple paths using a path-sensitive analysis. The method includes, for the determined multiple paths, grouping the determined multiple paths into a single representative indication of the determined multiple paths. The method includes outputting the single representative indication. Computer program products and apparatus are also disclosed.
    Type: Grant
    Filed: February 23, 2011
    Date of Patent: September 30, 2014
    Assignee: International Business Machines Corporation
    Inventors: Stephen Fink, Yinnon A. Haviv, Marco Pistoia, Omer Tripp, Omri Weisman
  • Patent number: 8850407
    Abstract: Disclosed herein are techniques for generating an automated testing script. A request for a performance evaluation of a computer program is accessed. Predetermined rules are used to determine which objects defined in the computer program should be triggered by a script executable by a testing application. The script is generated in accordance with the predetermined rules.
    Type: Grant
    Filed: May 23, 2012
    Date of Patent: September 30, 2014
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Nir Hemed, Anna Leiba, Moshe Eran Kraus, Ofra Pavlovitz
  • Patent number: 8850404
    Abstract: A relational model may be used to encode primitives for each of a plurality of threads in a multi-core processor. The primitives may include tasks and parameters, such as buffers. Implicitly created tasks, like set render target, may be visualized by associating those implicitly created tasks with actual coded tasks.
    Type: Grant
    Filed: December 23, 2009
    Date of Patent: September 30, 2014
    Assignee: Intel Corporation
    Inventors: Christopher J. Cormack, Nathaniel Duca, Mike Burrows, Serhat A. Tekin
  • Patent number: 8850396
    Abstract: A mechanism for performing dynamic software testing on a computer system based on grouping of tests using a test list entity. A method of embodiments of the invention includes causing execution a first group of first tests based on a first set of configuration settings, and executing the first group includes enabling a test execution script to run the first tests according to the first set of configuration settings, and the test execution script is hosted at a test execution platform of a computer system. The method further includes facilitating creation, in runtime, a second group of second tests based on a second set of configuration settings that is different from the first set of configuration settings, and causing execution, in runtime, the second group of second tests, and executing the second group includes enabling the test execution script to run the second tests according to the second set of configuration settings.
    Type: Grant
    Filed: May 27, 2010
    Date of Patent: September 30, 2014
    Assignee: Red Hat Israel, Ltd.
    Inventor: Michael Pasternak
  • Patent number: 8850406
    Abstract: A client device may install an application. The client device may also maintain a shared set of contact information separate from the application. If the client device determines that, within a fixed time period, the application has read from the shared set of contact information, but has not written a threshold extent of data to the shared set of contact information, the client device may indicate to at least one of the user interface of client device and a server device that the application is exhibiting anomalous behavior. If the server device receives such indications from at least a threshold number of client devices, the server device may instruct the client device to disable or uninstall the application.
    Type: Grant
    Filed: April 5, 2012
    Date of Patent: September 30, 2014
    Assignee: Google Inc.
    Inventors: Daniel L. Morrill, Stuart Teng
  • Publication number: 20140289712
    Abstract: Disclosed are typestate and lifetime dependency analysis methods for identifying bugs in C++ programs. Disclosed are an abstract representation (ARC++) that models C++ objects and which makes object creation/destruction, usage, lifetime and pointer operations explicit in the abstract model thereby providing a basis for static analysis on the C++ program. Also disclosed is a lifetime dependency analysis that tracks implied dependency relationships between lifetimes of objects, to capture an effective high-level abstraction for issues involving temporary objects and internal buffers, and subsequently used in the static analysis that supports typestate checking for the C++ program. Finally disclosed a framework that automatically genarates ARC++ representations from C++ programs and performs typestate checking to detect bugs that are specified as typestate automata over ARC++ representations.
    Type: Application
    Filed: March 6, 2014
    Publication date: September 25, 2014
    Applicant: NEC Laboratories America, Inc.
    Inventors: Aarti Gupta, Gogul Balakrishnan, Franjo Ivancic, Xusheng Xiao
  • Patent number: 8843888
    Abstract: One embodiment of the present invention provides a system that characterizes content in object code. During operation, the system receives the source code of a program. The system also receives one or more pieces of object code of the program, or creates one or more pieces of object code from the source code. Next, the system identifies a construct in the object code. The system then determines whether the construct is physically present in the source code. If the construct is not physically present, the system determines whether the construct is logically present in the source code, wherein a construct is logically present if it is required by the programming language. If so, the system sets a construct flag to indicate that the construct is “synthesized.” However, if not, the system sets the construct flag to indicate that the construct is “synthetic.” Finally, the construct flag is made available to a reflective API.
    Type: Grant
    Filed: January 26, 2010
    Date of Patent: September 23, 2014
    Assignee: Oracle America, Inc.
    Inventors: Joseph D. Darcy, Alexander R. Buckley
  • Patent number: 8843894
    Abstract: Affinity-based preferential call technique, in one aspect, may improve performance of distributed applications in a hybrid system having heterogeneous platforms. A segment of code in a program being executed on a processor may be intercepted or trapped in runtime. A platform is selected in the hybrid system for executing said segment of code, the platform determined to run the segment of code with best efficiency among a plurality of platforms in the hybrid system. The segment of code is dynamically executed on the selected platform determined to run the segment of code with best efficiency.
    Type: Grant
    Filed: March 12, 2012
    Date of Patent: September 23, 2014
    Assignee: International Business Machines Corporation
    Inventors: Michael H. Dawson, Parijat Dube, Liana L. Fong, Yuqing Gao, Xavier R. Guerin, Michel H. T. Hack, Megumi Ito, Graeme Johnson, Nai K. Ling, Yanbin Liu, Xiaoqiao Meng, Pramod B. Nagaraja, Seetharami R. Seelam, Wei Tan, Li Zhang
  • Publication number: 20140282432
    Abstract: A method of analyzing an incomplete software program may include receiving high-level software code of a software program that includes multiple functions. The multiple functions may include at least one incomplete function and at least one complete function. The method may further include compiling at least a portion of the high-level software code to generate low-level software code by compiling the complete function and passing over the incomplete function. The method may further include modifying the low-level software code to account for a call to the incomplete function in the low-level software code and symbolically executing the low-level software code.
    Type: Application
    Filed: March 14, 2013
    Publication date: September 18, 2014
    Applicant: FUJITSU LIMITED
    Inventor: Hiroaki YOSHIDA