Unit Test Generator
First Claim
1. A system for generating and executing a software unit test, the system comprising:
- a rules presentation module including a rule-set that comprises one or more software behavior rules wherein the rules presentation module presents the rule-set in a format readable by a human;
a software unit including at least a portion of a software application, wherein the software unit is to receive input and generate output in accordance with the rule-set;
a test generation module to create one or more test functions based on the rule-set, to create one or more expected outputs, and to create one or more test-sets, wherein each of the test-sets includes a test function and an expected output and wherein the rules presentation module presents the rule-set to the test generation module; and
a test execution module to receive the test-sets from the test generation module, to execute the test function of each of the test-sets, to receive output associated with one of the test-sets, to compare each of the test outputs to the expected output of the associated test-set in order to determine if the software unit correctly implements the rule-set, to create a report including a result of the comparison, and to send test input for each of the test-sets to the software unit.
1 Assignment
0 Petitions
Accused Products
Abstract
In one example, a software unit test generator is configured to receive a design document and a software unit. In this example, the design document includes a table of business objects in an enterprise software system and business rules that define the behavior of the business objects and the software unit includes a business rules engine that controls the behavior of the business objects. Continuing this example, a software unit test generator analyzes a design document to extract some or all of the business rules, and the software unit test generator creates a plurality of test scripts that, when executed, verify that a software unit conforms to the business rules. In some implementations, parameters for the test scripts are determined from the design document. In this example, a software unit test generator executes a collection of test scripts on the software unit and collects the results of the test scripts.
78 Citations
20 Claims
-
1. A system for generating and executing a software unit test, the system comprising:
-
a rules presentation module including a rule-set that comprises one or more software behavior rules wherein the rules presentation module presents the rule-set in a format readable by a human; a software unit including at least a portion of a software application, wherein the software unit is to receive input and generate output in accordance with the rule-set; a test generation module to create one or more test functions based on the rule-set, to create one or more expected outputs, and to create one or more test-sets, wherein each of the test-sets includes a test function and an expected output and wherein the rules presentation module presents the rule-set to the test generation module; and a test execution module to receive the test-sets from the test generation module, to execute the test function of each of the test-sets, to receive output associated with one of the test-sets, to compare each of the test outputs to the expected output of the associated test-set in order to determine if the software unit correctly implements the rule-set, to create a report including a result of the comparison, and to send test input for each of the test-sets to the software unit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer implemented method of performing an automated software test, the method comprising:
-
receiving, at an automated tester, a human readable design document comprising one or more execution rules and a program module to execute in compliance with the execution rules, wherein the program module is a software program or a module of a software program; determining, by the automated tester, the execution rules associated with the design document, and creating one or more verification groups associated with an execution rule and containing a test routine and an expected result, wherein the test routine of each verification group, upon execution, creates a message and sends the message to the program module, wherein the message is defined by the execution rule associated with the verification group containing the test routine, and wherein the expected result of each verification group is defined by the execution rule associated with the verification group containing the expected result; processing, by the automated tester, the verification groups by executing the test routines contained in the verification groups, wherein the processing includes receiving actual results from the program module, each of the actual results being associated with a verification group and further includes assigning to each of the verification groups a verification status determined by comparing the expected results of each of the verification groups to the actual results associated with the verification group; and reporting, by the automated tester, the verification status of each of the verification groups. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A machine readable medium having recorded therein instructions that when executed perform a method for testing a software module, the method comprising:
-
receiving, at a software testing application, a requirement specification formatted for human reading comprising one or more specification rules; receiving, at the software testing application, a software module designed to execute in compliance with the specification rules; determining, by the software testing application, the specification rules from the requirement specification; creating, by the software testing application, one or more test sets associated with an execution rule and containing a verification function associated with a verification group and a specified return, wherein the verification function of each verification group upon execution creates a message and sends the message to the software module, wherein the message is at least partially defined by the execution rule associated with the verification group containing the verification function, and wherein the specified return of each verification group is defined by the execution rule associated with the verification group containing the specified return; processing, by the software testing application, the test sets by executing the verification functions contained in the test sets, wherein the processing includes receiving actual results from the software module, wherein each of the actual results is associated with a verification group, and wherein the processing includes assigning to each of the test sets a verification status determined by comparing the specified returns of each of the test sets to the actual results associated with the verification group; and reporting, by the software testing application, the verification status of each of the test sets. - View Dependent Claims (18, 19, 20)
-
Specification