Validating applications using object level hierarchy analysis

US9720799B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9720799-B1
Application numberUS-201414328531-A
CountryUS
Kind codeB1
Filing dateJul 10, 2014
Priority dateSep 29, 2012
Publication dateAug 1, 2017
Grant dateAug 1, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Application validation is performed based on object level hierarchy data associated with the application. An application is executed on a physical or emulated host device, and assembly code is generated for the executing application. The assembly code is analyzed to identify objects associated with the application, and to identify relationships between the objects. Based on the object and relationship data, an object level hierarchy is generated for the application. Validation of the application may be performed by comparing an object level hierarchy for a current version of the application to a previously generated hierarchy for a previous version of the application to identify differences between the two hierarchies.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method, comprising: instructing a host device to execute an assembly code generation module, the assembly code generation module operating to generate assembly code for an application executing on the host device, wherein the assembly code comprises assembly code related to a view hierarchy of a user interface for the application that starts with an address in the memory of the host device that is associated with a main window for the application; analyzing the assembly code, comprising: identifying a plurality of objects associated with the application, and determining at least one relationship between at least two of the plurality of objects based on object-related data retrieved from the assembly code, wherein the at least one relationship comprises a parent/child relationship; generating an object level hierarchy for the application, the object level hierarchy including the plurality of objects and the at least one relationship; accessing a previously generated object level hierarchy for the application; and validating the application by comparing the object level hierarchy to the previously generated object level hierarchy, including determining that the previously generated object level hierarchy includes the at least one relationship. 2. The method of claim 1 , wherein the determining the at least one relationship is based at least in part on analyzing address data for the at least two of the plurality of objects, the address data included in the assembly code. 3. The method of claim 2 , wherein the address data includes virtual address data determined by the assembly code generation module during execution of the application on the host device. 4. The method of claim 1 , further comprising: instructing the assembly code generation module to determine a first address in a memory of the host device, wherein the first address is of a top-level object corresponding to an application view of the application; instructing the assembly code generation module to determine the address associated with the main window; and instructing the assembly code generation module to traverse the view hierarchy for the object to generate the assembly code for the application. 5. The method of claim 1 , wherein the plurality of objects comprise a leaf object associated with zero child objects, and wherein determining the at least one relationship between the at least two of the plurality of objects based on object-related data retrieved from the assembly code comprises: identifying the leaf object in the plurality of objects based on the object-related data retrieved from the assembly code; retrieving leaf-object-related data about the leaf object from the assembly code; identifying a parent object of the leaf object based on the retrieved leaf-object-related data; and after identifying the parent object, determining that the parent/child relationship exists between the parent object and the leaf object. 6. A system comprising: a host device, comprising: one or more host-device processors; non-transitory computer-readable host-device memory storing an application and an assembly code generation module that are each executable by the one or more host-device processors; and at least one server device in communication with the host device, comprising: one or more server-device processors; non-transitory server-device memory storing instructions that, when executed by the one or more server-device processors, cause the server device to perform server-device functions comprising: instructing the host device to execute the assembly code generation module to generate assembly code for the application, wherein the assembly code comprises assembly code related to a view hierarchy of a user interface for the application that starts with an address in the memory of the host device that is associated with a main window for the application; analyzing the assembly code, comprising: identifying a plurality of objects associated with the application, and determining at least one relationship between at least two of the plurality of objects based on object-related data retrieved from the assembly code, wherein the at least one relationship comprises a parent/child relationship; generating an object level hierarchy for the application, the object level hierarchy including the plurality of objects; accessing a previously generated object level hierarchy for the application; and validating the application by comparing the object level hierarchy to the previously generated object level hierarchy, including determining that the previously generated object level hierarchy includes the at least one relationship. 7. The system of claim 6 , wherein: the object level hierarchy comprises a first object level hierarchy for a first version of the application; and wherein validating of the application includes comparing the first object level hierarchy to a second object level hierarchy previously generated for a second version of the application. 8. The system of claim 7 , wherein: the plurality of objects includes a first plurality of objects included in the first object level hierarchy; wherein analyzing of the assembly code further includes determining at least one first relationship between at least two of the first plurality of objects; the first object level hierarchy is generated to include the at least one first relationship; the second object level hierarchy includes a second plurality of objects and at least one second relationship between at least two of the second plurality of objects; and wherein validating of the application further comprises determining that the at least one second relationship corresponds to the at least one first relationship. 9. The system of claim 8 , wherein the determining of the at least one first relationship is based at least in part on analyzing virtual address data for the at least two of the first plurality of objects, the virtual address data included in the assembly code. 10. The system of claim 7 , wherein: the plurality of objects includes a first plurality of objects included in the first object level hierarchy; wherein analyzing of the assembly code further determines a first set of attributes of at least one of the first plurality of objects; the second object level hierarchy includes a second plurality of objects; and wherein validating of the application further comprises determining that the first set of attributes corresponds to a second set of attributes of at least one of the second plurality of objects corresponding to the at least one of the first plurality of objects. 11. The system of claim 6 , wherein validating the application includes: designating a character set for localizing the application; determining at least one text attribute associated with at least one of the plurality of objects included in the object level hierarchy; and determining that the at least one text attribute includes one or more characters of the character set. 12. The system of claim 6 , wherein the application comprises a user interface application view that comprises a top-level object of a user interface of the application. 13. The system of claim 6 , wherein the server-device functions further comprise: emulating the host device. 14. One or more non-transitory computer-readable media storing instructions which, when executed by at least one processor, instruct the at least one processor to perform actions comprising: instructing a host device to execute an assembly code generation module, the assembly code generation module operati

Assignees

Inventors

Classifications

  • G06F8/30Primary

    Creation or generation of source code · CPC title

  • Analysis of software for verifying properties of programs (testing of software G06F11/3668) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9720799B1 cover?
Application validation is performed based on object level hierarchy data associated with the application. An application is executed on a physical or emulated host device, and assembly code is generated for the executing application. The assembly code is analyzed to identify objects associated with the application, and to identify relationships between the objects. Based on the object and relat…
Who is the assignee on this patent?
Google Inc
What technology area does this patent fall under?
Primary CPC classification G06F8/30. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 01 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).