System and method for error detection in a critical system
US-2017083392-A1 · Mar 23, 2017 · US
US2017109257A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2017109257-A1 |
| Application number | US-201514884799-A |
| Country | US |
| Kind code | A1 |
| Filing date | Oct 16, 2015 |
| Priority date | Oct 16, 2015 |
| Publication date | Apr 20, 2017 |
| Grant date | — |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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.
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.