Use case driven stepping component automation framework

US2017109257A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2017109257-A1
Application numberUS-201514884799-A
CountryUS
Kind codeA1
Filing dateOct 16, 2015
Priority dateOct 16, 2015
Publication dateApr 20, 2017
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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; and executing again, with the processor, the currently executing software component by providing as the input the output received from the executed software component. 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 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. 7 . The computer-implemented method of claim 6 , 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. 8 . The computer-implemented method of claim 7 , 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. 9 . 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. 10 . The computer-implemented method of claim 9 , wherein executing the currently executing software component again includes using the persisted login credential without re-executing the user login component. 11 . 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. 12 . The computing apparatus of claim 11 , 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. 13 . The computing apparatus of claim 11 , 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. 14 . The computing apparatus of claim 13 , wherein the action context persists data supplied by multiple executed software components. 15 . The computing apparatus of claim 14 , 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. 16 . The computing apparatus of claim 11 , wherein the output generated by each of the executed software component is persisted to a local file. 17 . A non-transitory computer-readable storage medium facilitating robust software component execution, the computer-readable storage medium including instructions that when executed by a computer, cause the computer 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; identify a plurality of data preparation components within the plurality of software components, wherein each of the plurality of data preparation components, upon execution, returns an output usable as input to one of the plurality of software components, and the output returned by each of the plurality of data preparation components is interchangeable; execute one of the plurality of data preparation components; receive, from the executed data preparation component, an error indication; in response to the error indication, execute one of the un-executed data preparation components; and supply as the input to one of the plurality of software components the output received from executing the un-executed data preparation component. 18 . The non-transitory computer-readable storage medium of claim 17 , wherein one or more of the plurality of data preparation components include different modalities for obtaining the interchangeable output. 19 . The non-transitory computer-readable storage medium of claim 17 , wherein each of the plurality of software components segments functionality into a data preparation part and a non-data preparation part. 20 . The non-transitory computer-readable storage medium of claim 19 , wherein the plurality of software components comprise a test case, and wherein the non-data preparation part comprises a testing logic.

Assignees

Inventors

Classifications

  • for test execution, e.g. scheduling of test suites · CPC title

  • by tracing the execution of the program · CPC title

  • Software maintenance or management · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2017109257A1 cover?
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, …
Who is the assignee on this patent?
Successfactors Inc
What technology area does this patent fall under?
Primary CPC classification G06F11/3688. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Apr 20 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).