Systems, methods, and apparatus for dynamic software generation and testing
Systems, apparatus, methods, and articles of manufacture provide for dynamic software generation and testing of software projects. In one example implementation, a controller device automatically defines a test case; generates an SQL definition for the automatically-defined test case, and executes the test case SQL definition to determine a test case SQL result of the test case SQL definition.
1. A controller device for testing software, comprising:
a processor; and
a computer-readable medium storing instructions that when executed by the processor direct the processor to:
retrieve a stored timing requirement for executing a testing process for a software project;
retrieve a stored release version requirement for executing the testing process for the software project;
based on the timing requirement and the release version requirement, identify and retrieve stored parameters for the testing process for the software project, the stored parameters comprising:
a software release version,
a data model having at least one attribute,
at least one attribute identifier that identifies an attribute of the data model to be impacted by the software project,
a data table identifier that identifiers a data table, and
a plurality of test category statuses, each corresponding to a respective test category;
for each test category status of the plurality of test category statuses that indicates a corresponding test category is required for the testing process, automatically define and store at least one respective test case for the corresponding test category, wherein each test case comprises:
a test case identifier that identifies the respective test case,
the data table identifier,
an indication of the corresponding test category, and
a test case expected result for the test case;
retrieve a first predetermined structured query language (SQL) format for a first automatically-defined test case, based on the test category associated with the first automatically-defined test case;
generate a first test case SQL definition for the first automatically-defined test case based on the first predetermined SQL format, the data table identifier, and the at least one attribute identifier;
execute the first test case SQL definition to determine a first test case SQL result of the first test case SQL definition for the first automatically-defined test case;
compare the first test case SQL result to the test case expected result that is associated with the first automatically-defined test case, to determine a first test case status for the first automatically-defined test case;
based on at least the first test case status, determine an execution status for the testing process; and
transmit to at least one user an indication of the execution status for the testing process.
2. The controller device of claim 1 , wherein automatically defining the first automatically-defined test case comprises updating an existing smoke test case definition.
3. The controller device of claim 1 , wherein automatically defining the first automatically-defined test case comprises creating a new smoke test case definition.
4. The controller device of claim 1 , wherein the first automatically-defined test case defines a primary key check test.
5. The controller device of claim 1 , wherein the first automatically-defined test case defines a change data capture test.
6. The controller device of claim 1 , wherein the first automatically-defined test case defines a duplicate data test.
7. The controller device of claim 1 , wherein the first automatically-defined test case defines a data table completeness test.
8. The controller device of claim 1 ,
wherein the processor is in communication with a software quality management system, and
wherein the instructions when executed by the processor further direct the processor to:
upload the first automatically-defined test case to a test plan section of the software quality management system.
9. The controller device of claim 8 , wherein the instructions when executed by the processor further direct the processor to:
map, in the software quality management system, the first automatically-defined test case to a stored requirement of the testing process.
10. The controller device of claim 1 , wherein the instructions when executed by the processor further direct the processor to:
create, in the software quality management system, a test set comprising the at least one respective test case.
11. The controller device of claim 1 , wherein automatically transmitting to the at least one user the indication of the execution status comprises:
creating a message including the indication of the execution status;
determining at least one developer associated with the testing process; and
transmitting the message to the at least one developer.
12. The controller device of claim 1 , wherein the instructions when executed by the processor further direct the processor to:
transmit the software project to a production environment.
13. A method comprising:
retrieving, by a controller device in communication with a software quality management system, a stored timing requirement for executing a testing process for a software project;
retrieving a stored release version requirement for executing the testing process for the software project;
based on the timing requirement and the release version requirement, identifying and retrieving stored parameters for the testing process for the software project, the stored parameters comprising:
a software release version,
a data model having at least one attribute,
at least one attribute identifier that identifies an attribute of the data model to be impacted by the software project,
a data table identifier that identifiers a data table, and
a plurality of test category statuses, each corresponding to a respective test category;
for each test category status of the plurality of test category statuses that indicates a corresponding test category is required for the testing process, automatically defining and storing at least one respective test case for the corresponding test category, wherein each test case comprises:
a test case identifier that identifies the respective test case,
the data table identifier,
an indication of the corresponding test category, and
a test case expected result for the test case;
retrieving a first predetermined structured query language (SQL) format for a first automatically-defined test case, based on the test category associated with the first automatically-defined test case;
generating a first test case SQL definition for the first automatically-defined test case based on the first predetermined SQL format, the data table identifier, and the at least one attribute identifier;
executing the first test case SQL definition to determine a first test case SQL result of the first test case SQL definition for the first automatically-defined test case;
comparing the first test case SQL result to the test case expected result that is associated with the first automatically-defined test case, to determine a first test case status for the first automatically-defined test case;
based on at least the first test case status, determining an execution status for the testing process; and
transmitting to at least one user an indication of the execution status for the testing process.
14. The method of claim 13 , wherein automatically defining the first automatically-defined test case comprises updating an existing smoke test case definition.
15. The method of claim 13 , wherein automatically defining the first automatically-defined test case comprises creating a new smoke test case definition.
16. The method of claim 13 , wherein the first automatically-defined test case defines one of the following types of tests:
a primary key check test,
a change data capture test,
a duplicate data test,
a data table completeness test,
a straight data move test, and
a derived data move test.
17. The method of claim 13 , further comprising:
uploading the first automatically-defined test case to a test plan section of the software quality management system.
18. The method of claim 17 , further comprising:
mapping, in the software quality management system, the first automatically-defined test case to a stored requirement of the testing process.
19. The method of claim 18 , further comprising:
creating, in the software quality management system, a test set comprising the at least one test case.
20. The method of claim 13 , wherein automatically transmitting to the at least one user the indication of the execution status comprises:
creating a message including the indication of the execution status;
determining at least one developer associated with the testing process; and
transmitting the message to the at least one developer.
21. The method of claim 13 , further comprising:
transmitting the software project to a production environment.