IP Library Granted Patent US 9,734,042
Granted Patent B1
US 9,734,042 · App. 14/285,542 · Granted Aug 15, 2017

System, method, and computer program for automated parameterized software testing

View Patent ↗
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 9,734,042
App. No.
14/285,542
Granted
Aug 15, 2017
Kind
B1
Abstract

During execution of a computer program, mouse movements, keyboard inputs, and screen snapshots are recorded and stored in one or more files as a test flow. Next, selected recorded keyboard inputs are replaced with user-specified variable parameters to generate a keyboard testing input, each of the parameters corresponding to a plurality of possible keyboard inputs. Execution is triggered of the test flow including the recorded mouse movements, the recorded screenshots, and the keyboard testing input. If the initially displayed screen is not equivalent to the first screen indicted in the test flow as being the start of the test, the test flow is stopped. Otherwise, the test flow is executed utilizing a random selection of the plurality of possible keyboard inputs of the keyboard testing input. At least one output is provided for the execution of the test flow.

Claims (75)

1. A computer program product embodied on a non-transitory computer readable medium, comprising computer code for:

during a flow executed by a computer system involving a plurality of screens being displayed to a user, creating, by the computer system, a test record for the flow, where the test record includes a recording of the flow and further includes:

a first user-taken snapshot of one of the screens displayed to the user;

mouse movements performed by the user over a first subset of the screens displayed to the user,

keyboard inputs performed by the user over a second subset of the screens displayed to the user, and

user-taken snapshots of a third subset of the screens displayed to the user;

storing, by the computer system as an executable test, the test record in one or more files, including storing an indication that the first user-taken snapshot is indicative of a start of the test;

storing, by the computer system in the test record, the indication of the first screen being the start of the test;

receiving, from the user by the computer system through the one or more files, a selection of one or more of the keyboard inputs to be parameterized, the selection for each of the one or more keyboard inputs including a user-specified variable parameter and a user-specified associated range of possible values;

for each of the selected keyboard inputs, replacing, by the computer system in the test record, the keyboard input with the user-specified variable parameter and the user-specified associated range of possible values;

after the replacing, receiving, by the computer system, a command from the user to execute the test;

responsive to the command:

(a) executing the test using the test record by the computer system including:

determining whether a initial screen displayed at the start of the test is equivalent to the first screen indicated in the test record as being the start of the test,

responsive to determining that the initial screen displayed at the start of the test is not equivalent to the first screen indicated in the test record as being the start of the test, stopping execution of the test and returning an error to the user,

responsive to determining that the initial screen displayed at the start of the test is equivalent to the first screen indicated in the test record as being the start of the test, performing the flow using the mouse movements recorded in the test record, the keyboard inputs recorded in the test record, and a random number generator that selects for each of the user-specified variable parameters in the test record a value from the user-specified associated range of possible values;

(b) recording, by the computer system, test snapshots taken by the computer system of the screens displayed during the execution of the test that correspond to the third subset of the screens for which the user-taken snapshots are stored in the test record;

(c) comparing the test snapshots to the user-taken snapshots stored in the test record; and

(d) outputting, by the computer system results of the execution of the test for being accessed by the user including:

an indication of the selected value for each of the user-specified variable parameters, and

an indication that the test has passed when the test snapshots match the user-taken snapshots stored in the test record or an indication that the test has failed when the test snapshots do not match the user-taken snapshots stored in the test record.

2. The computer program product of claim 1 , wherein for one of the user-specified variable parameters the user-specified associated range of possible values includes a numerical range.

3. The computer program product of claim 1 , wherein for one of the user-specified variable parameters the user-specified associated range of possible values includes a range of numbers between a minimum number and a maximum number.

4. The computer program product of claim 1 , wherein for one of the user-specified variable parameters the user-specified associated range of possible values includes a range of string sizes between a minimum number and a maximum number.

5. The computer program product of claim 1 , wherein the user-specified associated range of possible values include a list of possible values.

6. The computer program product of claim 5 , wherein the list of possible values includes at least one of a list of possible numerical values, a list of possible characters, or a list of possible character strings.

7. The computer program product of claim 1 , further comprising:

repeating (a)-(d) for another iteration of the execution of the test where the flow is performed using a different value selected by the random number generator for each of the user-specified variable parameters in the test record.

8. The computer program product of claim 1 , wherein receiving the command to execute the test includes receiving an indication of a duration over which iterations of the test are to be executed.

9. The computer program product of claim 8 , wherein the indication of the duration includes a length of time.

10. The computer program product of claim 8 , wherein the indication of the duration includes a number of iterations of the test that are to be executed.

11. A method, comprising:

during a flow executed by a computer system involving a plurality of screens being displayed to a user, creating, by the computer system, a test record for the flow, where the test record includes a recording of the flow and further includes:

a first user-taken snapshot of one of the screens displayed to the user;

