Mining dependencies for testing and risk management
First Claim
1. A method comprising:
- receiving a system definition and a request for dependency information;
requesting via an application programming interface, a system dependency creation request comprising the received system definition, and a dependency request comprising a target logical abstraction; and
receiving responsive to the application programming interface request, a dependency collection for the target logical abstraction comprising logical abstractions in one or more dependency chains with the target logical abstraction, wherein the dependency collection comprises logical abstractions outside the target logical abstraction'"'"'s subsystem.
2 Assignments
0 Petitions
Accused Products
Abstract
Programs are rarely self-contained in software environments. They depend on other programs or shared subsystems like language run time and operating system libraries for various functionalities. A change in one of the external subsystems may affect the program and one or more other external subsystems.
A method or system collects and propagates information about dependency between logical abstractions within a binary file (e.g., basic block, procedure, etc.), dependency between binary files, and dependency between subsystems (e.g., programs, component libraries, system services, etc,) In one example, such dependency information is exposed to a tool (e.g., test tool, software development tool, etc.) via an application programming interface. A tool mines this information to manage testing, determine risks of change, or manage software development. The tool may also be integrated into the method or system.
93 Citations
36 Claims
-
1. A method comprising:
-
receiving a system definition and a request for dependency information;
requesting via an application programming interface, a system dependency creation request comprising the received system definition, and a dependency request comprising a target logical abstraction; and
receiving responsive to the application programming interface request, a dependency collection for the target logical abstraction comprising logical abstractions in one or more dependency chains with the target logical abstraction, wherein the dependency collection comprises logical abstractions outside the target logical abstraction'"'"'s subsystem. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method comprising:
-
determining dependency information about binary files;
propagating dependency information to determine subsystem dependency information;
propagating the subsystem dependency information to determine system dependency information;
marking changed logical abstractions;
marking unchanged logical abstractions dependent on marked changed logical abstractions in other subsystems;
comparing test coverage to marked changed logical abstractions and to marked unchanged logical abstractions; and
prioritizing tests based on maximum test coverage of marked changed logical abstractions and marked unchanged logical abstractions. - View Dependent Claims (22, 23, 24)
-
-
25. A computer-based service comprising:
-
means for determining binary dependencies for a defined system;
means for propagating binary dependencies to identify binaries dependent on binaries in other subsystems;
means for storing determined and propagated dependencies;
means for marking changes;
means for propagating marked changes using the determined and propagated dependencies; and
means for prioritizing tests based on test coverage of marked changes and propagated marked changes. - View Dependent Claims (26)
-
-
27. A computer-readable medium having executable instructions for performing a method comprising:
-
creating a system definition in response to receiving graphical user interface input;
receiving a dependency information request via graphical user interface input;
requesting via an application programming interface exposed by a dependency framework, a system dependency creation request comprising the system definition, and a target logical abstraction identifiable from the dependency information request; and
receiving responsive to the application programming interface request, a dependency collection for the target logical abstraction comprising logical abstractions in one or more dependency chains with the target logical abstraction;
wherein the dependency collection comprises logical abstractions outside the logical abstraction'"'"'s subsystem. - View Dependent Claims (28)
-
-
29. A computer system comprising:
-
a processor coupled to volatile and nonvolatile memory;
binary files stored in memory;
software stored in memory comprising computer executable instructions for, determining dependency information for binary files, propagating dependency information to determine subsystem dependency information, and propagating subsystem dependency information to determine system dependency information;
marking logical abstractions changed from a previous version;
propagating marked changes according to the dependency information comprising marking unchanged logical abstractions dependent on marked changes in other subsystems;
comparing test coverage to marked changed logical abstractions and to marked unchanged logical abstractions; and
prioritizing tests based on maximum test coverage of marked changed logical abstractions and marked unchanged logical abstractions. - View Dependent Claims (30, 31)
-
-
32. A user interface service comprising:
-
means for accepting a system definition comprising binary files in plural subsystems;
means for accepting an indication of a target logical abstraction; and
means for displaying dependency relationships between the target logical abstraction and a set of logical abstractions in binary files from two or more of the plural subsystems. - View Dependent Claims (33, 34, 35, 36)
-
Specification