Testing software enhancements in database applications
First Claim
1. A method of testing enhancements for application code operating in a database system, the method comprising the steps of:
- receiving, by the database system, from a replay and capture system, a series of tests referencing the enhancements, each of the tests referencing a feature and a distinct value;
receiving, by the database system, two or more log lines from the replay and capture system, each of the log lines describing a user request captured during a prior network session between a user system and the database system;
running, by the database system, a first log line through the application code without the enhancements to produce baseline structured query language (SQL); and
incrementally testing the application code by, for each of the series of tests;
running, by the database system, the first log line with the enhancement enabled in the application code with the feature and value referenced by the test to produce test SQL;
comparing, by the database system, the test SQL with the baseline SQL;
when the comparison indicates a no change between the baseline SQL and the test SQL, not executing the test SQL; and
when the comparison indicates a change between the baseline SQL and the test SQL, executing, by the database system, the test SQL and capturing performance metrics for the executed test SQL; and
running a next one of the series of tests with the enhancement enabled with a corresponding feature and value of the next test; and
repeating the foregoing testing steps until the series of tests is completed.
2 Assignments
0 Petitions
Accused Products
Abstract
A test system registers a series of tests that reference different software enhancements added to an application within a database system. The test system enables individual software enhancements referenced by the tests and then runs log lines through the application to produce test structured query language (SQL). The database system compares the test SQL with baseline SQL produced by the application without enabling the software enhancements. The database system executes the test SQL and captures performance metrics when the test SQL is different from the baseline SQL. Comparing SQL results avoids processing and capturing performance metrics for log lines not affected by the software enhancements. Incrementally running the log lines with one software enhancement enabled at a time also allows the test system to isolate the performance impact of individual software enhancements on the database system.
-
Citations
21 Claims
-
1. A method of testing enhancements for application code operating in a database system, the method comprising the steps of:
-
receiving, by the database system, from a replay and capture system, a series of tests referencing the enhancements, each of the tests referencing a feature and a distinct value; receiving, by the database system, two or more log lines from the replay and capture system, each of the log lines describing a user request captured during a prior network session between a user system and the database system; running, by the database system, a first log line through the application code without the enhancements to produce baseline structured query language (SQL); and incrementally testing the application code by, for each of the series of tests; running, by the database system, the first log line with the enhancement enabled in the application code with the feature and value referenced by the test to produce test SQL; comparing, by the database system, the test SQL with the baseline SQL; when the comparison indicates a no change between the baseline SQL and the test SQL, not executing the test SQL; and when the comparison indicates a change between the baseline SQL and the test SQL, executing, by the database system, the test SQL and capturing performance metrics for the executed test SQL; and running a next one of the series of tests with the enhancement enabled with a corresponding feature and value of the next test; and repeating the foregoing testing steps until the series of tests is completed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computing device for testing code features in an application operated in a database system, comprising:
-
a processor;
storage memory; and
one or more stored sequences of instructions which, when executed by the processor, cause the processor to carry out the steps of;storing a series of tests referencing the code features in the application, each of the tests referencing a feature and a distinct value; storing a set of log lines, each of the log lines describing a user request captured during a prior network session between a user system and the database system; running, by the database system, the log lines without the features enabled in the application to produce baseline SQL; submitting the tests and the log lines to the database system for incrementally testing the code features referenced by the tests, by, for each of the series of tests; running, by the database system, one log line of the log lines with the enhancement enabled in the application with the feature and value referenced by the test to produce test SQL; comparing, by the database system, the test SQL with the respective baseline SQL generated for the one log line; when the comparison indicates a no change between the baseline SQL and the test SQL, not executing the test SQL; and when the comparison indicates a change between the baseline SQL and the test SQL, executing, by the database system, the test SQL and capturing performance metrics for the executed test SQL; and running a next one of the series of tests, with the enhancement enabled with a corresponding feature and value of the next test; and repeating the foregoing testing steps until the series of tests is completed; receiving performance metrics from the database system associated with the different code features; and displaying the performance metrics for the different code features on a user interface. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A non-transitory computer-readable medium that stores a computer program for a database system, the computer program comprising a set of instructions operable, when executed by a computer processor, to:
-
receive a series of tests referencing software features added to an application in the database system, each of the tests referencing a feature and a distinct value; receive a series of log lines, each of the log lines describing a user request captured during a prior network session between a user system and the database system; run the log lines through the application without enabling the software features to produce baseline structured query language (SQL); incrementally testing the application by, for each of the series of tests; run the log lines with individual software features enabled with the feature and value referenced by the tests to produce test SQL; compare the test SQL with the baseline SQL; when the comparison indicates a no change between the baseline SQL and the test SQL, not executing the test SQL; when the comparison indicates a change between the baseline SQL and the test SQL, execute the test SQL with the database system and capture performance metrics for the executed test SQL; running a next one of the series of tests, with the enhancement enabled with a corresponding feature and value of the next test; and repeating the foregoing testing steps until the series of tests is completed. - View Dependent Claims (20, 21)
-
Specification