mouse movements performed by the user over a first subset of the screens displayed to the user,

keyboard inputs performed by the user over a second subset of the screens displayed to the user, and

user-taken snapshots of a third subset of the screens displayed to the user;

storing, by the computer system as an executable test, the test record in one or more files, including storing an indication that the first user-taken snapshot is indicative of a start of the test;

storing, by the computer system in the test record, the indication of the first screen being the start of the test;

receiving, from the user by the computer system through the one or more files, a selection of one or more of the keyboard inputs to be parameterized, the selection for each of the one or more keyboard inputs including a user-specified variable parameter and a user-specified associated range of possible values;

for each of the selected keyboard inputs, replacing, by the computer system in the test record, the keyboard input with the user-specified variable parameter and the user-specified associated range of possible values;

after the replacing, receiving, by the computer system, a command from the user to execute the test;

responsive to the command:

(a) executing the test using the test record by the computer system including:

determining whether a initial screen displayed at the start of the test is equivalent to the first screen indicated in the test record as being the start of the test,

responsive determining that the initial screen displayed at the start of the test is not equivalent to the first screen indicated in the test record as being the start of the test, stopping execution of the test and returning an error to the user,

responsive to determining that the initial screen displayed at the start of the test is equivalent to the first screen indicated in the test record as being the start of the test, performing the flow using the mouse movements recorded in the test record, the keyboard inputs recorded in the test record, and a random number generator that selects for each of the user-specified variable parameters in the test record a value from the user-specified associated range of possible values;

(b) recording, by the computer system, test snapshots taken by the computer system of the screens displayed during the execution of the test that correspond to the third subset of the screens for which the user-taken snapshots are stored in the test record;

(c) comparing the test snapshots to the user-taken snapshots stored in the test record; and

(d) outputting, by the computer system results of the execution of the test for being accessed by the user including:

an indication of the selected value for each of the user-specified variable parameters, and

an indication that the test has passed when the test snapshots match the user-taken snapshots stored in the test record or an indication that the test has failed when the test snapshots do not match the user-taken snapshots stored in the test record.

12. A system comprising:

a memory system of a computer system; and

one or more processing cores of the computer system that are coupled to the memory system and that are each configured for:

during a flow executed by the computer system involving a plurality of screens being displayed to a user, creating, by the computer system, a test record for the flow, where the test record includes a recording of the flow and further includes:

a first user-taken snapshot of one of the screens displayed to the user;

mouse movements performed by the user over a first subset of the screens displayed to the user,

keyboard inputs performed by the user over a second subset of the screens displayed to the user, and

user-taken snapshots of a third subset of the screens displayed to the user;

storing, by the computer system as an executable test, the test record in one or more files, including storing an indication that the first user-taken snapshot is indicative of a start of the test;

storing, by the computer system in the test record, the indication of the first screen being the start of the test;

receiving, from the user by the computer system through the one or more files, a selection of one or more of the keyboard inputs to be parameterized, the selection for each of the one or more keyboard inputs including a user-specified variable parameter and a user-specified associated range of possible values;

for each of the selected keyboard inputs, replacing, by the computer system in the test record, the keyboard input with the user-specified variable parameter and the user-specified associated range of possible values;

after the replacing, receiving, by the computer system, a command from the user to execute the test;

responsive to the command:

(a) executing the test using the test record by the computer system including:

determining whether a initial screen displayed at the start of the test is equivalent to the first screen indicated in the test record as being the start of the test,

responsive determining that the initial screen displayed at the start of the test is not equivalent to the first screen indicated in the test record as being the start of the test, stopping execution of the test and returning an error to the user,

responsive to determining that the initial screen displayed at the start of the test is equivalent to the first screen indicated in the test record as being the start of the test, performing the flow using the mouse movements recorded in the test record, the keyboard inputs recorded in the test record, and a random number generator that selects for each of the user-specified variable parameters in the test record a value from the user-specified associated range of possible values;

(b) recording, by the computer system, test snapshots taken by the computer system of the screens displayed during the execution of the test that correspond to the third subset of the screens for which the user-taken snapshots are stored in the test record;

(c) comparing the test snapshots to the user-taken snapshots stored in the test record; and

(d) outputting, by the computer system results of the execution of the test for being accessed by the user including:

an indication of the selected value for each of the user-specified variable parameters, and

an indication that the test has passed when the test snapshots match the user-taken snapshots stored in the test record or an indication that the test has failed when the test snapshots do not match the user-taken snapshots stored in the test record.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 4, 2016
From: AMDOCS SOFTWARE SYSTEMS LIMITED
To: AMDOCS DEVELOPMENT LIMITED; AMDOCS SOFTWARE SYSTEMS LIMITED
Reel/Frame 039695/0965 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2015
From: ELGARAT, SHARON
To: AMDOCS SOFTWARE SYSTEMS LIMITED
Reel/Frame 034961/0091 →