IP Library Patent Application 12121801
Patent Application
App. No. 12/121,801

SOURCE CODE COVERAGE TESTING

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
12/121,801
Abstract

Code coverage testing of an application (e.g., to determine which blocks of source code are executed during run-time testing) in an operating system is accomplished using instrumented code and a performance analysis profiler. That is, non-executable code statements (e.g., T-SQL in-line comments) are injected into the source code at respective executable statements, and metadata is generated for respective source code elements. The performance analysis profiler monitors the testing of the application, generating trace data. Trace data is combined with metadata to generate code coverage reports for the application's source code, which provide, among other things, an indication of the thoroughness of the test (e.g., number of available application instructions that are actually executed during the test).

Claims (62)

1 . A method for source code coverage testing, the method comprising:

parsing source code into elements;

generating instrumented code comprising injecting non-executable statements in one or more locations in the source code, the one or more locations comprising one or more positions that indicate whether an executable statement is executed during run-time;

generating coverage data tables for respective elements identified during the parsing of the source code;

injecting the instrumented code into an operating system; and

conducting coverage testing using a performance analysis profiler.

2 . The method of claim 1 , parsing the source code comprising:

identifying respective executable statements; and

identifying calls made from one procedure to another.

3 . The method of claim 2 , identifying respective executable statements within one or more identified elements, the elements comprising at least one of:

specified, stored procedures;

specified functions; and

specified triggers.

4 . The method of claim 2 , identifying respective executable statements comprising:

identifying those elements that will be instrumented;

identifying a code structure for the elements; and

identifying original source code.

5 . The method of claim 1 , generating instrumented code comprising generating unique keys for respective non-executable statements injected into the source code.

6 . The method of claim 1 , a location in the source code that can identify whether an executable statement is executed comprising a beginning of respective executable statement of respective blocks of the source code.

7 . The method of claim 1 , generating coverage data tables comprising:

generating tables in a database; and

populating the coverage data tables with metadata associated with the parsed elements of the source code.

8 . The method of claim 7 , the metadata comprising:

information concerning one or more instrumented stored procedures, functions; and triggers;

information concerning code structure for one or more procedures, functions; and triggers;

information concerning calls made from one procedure to another; and

information concerning original source code.

9 . The method of claim 1 , the operating system comprising a database management system.

10 . The method of claim 9 , the database management system comprising a SQL server system.

11 . The method of claim 1 , the performance analysis profiler comprising a SQL profiler.

12 . The method of claim 7 , comprising:

obtaining trace data from the code coverage testing;

mapping the trace data to the source code using the metadata; and

generating one or more reports using mapped results.

13 . The method of claim 12 , comprising parsing elements of the trace data results.

14 . The method of claim 12 , comprising importing mapped results to a reporting database.

15 . The method of claim 1 , comprising merging profiler data from a plurality of databases and partitions.

16 . A system for source code coverage testing, the system comprising:

a source code parser configured to identify elements of the source code;

a source code instrumentation component configured to generate instrumented code comprising injecting non-executable code into the source code;

a metadata collector configured to collect metadata from the source code for the identified elements; and

a performance analysis profiler configured to perform code tracing on the instrumented code running in an operating system.

17 . The system of claim 16 , the performance analysis profiler comprising a SQL profiler.

18 . The system of claim 16 , the operating system comprising a database management system.

19 . The system of claim 16 comprising a code coverage report generator configured to:

map code trace data to the source code using the metadata; and

generate one or more code coverage reports for executed code.

20 . A method for source code coverage testing, the method comprising:

parsing source code into elements comprising:

identifying respective executable statements within one or more identified elements, the element comprising at least one of:

specified, stored procedures;

specified, stored functions; and

specified, stored triggers; and

identifying calls made from one procedure to another;

generating instrumented code comprising:

injecting non-executable statements in one or more locations in the source code, the one or more locations comprising a beginning of respective executable statement of respective blocks of the source code; and

generating unique keys for respective non-executable statements injected into the source code;

generating coverage data tables for respective elements identified during the parsing of the source code comprising:

generating tables in a database; and

populating the code coverage tables with metadata associated with the parsed elements of the source code;

injecting instrumented code into an SQL Server system; and

conducting coverage testing using SQL profiler.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034766/0509 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2008
From: CHEN, YUAN; SANCHES, NEWTON; VENKATARAMAIAH, NATARAJ; SANNAKKAYALA, SUDHAKAR
To: MICROSOFT CORPORATION
Reel/Frame 021319/0204 →