Managing hardware and software configuration information of systems being tested
First Claim
Patent Images
1. A method executed in a computer system for automatically tracking platform usage comprising:
- enabling collection of one or more records of platform information for a plurality of programs prior to execution of each of said plurality of programs;
executing each of said plurality of programs;
recording, in response to said enabling, one or more records of platform information for a plurality of program executions corresponding to said plurality of programs;
assessing platform usage using said one or more records of platform information in accordance with at least one predetermined criteria;
determining one or more of said plurality of program executions having code coverage data;
determining a first record of platform information for which code coverage is being assessed; and
performing a set intersection operation between said first record of platform information and said one or more records of platform information to form a resulting set of program executions associated with said set intersection operation, each program execution included in said set of one or more program executions corresponding to one of said one or more records of platform information that is similar to said first record of platform information.
6 Assignments
0 Petitions
Accused Products
Abstract
Techniques for gathering platform information are described. The platform information describes the environment in which a program executes. The platform information includes software component information and system configuration information uniquely identifying a particular instance of an environment. This information is stored collectively in the database over a period of time. This data is then analyzed and available for performing queries for example such as regarding test coverage and may be used to reproduce software faults.
-
Citations
55 Claims
-
1. A method executed in a computer system for automatically tracking platform usage comprising:
-
enabling collection of one or more records of platform information for a plurality of programs prior to execution of each of said plurality of programs;
executing each of said plurality of programs;
recording, in response to said enabling, one or more records of platform information for a plurality of program executions corresponding to said plurality of programs;
assessing platform usage using said one or more records of platform information in accordance with at least one predetermined criteria;
determining one or more of said plurality of program executions having code coverage data;
determining a first record of platform information for which code coverage is being assessed; and
performing a set intersection operation between said first record of platform information and said one or more records of platform information to form a resulting set of program executions associated with said set intersection operation, each program execution included in said set of one or more program executions corresponding to one of said one or more records of platform information that is similar to said first record of platform information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
recording, for each of said plurality of platforms, software component data associated with each software component included in said each platform, said software component data includes information uniquely identifying said each software component.
-
-
8. The method of claim 7, wherein said software component data includes at least one of a module name, a link date, a file version, a file size, and a product version.
-
9. The method of claim 7, wherein said software component information includes data indicating one or more of said plurality of program executions that are associated with a first software component corresponding to said software component information.
-
10. The method of claim 1, further including performing one or more routine calls using a function provided by an operating system to gather a portion of at least one of the records of platform information.
-
11. The method of claim 1, further comprising:
obtaining software component data using an event reporting mechanism that reports information to a monitor process.
-
12. The method of claim 1, further including:
-
linking a program to be tested to include monitoring; and
reporting software component data at runtime to a monitor process by monitoring predetermined calls made from a portion of a program being executed.
-
-
13. The method of claim 12, wherein the calls being monitored are in user supplied code.
-
14. The method of claim 13, wherein the program being executed includes a software component directly invoked from a portion of user supplied code.
-
15. The method of claim 13, wherein the program being executed includes at least one software component that is not directly invoked from a portion of user supplied code.
-
16. The method of claim 1, further including:
forming a set union of said one or more records of platform information to identify each unique platform.
-
17. The method of claim 16, wherein each of said one or more records of platform information includes software component data and system configuration data, and the method further includes:
-
forming an initial union set that includes a first record of platform information;
determining for a second record of platform information if there are differences in system configuration data associated with said first and second records of platform information;
determining for said second record of platform information if there are differences in software component data associated with said first and second records of platform information; and
adding said second record of platform information to said initial union set if any differences are determined in system configuration data or software component data.
-
-
18. The method of claim 17, wherein determining differences in software component data includes:
-
determining differences in named software modules associated with said first and second records of platform information; and
determining differences in attributes of a first named software module included in said first and said second records of platform information.
-
-
19. The method of claim 1, further including:
merging said code coverage data associated with each program execution included in said resulting set of program executions.
-
20. The method of claim 1, wherein said data includes code coverage data associated with said each of said plurality of program executions, and further includes:
-
determining one or more program executions having code coverage data;
determining first criteria;
determining a first portion of said plurality of program executions in accordance with said first criteria; and
merging said code coverage data associated with each program execution included in said first portion.
-
-
21. The method of claim 1, wherein each of said one or more records of platform information includes software component data and system configuration data, and the method further includes:
-
identifying a version of a software module;
determining a portion of said plurality of program executions associated with said version of said software module using said each of said one or more records of platform information; and
identifying first system configuration data associated with a first program execution included in said portion; and
identifying a computer system included in said first system configuration data.
-
-
22. The method of claim 1, further including:
-
determining a set of unique platform information that includes each record of platform information uniquely identifying a platform;
determining a target platform information record; and
determining a record included in said set of unique platform information that most closely matches said target platform information record.
-
-
23. The method of claim 22, further comprising:
identifying a computer system included in said target platform information that matches one of said records included in said set of unique platform information.
-
24. The method of claim 1, wherein said one or more sets of platform information are stored in an object-oriented database in accordance with a database schema.
-
25. A method executed in a computer system for automatically tracking code coverage and platform information comprising:
-
enabling collection of code coverage information and one or more records of platform information for a plurality of programs prior to execution of each of said plurality of programs;
executing each of said plurality of programs;
recording, in response to said enabling collection of code coverage information and one or more records of platform information for each of said plurality of programs, code coverage information and one or more records of platform information for a plurality of program executions corresponding to said plurality of programs;
assessing code coverage results in accordance with a platform criteria using said code coverage information and said one or more records of platform information for each of said plurality of programs;
determining one or more of said plurality of program executions having code coverage data;
determining a first record of platform information for which code coverage is being assessed; and
performing a set intersection operation between said first record of platform information and said one or more records of platform information to form a resulting set of program executions associated with said set intersection operation, each program execution included in said set of one or more program executions corresponding to one of said one or more records of platform information that is similar to said first record of platform information. - View Dependent Claims (26, 27, 28)
merging said code coverage data associated with each program execution included in said resulting set of program executions.
-
-
27. The method of claim 25, wherein said data includes code coverage data associated with said each of said plurality of program executions, and further includes:
-
determining one or more program executions having code coverage data;
determining first criteria;
determining a first portion of said plurality of program executions in accordance with said first criteria; and
merging said code coverage data associated with said each program execution included in said first portion.
-
-
28. The method of claim 25 further including:
-
recording a one or more records of platform information corresponding to a bug report; and
identifying a first of said one or more records of platform information for a plurality of program executions wherein said first record identifies a platform that corresponds to a platform associated with said bug report.
-
-
29. A computer program product for tracking platform usage comprising:
-
machine executable code for enabling collection of one or more records of platform information for a plurality of programs prior to execution of each of said plurality of programs;
machine executable code for executing each of said plurality of programs;
machine executable code for recording, in response to said enabling, one or more records of platform information for a plurality of program executions corresponding to said plurality of programs;
machine executable code for assessing platform usage using said one or more records of platform information in accordance with at least one predetermined criteria;
machine executable code for determining one or more of said plurality of program executions having code coverage data;
machine executable code for determining a first record of platform information for which code coverage is being assessed; and
machine executable code for performing a set intersection operation between said first record of platform information and said one or more records of platform information to form a resulting set of program executions associated with said set intersection operation, each program execution included in said set of one or more program executions corresponding to one of said one or more records of platform information that is similar to said first record of platform information. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51)
machine executable code for recording, for each of said plurality of platforms, software component data associated with each software component included in said each platform, said software component data includes information uniquely identifying said each software component.
-
-
35. The computer program product of claim 34, wherein said software component data includes at least one of a module name, a link date, a file version, and a product version.
-
36. The computer program product of claim 34, wherein said software component information includes data indicating one or more of said plurality of program executions that are associated with a first software component corresponding to said software component information.
-
37. The computer program product of claim 29, further including machine executable code for performing one or more routine calls using a function provided by an operating system to gather a portion of at least one of the records of platform.
-
38. The computer program product of claim 29 further comprising:
machine executable code for obtaining software component data using an event reporting mechanism that reports information to a monitor process.
-
39. The computer program product of claim 29, further including:
-
machine executable code for linking a program to be tested to include monitoring; and
machine executable code for reporting software component data at runtime to a monitor process by monitoring predetermined calls made from a portion of a program being executed.
-
-
40. The computer program product of claim 39, wherein the calls being monitored are in user supplied code.
-
41. The computer program product of claim 40, wherein the program being executed includes a software component directly invoked from a portion of user supplied code.
-
42. The computer program product of claim 40, wherein the program being executed includes at least one software component that is not directly invoked from a portion of user supplied code.
-
43. The computer program product of claim 29, further comprising:
machine executable code for forming a set union of said one or more records of platform information to identify each unique platform.
-
44. The computer program product of claim 43, wherein each of said one or more records of platform information includes software component data and system configuration data, and the computer program product further includes:
-
machine executable code for forming an initial union set that includes a first record of platform information;
machine executable code for determining for a second record of platform information if there are differences in system configuration data associated with said first and second records of platform information;
machine executable code for determining for said second record of platform information if there are differences in software component data associated with said first and second records of platform information; and
machine executable code for adding said second record of platform information to said initial union set if any differences are determined in system configuration data or software component data.
-
-
45. The computer program product of claim 44, wherein said machine executable code for determining differences in software component data includes:
-
machine executable code for determining differences in named software modules associated with said first and second records of platform information; and
machine executable code for determining differences in attributes of a first named software module included in said first and second records of platform information.
-
-
46. The computer program product of claim 29, further including:
machine executable code for merging said code coverage data associated with each program execution included in said resulting set of program executions.
-
47. The computer program product of claim 29, wherein said data includes code coverage data associated with said each of said plurality of program executions, and the computer program product further including:
-
machine executable code for determining one or more program executions having code coverage data;
machine executable code for determining first criteria;
machine executable code for determining a first portion of said plurality of program executions in accordance with said first criteria; and
machine executable code for merging said code coverage data associated with each program execution included in said first portion.
-
-
48. The computer program product of claim 29, wherein each of said one or more records of platform information includes software component data and system configuration data, and the computer program product further includes:
-
machine executable code for identifying a version of a software module;
machine executable code for determining a portion of said plurality of program executions associated with said version of said software module using said each of said one or more records of platform information;
machine executable code for identifying first system configuration data associated with a first program execution included in said portion; and
machine executable code for identifying a computer system included in said first system configuration data.
-
-
49. The computer program product of claim 29, further including:
-
machine executable code for determining a set of unique platform information that includes each record of platform information uniquely identifying a platform;
machine executable code for determining a target platform information record; and
machine executable code for determining a record included in said set of unique platform information that most closely matched said target platform information record.
-
-
50. The computer program product of claim 49, further comprising:
machine executable code for identifying a computer system included in said target platform information that matches one of said records included in said set of unique platform information.
-
51. The computer program product of claim 29, wherein one or more set of platform information are stored in an object-oriented database in accordance with a database schema.
-
52. A computer program product for automatically tracking code coverage and platform information comprising:
-
machine executable code for enabling collection of code coverage information and one or more records of platform information for a plurality of programs prior to execution of each of said plurality of programs;
machine executable code for executing each of said plurality of programs;
machine executable code for recording, in response to said enabling collection of code coverage information and one or more records of platform information for each of said plurality of programs, code coverage information and one or more records of platform information for a plurality of program executions corresponding to said plurality of programs;
machine executable code for assessing code coverage results in accordance with a platform criteria using said code coverage information and said one or more records of platform information for each of said plurality of programs;
machine executable code for determining one or more of said plurality of program executions having code coverage data;
machine executable code for determining a first record of platform information for which code coverage is being assessed; and
machine executable code for performing a set intersection operation between said first record of platform information and said one or more records of platform information to form a resulting set of program executions associated with said set intersection operation, each program execution included in said set of one or more program executions corresponding to one of said one or more records of platform information that is similar to said first record of platform information. - View Dependent Claims (53, 54, 55)
machine executable code for merging said code coverage data associated with each program execution included in said resulting set of program executions.
-
-
54. The computer program product of claim 52, wherein said data includes code coverage data associated with said each of said plurality of program executions, and further includes:
-
machine executable code for determining one or more program executions having code coverage data;
machine executable code for determining first criteria;
machine executable code for determining a first portion of said plurality of program executions in accordance with said first criteria; and
machine executable code for merging said code coverage data associated with said each program execution included in said first portion.
-
-
55. The computer program product of claim 52, further including:
-
machine executable code for recording a one or more records of platform information corresponding to a bug report; and
machine executable code for identifying a first of said one or more records of platform information for a plurality of program executions wherein said first record identifies a platform that corresponds to a platform associated with said bug report.
-
Specification