IP Library Granted Patent US 10,380,011
Granted Patent B2
US 10,380,011 · App. 15/489,262 · Granted Aug 13, 2019

Method, apparatus, and computer-readable medium for performing functional testing of software

Inventors: Nataliya Yashayeva (Morganville, NJ); Michael Pontoriero (Skillman, NJ); Derek Grzyb (Milltown, NJ)
Assignee: Sparta Systems, Inc.
G06F11/3692G06F11/3684G06F11/3688
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 10,380,011
App. No.
15/489,262
Granted
Aug 13, 2019
Kind
B2
Abstract

A system, method and computer-readable medium for performing functional testing of software, including storing a plurality of statements in a plurality of cells, the plurality of cells being organized in a plurality of columns, the plurality of columns including a verification column and each statement in the verification column corresponding to an acceptance criterion for a step of a functional test of the software, storing a plurality of mappings linking the plurality of cells to a plurality of blocks of executable code, each block of executable code configured to execute commands on the software, executing the plurality of blocks of executable code to produce an output by iterating through the plurality of cells and executing each executable block of code linked to each corresponding cell, and transmitting an indication of whether the software meets acceptance criteria in the verification column based at least in part on the output.

Claims (50)

1. A method executed by one or more computing devices for performing functional testing of software, the method comprising:

storing, by at least one of the one or more computing devices, a plurality of statements in a plurality of cells, the plurality of cells being organized in a plurality of columns and a plurality of rows, wherein the plurality of columns include a verification column and wherein each statement in the verification column corresponds to an acceptance criterion for a step of a functional test of the software;

storing, by at least one of the one or more computing devices, a plurality of mappings linking the plurality of cells to a plurality of blocks of executable code, wherein each mapping in the plurality of mappings stores a correspondence between a unique cell in the plurality of cells and a corresponding block of executable code in the plurality of blocks of executable code and wherein each block of executable code is configured to execute one or more commands on the software;

executing, by at least one of the one or more computing devices, the plurality of blocks of executable code to produce an output by iterating through the plurality of cells and executing each executable block of code linked to each corresponding cell without parsing any textual content within the plurality of cells; and

transmitting, by at least one of the one or more computing devices, an indication of whether the software meets one or more acceptance criteria in the verification column based at least in part on the output.

2. The method of claim 1 , wherein the plurality of columns include a prerequisite column and wherein each statement in the prerequisite column corresponds to an initial condition of the software for a step of the functional test of the software.

3. The method of claim 1 , wherein the plurality of columns include an action column and wherein each statement in the action column corresponds to an action performed on the software for a step of the functional test of the software.

4. The method of claim 1 , wherein executing the plurality of blocks of executable code to produce an output by iterating through the plurality of cells and executing each executable block of code linked to each corresponding cell comprises:

performing a row execution step on an initial row in the plurality of rows, wherein the row execution step iteratively executes all executable blocks linked to cells in a row and wherein the row execution step executes all executable blocks in a column order; and

repeating the row execution step for each remaining row in the plurality of rows.

5. The method of claim 1 , wherein a statement in the plurality of statements comprises a parameter, and further comprising:

storing, by at least one of the one or more computing devices, a plurality of parameter values corresponding to the parameter; and

linking, by at least one of the one or more computing devices, a cell corresponding to the statement to the plurality of parameter values.

6. The method of claim 5 , wherein the plurality of cells are grouped into one or more scenarios, wherein the cell corresponds to a scenario in the one or more scenarios, and wherein executing the plurality of blocks of executable code to produce an output by iterating through the plurality of cells and executing each executable block of code linked to each corresponding cell comprises:

executing a plurality of iterations of one or more blocks of executable code linked to one or more cells of the scenario, wherein each iteration in the plurality of iterations corresponds to a parameter value in the plurality of parameter values and wherein each parameter value is passed as an argument to a block of executable code linked to the cell during each iteration.

7. The method of claim 1 , wherein the plurality of mappings are specified by a user through a user interface.

8. An apparatus for performing functional testing of software, the apparatus comprising:

one or more processors; and

one or more memories operatively coupled to at least one of the one or more processors and having instructions stored thereon that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to:

store a plurality of statements in a plurality of cells, the plurality of cells being organized in a plurality of columns and a plurality of rows, wherein the plurality of columns include a verification column and wherein each statement in the verification column corresponds to an acceptance criterion for a step of a functional test of the software;

store a plurality of mappings linking the plurality of cells to a plurality of blocks of executable code, wherein each mapping in the plurality of mappings stores a correspondence between a unique cell in the plurality of cells and a corresponding block of executable code in the plurality of blocks of executable code and wherein each block of executable code is configured to execute one or more commands on the software;

execute the plurality of blocks of executable code to produce an output by iterating through the plurality of cells and executing each executable block of code linked to each corresponding cell without parsing any textual content within the plurality of cells; and

transmit an indication of whether the software meets one or more acceptance criteria in the verification column based at least in part on the output.

9. The apparatus of claim 8 , wherein the plurality of columns include a prerequisite column and wherein each statement in the prerequisite column corresponds to an initial condition of the software for a step of the functional test of the software.

10. The apparatus of claim 8 , wherein the plurality of columns include an action column and wherein each statement in the action column corresponds to an action performed on the software for a step of the functional test of the software.

11. The apparatus of claim 8 , wherein the instructions that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to execute the plurality of blocks of executable code to produce an output by iterating through the plurality of cells and executing each executable block of code linked to each corresponding cell further cause at least one of the one or more processors to:

