IP Library Granted Patent US 9,892,019
Granted Patent B2
US 9,892,019 · App. 14/884,799 · Granted Feb 13, 2018

Use case driven stepping component automation framework

Inventor: Yuan Li (Shanghai, CN)
Assignee: SUCCESSFACTORS INC.
G06F11/3636G06F8/70
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,892,019
App. No.
14/884,799
Granted
Feb 13, 2018
Kind
B2
Abstract

A framework for improving robustness in the execution of software workflows is described herein. One such workflow is a testing scenario, where multiple testing modules are to be executed sequentially, with some of the modules receiving as input the output of other modules. Many types of modules are contemplated, such as Application Program Interface (API) modules, User Interface (UI) modules, Database (DB) modules, and the like. Each of these modules may invoke, respond to, and/or extract data from various subjects of the testing scenario, among other operations. One aspect of the invention wraps each of these modules in a software component, such that disparate module types can be operated on with a common interface. In one embodiment, the common interface enables a test executor to retry and/or debug the software components in novel ways.

Claims (35)

1. A computer-implemented method of facilitating robust software component execution, comprising:

receiving a plurality of software components, wherein at least one of the plurality of software components is programmed to receive as an input one or more outputs generated by one or more of the plurality of software components;

executing, with a processor, the plurality of software components;

receiving, from an executed software component, an output generated by the executed software component, wherein a currently executing software component also receives from the executed software component the output generated by the executed software component;

receiving an error indication from the currently executing software component;

executing again, with the processor, the currently executing software component by providing as the input the output received from the executed software component;

wherein one or more of the plurality of software components comprise data preparation components, wherein a data preparation component retrieves data for consumption by a subsequently executed software component,

wherein a plurality of data preparation components define different implementation techniques for retrieving a same type of data consumed by the subsequently executed software component,

the method further comprising:

receiving a data preparation rule that defines a calling order in which the plurality of data preparation components are to be executed; and

executing each of the plurality of data preparation components according to the calling order until one of the data preparation components successfully returns the same type of data.

2. The computer-implemented method of claim 1 , further comprising:

serializing the output generated by the executed software component;

persisting the serialized output to a non-transitory computer readable medium;

retrieving the serialized output from the non-transitory computer readable medium in response to receiving the error indication; and

de-serializing the retrieved serialized output.

3. The computer-implemented method of claim 1 , wherein the executing comprises executing the plurality of software components in series, such that the output of the executed software component is received as the input to the next software component in the series.

4. The computer-implemented method of claim 1 , wherein the plurality of software components comprise a test case, and wherein each of the software components comprises a plurality of atomic use cases.

5. The computer-implemented method of claim 1 , further comprising serializing the output of each executed software component to the non-transitory computer readable medium as each software component is executed.

6. The computer-implemented method of claim 1 , wherein one of the plurality of software components includes a user login component, and wherein an output of the user login component includes a login credential.

7. The computer-implemented method of claim 6 , wherein executing the currently executing software component again includes using the persisted login credential without re-executing the user login component.

8. A computing apparatus facilitating robust software component execution, the computing apparatus comprising:

a processor; and

a memory storing instructions that, when executed by the processor, configures the apparatus to

receive a plurality of software components, wherein at least one of the plurality of software components is programmed to receive as an input one or more outputs generated by one or more of the plurality of software components,

execute the plurality of software components,

receive, from an executed software component, an output generated by the executed software component,

receive an error indication from a currently executing software component,

execute again, using a debugger, the currently executing software component, and

make available, within the debugger, the output generated by the executed software component

wherein the memory stores further instructions that, when executed by the processor, further configures the apparatus to provide, to one or more of the plurality of software components, an action context, wherein the action context is enabled to receive and store data from the one or more of the plurality of software components, wherein the output generated by the executed software component comprises data received by the action context,

wherein the action context persists data supplied by multiple executed software components,

wherein each of the plurality of software components is assigned a serial number, and wherein the data supplied to the action context by one of the plurality of software components is associated in the action context with a corresponding serial number.

9. The computing apparatus of claim 8 , wherein executing comprises executing the plurality of software components based on a dependency ordering, such that a dependent software component is executed after the software component it is dependent on.

10. The computing apparatus of claim 8 , wherein the output generated by each of the executed software component is persisted to a local file.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2015
From: LI, YUAN
To: SUCCESSFACTORS, INC.
Reel/Frame 036806/0199 →
Continuity (1)
Related Publication 20170109257A1 · Apr 20, 2017