perform a row execution step on an initial row in the plurality of rows, wherein the row execution step iteratively executes all executable blocks linked to cells in a row and wherein the row execution step executes all executable blocks in a column order; and

repeat the row execution step for each remaining row in the plurality of rows.

12. The apparatus of claim 8 , wherein a statement in the plurality of statements comprises a parameter and wherein at least one of the one or more memories has further instructions stored thereon that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to:

store a plurality of parameter values corresponding to the parameter; and

link a cell corresponding to the statement to the plurality of parameter values.

13. The apparatus of claim 12 , wherein the plurality of cells are grouped into one or more scenarios, wherein the cell corresponds to a scenario in the one or more scenarios, and wherein the instructions that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to execute the plurality of blocks of executable code to produce an output by iterating through the plurality of cells and executing each executable block of code linked to each corresponding cell further cause at least one of the one or more processors to:

execute a plurality of iterations of one or more blocks of executable code linked to one or more cells of the scenario, wherein each iteration in the plurality of iterations corresponds to a parameter value in the plurality of parameter values and wherein each parameter value is passed as an argument to a block of executable code linked to the cell during each iteration.

14. The apparatus of claim 8 , wherein the plurality of mappings are specified by a user through a user interface.

15. At least one non-transitory computer-readable medium storing computer-readable instructions that, when executed by one or more computing devices, cause at least one of the one or more computing devices to:

store a plurality of statements in a plurality of cells, the plurality of cells being organized in a plurality of columns and a plurality of rows, wherein the plurality of columns include a verification column and wherein each statement in the verification column corresponds to an acceptance criterion for a step of a functional test of software;

store a plurality of mappings linking the plurality of cells to a plurality of blocks of executable code, wherein each mapping in the plurality of mappings stores a correspondence between a unique cell in the plurality of cells and a corresponding block of executable code in the plurality of blocks of executable code and wherein each block of executable code is configured to execute one or more commands on the software;

execute the plurality of blocks of executable code to produce an output by iterating through the plurality of cells and executing each executable block of code linked to each corresponding cell without parsing any textual content within the plurality of cells; and

transmit an indication of whether the software meets one or more acceptance criteria in the verification column based at least in part on the output.

16. The at least one non-transitory computer-readable medium of claim 15 , wherein the plurality of columns include a prerequisite column and wherein each statement in the prerequisite column corresponds to an initial condition of the software for a step of the functional test of the software.

17. The at least one non-transitory computer-readable medium of claim 15 , wherein the plurality of columns include an action column and wherein each statement in the action column corresponds to an action performed on the software for a step of the functional test of the software.

18. The at least one non-transitory computer-readable medium of claim 15 , wherein the instructions that, when executed by at least one of the one or more computing devices, cause at least one of the one or more computing devices to execute the plurality of blocks of executable code to produce an output by iterating through the plurality of cells and executing each executable block of code linked to each corresponding cell further cause at least one of the one or more computing devices to:

perform a row execution step on an initial row in the plurality of rows, wherein the row execution step iteratively executes all executable blocks linked to cells in a row and wherein the row execution step executes all executable blocks in a column order; and

repeat the row execution step for each remaining row in the plurality of rows.

19. The at least one non-transitory computer-readable medium of claim 15 , wherein a statement in the plurality of statements comprises a parameter and wherein at least one of the one or more memories has further instructions stored thereon that, when executed by at least one of the one or more computing devices, cause at least one of the one or more computing devices to:

store a plurality of parameter values corresponding to the parameter; and

link a cell corresponding to the statement to the plurality of parameter values.

20. The at least one non-transitory computer-readable medium of claim 19 , wherein the plurality of cells are grouped into one or more scenarios, wherein the cell corresponds to a scenario in the one or more scenarios, and wherein the instructions that, when executed by at least one of the one or more computing devices, cause at least one of the one or more computing devices to execute the plurality of blocks of executable code to produce an output by iterating through the plurality of cells and executing each executable block of code linked to each corresponding cell further cause at least one of the one or more computing devices to:

execute a plurality of iterations of one or more blocks of executable code linked to one or more cells of the scenario, wherein each iteration in the plurality of iterations corresponds to a parameter value in the plurality of parameter values and wherein each parameter value is passed as an argument to a block of executable code linked to the cell during each iteration.

21. The at least one non-transitory computer-readable medium of claim 15 , wherein the plurality of mappings are specified by a user through a user interface.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Feb 12, 2021
From: JEFFRIES FINANCE LLC
To: SPARTA SYSTEMS, INC.
Reel/Frame 055249/0607 →
RELEASE OF SECURITY INTEREST Recorded Feb 12, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: SPARTA SYSTEMS, INC.
Reel/Frame 055249/0874 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2018
From: YASHAYEVA, NATALIYA; GRZYB, DEREK; PONTORIERO, MICHAEL
To: SPARTA SYSTEMS, INC.
Reel/Frame 046460/0922 →
SECURITY INTEREST Recorded Aug 30, 2017
From: SPARTA SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 043449/0224 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Aug 22, 2017
From: SPARTA SYSTEMS, INC.
To: JEFFERIES FINANCE LLC
Reel/Frame 043637/0306 →
Continuity (2)
Provisional Application 62323484 · Apr 15, 2016
Related Publication 20170300405A1 · Oct 19, 2017