DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
This Office Action is in response to filing date of 10/9/2024.
Claims 1-20 are pending and have been considered below.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The filing of a terminal disclaimer by itself is not a complete reply to a nonstatutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13.
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/apply/applying-online/eterminal-disclaimer.
Claims 1-20 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1-20 of U.S. Patent No.12117928. Although the claims at issue are not identical, they are not patentably distinct from each other. The tables below provide examples of mappings of independent claims.
US Patent No. 12117928
Co-Pending Application No. 18911103
1. A computer-readable storage medium, excluding transitory signals and carrying instructions, which, when executed by at least one data processor of a system, cause the system to:
1. A non-transitory, computer-readable storage medium comprising instructions recorded thereon, wherein the instructions when executed by at least one data processor of a system, cause the system to:
instantiate a session for a test orchestration engine to perform a scope of testing that is equivalent of multiple tests for an application program on a user device;
instantiate a session for a test orchestration engine to perform a unitary test designed to evaluate a set of features of an application program on a user device;
identify multiple actions performable by the application program on the user device, wherein the multiple actions are performable in respective journeys of separate and distinct test protocols configured to validate a set of features of the application program, and wherein each journey includes a sequence of one or more actions;
identify multiple actions performable by the application program on the user device, wherein the multiple actions are performable in respective journeys of separate and distinct test protocols configured to validate the set of features of the application program;
determine, based on a machine learning (ML) model, a set of actions of the multiple actions of at least two journeys that are non-mutually exclusive and are performable sequentially to validate the set of features of the application program, wherein the ML model is generated based on a knowledgebase of test protocols and verifications for multiple features of one or more application programs, and wherein the ML model is trained based on multiple journeys on the one or more application programs that perform analogous actions on multiple user devices;
determine a set of actions of the multiple actions of at least two journeys that are non-mutually exclusive and are performable sequentially to validate the set of features of the application program;
create a unitary test protocol including a directed sequence for the set of actions to validate the set of features for the separate and distinct test protocols with a single journey of the unitary test protocol; and
create a unitary test protocol including a directed sequence for the set of actions to validate the set of features for the separate and distinct test protocols with a single journey of the unitary test protocol; and
cause execution of the unitary test protocol to generate a result indicative of performance of the application program based on performance of the single journey including the directed sequence of the set of actions.
cause execution of the unitary test protocol to generate a result indicative of performance of the application program based on performance of the single journey including the directed sequence of the set of actions.
US Patent No. 12117928
Co-Pending Application No. 18911103
12. A test engine comprising: at least one hardware processor; and at least one non-transitory memory storing instructions, which, when executed by the at least one hardware processor, cause the test engine to:
12. A test engine comprising: at least one hardware processor; and at least one non-transitory memory storing instructions, which, when executed by the at least one hardware processor, cause the test engine to:
identify multiple actions of multiple journeys for testing an application program, wherein each journey includes a sequence of one or more actions;
identify multiple actions of multiple journeys for testing an application program,
select a set of actions of at least two journeys the multiple journeys to validate the application program, wherein the set of actions precludes mutually exclusive actions of the multiple journeys;
select a set of actions of at least two journeys of the multiple journeys that are non-mutually exclusive and are performable sequentially to validate the application program,
create a unitary test that defines a single journey including the set of actions arranged in a preset order configured to validate a feature of the application program based on performance of the single journey; and
create a unitary test that defines a single journey including the set of actions arranged in a preset order configured to validate a feature of the application program based on performance of the single journey; and
cause execution of the unitary test to generate a result indicative of whether the application program passed the unitary test.
cause execution of the unitary test to generate a result indicative of whether the application program passed the unitary test.
US Patent No. 12117928
Co-Pending Application No. 18911103
18. A computer-readable storage medium, excluding transitory signals and carrying instructions, which, when executed by at least one data processor of a system, cause the system to:
18. A non-transitory, computer-readable storage medium comprising instructions recorded thereon, wherein the instructions when executed by at least one data processor of a system, cause the system to:
receive a set of test protocols including two or more of a unit test, an integration test, a system test, or an end-to-end test for an application program, wherein each test protocol includes a journey of multiple journeys for separately testing an application program, and wherein each journey includes a sequence of one or more actions;
receive a set of test protocols including two or more of a unit test, an integration test, a system test, or an end-to-end test for an application program, wherein each test protocol includes a journey of multiple journeys for separately testing an application program, and
select a set of actions from at least two journeys the multiple journeys to validate an application program, wherein the set of actions precludes mutually exclusive actions of the multiple journeys;
select a set of actions from at least two journeys that are non-mutually exclusive and are performable sequentially to validate an application program,
generate a unitary test that orders the set of actions to validate a set of features of the application program with a single journey; and
generate a unitary test that orders the set of actions to validate a set of features of the application program with a single journey; and
cause execution of the unitary test to generate a result indicative of whether the application program passes the set of test protocols based on performance of the single journey.
cause execution of the unitary test to generate a result indicative of whether the application program passes the set of test protocols based on performance of the single journey.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
Regarding claim 1:
Under Prong 1 Step 2A, the claim recites “instantiate a session for a test orchestration engine to perform a unitary test designed to evaluate a set of features of an application program on a user device” “identify multiple actions performable by the application program on the user device, wherein the multiple actions are performable in respective journeys of separate and distinct test protocols configured to validate the set of features of the application program” “determine a set of actions of the multiple actions of at least two journeys that are non-mutually exclusive and are performable sequentially to validate the set of features of the application program” and “create a unitary test protocol including a directed sequence for the set of actions to validate the set of features for the separate and distinct test protocols with a single journey of the unitary test protocol.” as drafted, recite functions that, under its broadest reasonable interpretation, covers functions that could reasonably be performed in the mind, including with the aid of pen and paper, but for the recitation of generic computer components. That is, the limitation as drafted, recite functions that, under its broadest reasonable interpretation, covers functions that could reasonably be performed in the mind, including with the aid of pen and paper. Thus, these limitations recite and fall within the “Mental Processes” grouping of abstract ideas.
Under Prong 2, Step 2A, the judicial exception is not integrated into a practical application. The claim recites the following additional elements (1) “a non-transitory computer-readable storage medium” and (2) “at least one data processor of a system” are merely instructions to implement the abstract idea on a computer, or merely uses a computer, with instructions, as a tool to perform the abstract idea according to MPEP 2106.05(f), thus, not indicative of an integration into a practical application. The claim also recites additional element (3) “cause execution of the unitary test protocol to generate a result indicative of performance of the application program based on performance of the single journey including the directed sequence of the set of actions” which fails to meaningfully limit the claim because it does not require any particular application of the judicial exception and is, at best, the equivalent of merely adding the words “apply it” (or an equivalent) to the judicial exception. See MPEP § 2106.05(f). The additional element recites only the idea executing a test without details on how this is accomplished. The claim omits any details as to how the “execution” of the unitary test protocol solves a technical problem, and instead of recites only the idea of a solution or outcome. Therefore, the additional element attempts to cover any solution to the identified problem of testing with no restriction on how the testing is accomplished and no description of the mechanism for accomplishing the outcome and does not integrate the judicial exception into a practical application because this type of recitation is equivalent to the words “apply it.”
Under Step 2B, the claims do not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional elements (1) and (2) are the mere use of generic computer to implement the abstract idea, as discussed above, which does not amount to significantly more, thus, not an inventive concept. And the additional element (3) does not require any particular application of the judicial exception and is, at best, the equivalent of merely adding the words “apply it” (or an equivalent) to the judicial exception.
Regarding claim 12:
Under Prong 1 Step 2A, the claim recites “identify multiple actions of multiple journeys for testing an application program”, “select a set of actions of at least two journeys of the multiple journeys that are non-mutually exclusive and are performable sequentially to validate the application program”, and “create a unitary test that defines a single journey including the set of actions arranged in a preset order configured to validate a feature of the application program based on performance of the single journey” as drafted, recite functions that, under its broadest reasonable interpretation, covers functions that could reasonably be performed in the mind, including with the aid of pen and paper, but for the recitation of generic computer components. That is, the limitation as drafted, recite functions that, under its broadest reasonable interpretation, covers functions that could reasonably be performed in the mind, including with the aid of pen and paper. Thus, these limitations recite and fall within the “Mental Processes” grouping of abstract ideas.
Under Prong 2, Step 2A, the judicial exception is not integrated into a practical application. The claim recites the following additional elements (1) “a test engine”, (2) “at least one hardware processor”, and (3) “at least one non-transitory memory storing instructions” are merely instructions to implement the abstract idea on a computer, or merely uses a computer, with instructions, as a tool to perform the abstract idea according to MPEP 2106.05(f), thus, not indicative of an integration into a practical application. The claim also recites additional element (4) “cause execution of the unitary test to generate a result indicative of whether the application program passed the unitary test” which fails to meaningfully limit the claim because it does not require any particular application of the judicial exception and is, at best, the equivalent of merely adding the words “apply it” (or an equivalent) to the judicial exception. See MPEP § 2106.05(f). The additional element recites only the idea executing a test without details on how this is accomplished. The claim omits any details as to how the “execution” of the unitary test protocol solves a technical problem, and instead of recites only the idea of a solution or outcome. Therefore, the additional element attempts to cover any solution to the identified problem of testing with no restriction on how the testing is accomplished and no description of the mechanism for accomplishing the outcome and does not integrate the judicial exception into a practical application because this type of recitation is equivalent to the words “apply it.”
Under Step 2B, the claims do not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional elements (1), (2), and (3) are the mere use of generic computer to implement the abstract idea, as discussed above, which does not amount to significantly more, thus, not an inventive concept. And the additional element (4) does not require any particular application of the judicial exception and is, at best, the equivalent of merely adding the words “apply it” (or an equivalent) to the judicial exception.
Regarding claim 18:
Under Prong 1 Step 2A, the claim recites “select a set of actions from at least two journeys that are non-mutually exclusive and are performable sequentially to validate an application program”, and “generate a unitary test that orders the set of actions to validate a set of features of the application program with a single journey” as drafted, recite functions that, under its broadest reasonable interpretation, covers functions that could reasonably be performed in the mind, including with the aid of pen and paper, but for the recitation of generic computer components. That is, the limitation as drafted, recite functions that, under its broadest reasonable interpretation, covers functions that could reasonably be performed in the mind, including with the aid of pen and paper. Thus, these limitations recite and fall within the “Mental Processes” grouping of abstract ideas.
Under Prong 2, Step 2A, the judicial exception is not integrated into a practical application. The claim recites the following additional elements (1) “a non-transitory computer-readable storage medium” and (2) “at least one data processor of a system” are merely instructions to implement the abstract idea on a computer, or merely uses a computer, with instructions, as a tool to perform the abstract idea according to MPEP 2106.05(f), thus, not indicative of an integration into a practical application. The claim recites additional element (3) “receive a set of test protocols including two or more of a unit test, an integration test, a system test, or an end-to-end test for an application program” which is merely insignificant extra solution activity of gathering data, storing data and outputting the results of the abstract idea which does not integrate the judicial exception into a practical application. Accordingly, the additional elements do not integrate the recited judicial exception into a practical application, and the claim is therefore directed to the judicial exception. See MPEP 2106.05(g). The claim further recites additional element of (4) “cause execution of the unitary test protocol to generate a result indicative of performance of the application program based on performance of the single journey including the directed sequence of the set of actions” which fails to meaningfully limit the claim because it does not require any particular application of the judicial exception and is, at best, the equivalent of merely adding the words “apply it” (or an equivalent) to the judicial exception. See MPEP § 2106.05(f). The additional element recites only the idea of executing a test without details on how this is accomplished. The claim omits any details as to how the “execution” of the unitary test protocol solves a technical problem, and instead of recites only the idea of a solution or outcome. Therefore, the additional element attempts to cover any solution to the identified problem of testing with no restriction on how the testing is accomplished and no description of the mechanism for accomplishing the outcome and does not integrate the judicial exception into a practical application because this type of recitation is equivalent to the words “apply it.”
Under Step 2B, the claims do not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional elements (1) and (2) are the mere use of generic computer to implement the abstract idea, as discussed above, which does not amount to significantly more, thus, not an inventive concept. The additional element (3) is merely insignificant extra solution activity of gathering data, storing data and outputting the results of the abstract idea and the courts have identified gathering data, storing data, and outputting the result is well-understood, routine and conventional activity (Berkheimer v. HP, Inc., 881 F.3d 1360, 1368, 125 USPQ2d 1649, 1654 (Fed. Cir. 2018)), thus, cannot amount to an inventive concept. Accordingly, the claim does not appear to be patent eligible under 35 USC 101. See MPEP 2106.05(d). The additional element (4) does not require any particular application of the judicial exception and is, at best, the equivalent of merely adding the words “apply it” (or an equivalent) to the judicial exception.
Regarding claims 2, 5, 7, 9, 13, and 20 recite additional elements that merely insignificant extra solution activity of gathering data, storing data and outputting the results of the abstract idea which does not integrate the judicial exception into a practical application. Accordingly, the additional elements do not integrate the recited judicial exception into a practical application, and the claim is therefore directed to the judicial exception. See MPEP 2106.05(g).
Regarding claims 3, 8, 11, 16, 17, and 19 recites limitations that cover functions that could reasonably be performed in the mind, including with the aid of pen and paper, but for the recitation of generic computer components. That is, the limitation as drafted, recite functions that, under its broadest reasonable interpretation, covers functions that could reasonably be performed in the mind, including with the aid of pen and paper. Thus, these limitations recite and fall within the “Mental Processes” grouping of abstract ideas.
Regarding claims 3, 4, 14, and 15 recite limitations that fail to meaningfully limit the claim because it does not require any particular application of the judicial exception and is, at best, the equivalent of merely adding the words “apply it” (or an equivalent) to the judicial exception. See MPEP § 2106.05(f).
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claims 1-3, 5, 6, 8-12, and 14-17 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by WO 2020086757 A1 to Seaton.
Per claim 1, Seaton teaches a non-transitory, computer-readable storage medium comprising instructions recorded thereon, wherein the instructions when executed by at least one data processor of a system, cause the system to:
instantiate a session for a test orchestration engine to perform a unitary test designed to evaluate a set of features of an application program on a user device (see at last paragraph [0027] “…The method begins when an electronic processor executes a recorder (for example, the electronic processor executes the recorder) and records user actions as a user interacts with a first software application...”);
identify multiple actions performable by the application program on the user device (see at least paragraph [0028] “Using the recorded user actions received from one or more user devices…”), wherein the multiple actions are performable in respective journeys of separate and distinct test protocols configured to validate the set of features of the application program (see at least paragraph [0030] “…when executing the clustering software 225 divides the PGM into clusters (i.e. journeys) of similar sequences of user actions…”);
determine a set of actions of the multiple actions of at least two journeys that are non-mutually exclusive and are performable sequentially to validate the set of features of the application program (see at least paragraph [0032] “…the electronic processor trains a machine learning system using the cluster. A machine learning system is considered to be well trained or be associated with a high confidence value when, given a partial sequence of user actions included in the cluster, the machine learning system outputs the same next actions…”);
create a unitary test protocol including a directed sequence for the set of actions to validate the set of features for the separate and distinct test protocols with a single journey of the unitary test protocol (see at least paragraph [0032] “…determines a test case (i.e. unitary test) from a cluster of sequences of user actions…a test case is a set of computer executable instructions that, when executed by an electronic processor, cause the electronic processor to interact with a software application in a manner similar to a user. A test case can therefore be thought of as a sequence of user actions…”); and
cause execution of the unitary test protocol to generate a result indicative of performance of the application program based on performance of the single journey including the directed sequence of the set of actions (see at least paragraph [0034] “Once the test case is generated, the electronic processor may execute the test case to determine whether the first software application is functioning properly…”).
Per claim 2, Seaton further teaches:
wherein the system is further caused to: output, on a display device of the system, an indication of the result, wherein the indication of the result includes a status for each of the set of features (see at least paragraph [0035] “…identifying issues with a software application as a part of test case generation. In the method 800, issues are identified by the outputs machine learning system generated for different software applications…”).
Per claim 3, Seaton further teaches:
wherein the system is further caused to: generate an additional unitary test protocol that defines an additional unitary sequence for performing another group of actions to validate another set of features of the separate and distinct test protocols and an additional test protocol (see at least paragraph [0032] “…In some embodiments, for each cluster generated at step 415, the electronic processor trains a machine learning system using the cluster…”); and
cause execution of the additional unitary test protocol to generate an additional result indicative of performance of the application program in response to performance of the additional unitary sequence, wherein the additional result is caused to display on a display device of the system (see at least paragraphs [0032-0033] “…The machine learning system is used to generate a test case given a user action. In some embodiment, the electronic processor may determine one or more test case for each cluster determined at step 415…The machine learning system is a recurrent neural network (RNN) that includes one or more long short term memory (LSTM) units….allows the machine learning system to determine a next user action in a sequence of user actions (a test case) based on one or more previous user actions included in the sequence…”).
Per claim 5, Seaton further teaches:
wherein the determining is based on a model (see at least paragraph [0032] “…the electronic processor trains a machine learning system using the cluster. A machine learning system is considered to be well trained or be associated with a high confidence value when, given a partial sequence of user actions included in the cluster, the machine learning system outputs the same next actions…”).
Per claim 6, Seaton further teaches:
train the model based on the result indicative of performance of the application program based on performance of the single journey including the directed sequence of the set of actions (see at least paragraph [0032] “…the electronic processor trains a machine learning system using the cluster. A machine learning system is considered to be well trained or be associated with a high confidence value when, given a partial sequence of user actions included in the cluster, the machine learning system outputs the same next actions…”); and terminate the session for a test orchestration engine (see at least paragraph [0043] “When no issues are identified with a software application, the software application may be released to each device included in the system…”).
Per claim 8, Seaton further teaches:
wherein to identify the multiple actions performable by the application program comprises causing the system to: isolate actions of the journeys of the separate and distinct testing protocols (see at least paragraphs [0028-0029] “Using the recorded user actions received from one or more user devices, the electronic processor, when executing the probabilistic graphical model generation software generates a probabilistic graphical model (PGM)…includes a plurality of nodes. Each node represents a GUI element displayed as the user interacts with the first software application…the electronic processor when executing the clustering software divides the PGM into clusters of similar sequences of user actions…”); and evaluate an effect of each action on verification of a feature of the application program (see at least paragraph [0032] “…A machine learning system is considered to be well trained or be associated with a high confidence value when, given a partial sequence of user actions included in the cluster, the machine learning system outputs the same next actions…”).
Per claim 9, Seaton further teaches:
wherein the multiple actions include user interactions with controls presented by the application program on a display device of user devices, and wherein the multiple actions are configured to control performance of an operation associated with a feature of the application program (see at least paragraph [0027] “…the recorded user actions may include, selecting a username text field, selecting a GUI button including the text “Inbox.” In some embodiments, a user action is defined by a representation of a GUI element and the action that was performed on the GUI element…”).
Per claim 10, Seaton further teaches:
wherein the model is trained based on multiple journeys performed on the application program on the user device or multiple user devices (see at least paragraph [0032] “…the electronic processor trains a machine learning system using the cluster. A machine learning system is considered to be well trained or be associated with a high confidence value when, given a partial sequence of user actions included in the cluster, the machine learning system outputs the same next actions…”).
Per claim 11, Seaton further teaches:
wherein to generate the unitary test protocol comprises causing the system to: determine an order for the set of actions of the unitary sequence as a directed acyclic journey on the application program; and generate the unitary test protocol as an executable journey to perform the directed sequence on the application program (see at least FIG. 5).
Per claim 12, Seaton teaches a test engine comprising: at least one hardware processor; and at least one non-transitory memory storing instructions, which, when executed by the at least one hardware processor, cause the test engine to:
identify multiple actions of multiple journeys for testing an application program (see at least paragraph [0030] “…when executing the clustering software 225 divides the PGM into clusters (i.e. journeys) of similar sequences of user actions…”),
select a set of actions of at least two journeys of the multiple journeys that are non-mutually exclusive and are performable sequentially to validate the application program (see at least paragraph [0032] “…determines a test case from a cluster of sequences of user actions…”),
create a unitary test that defines a single journey including the set of actions arranged in a preset order configured to validate a feature of the application program based on performance of the single journey (see at least paragraph [0032] “…determines a test case (i.e. unitary test) from a cluster of sequences of user actions…a test case is a set of computer executable instructions that, when executed by an electronic processor, cause the electronic processor to interact with a software application in a manner similar to a user. A test case can therefore be thought of as a sequence of user actions…”); and
cause execution of the unitary test to generate a result indicative of whether the application program passed the unitary test (see at least paragraph [0034] “Once the test case is generated, the electronic processor may execute the test case to determine whether the first software application is functioning properly…”).
Per claim 14, Seaton further teaches:
wherein to select the set of actions from the multiple journeys to validate the application program comprises causing the test engine to: determine, based on a machine learning (ML) model, the set of actions selected based on historical data including analogous actions of tests for multiple application programs (see at least paragraph [0037] “…the electronic processor using a machine learning system associated with the first software application and a machine learning system associated with the second software application, determines a next user action in a partial sequence of user actions…both machine learning systems may be trained using clusters including sequences of user actions associated with logging…”).
Per claim 15, Seaton further teaches:
wherein to select the set of actions of the multiple journeys to validate the application program comprises causing the test engine to: determine the set of actions selected based on a machine learning (ML) model generated from a supervised knowledgebase (see at least paragraph [0032] “…the electronic processor trains a machine learning system using the cluster. A machine learning system is considered to be well trained or be associated with a high confidence value when, given a partial sequence of user actions included in the cluster, the machine learning system outputs the same next actions…”).
Per Claim 16, Seaton further teaches:
wherein to select the set of actions of the multiple journeys to validate the application program comprises causing the test engine to: generate an additional unitary test including a combination of the set of actions and an additional action, wherein the additional action is inserted in the ordered set of actions to validate a set of features based on performance of another single journey that includes the additional action (see at least paragraphs [0032-0033] “…The machine learning system is used to generate a test case given a user action. In some embodiment, the electronic processor may determine one or more test case for each cluster determined at step 415…The machine learning system is a recurrent neural network (RNN) that includes one or more long short term memory (LSTM) units…allows the machine learning system to determine a next user action in a sequence of user actions (a test case) based on one or more previous user actions included in the sequence…”).
Per claim 17, Seaton further teaches:
wherein to select the set of actions of the multiple journeys to validate the application program comprises causing the test engine to: isolate an action of each journey (see at least paragraphs [0028-0029] “Using the recorded user actions received from one or more user devices, the electronic processor, when executing the probabilistic graphical model generation software generates a probabilistic graphical model (PGM)…includes a plurality of nodes. Each node represents a GUI element displayed as the user interacts with the first software application…the electronic processor when executing the clustering software divides the PGM into clusters of similar sequences of user actions…”); and evaluate an effect of each isolated action on verification of the feature of the application program (see at least paragraph [0032] “…A machine learning system is considered to be well trained or be associated with a high confidence value when, given a partial sequence of user actions included in the cluster, the machine learning system outputs the same next actions…”).
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 4, 13, and 18-20 are rejected under 35 U.S.C. 103 as being unpatentable over WO2020086757A1 in view of U.S. Pub. No 20050204201 to Meenakshisundaram.
Per claim 4, Seaton does not explicitly teach wherein the separate and distinct test protocols comprise two or more of:
wherein the separate and distinct test protocols comprise two or more of: a unit test protocol configured to test one or more software modules of the application program and associated control data, a usage procedure, or an operating procedure to determine fit for use, an integration test protocol configured to test integration of one or more software modules or subsystems associated with the application program to evaluate compliance with a specified functional requirement, a system test protocol configured to test a complete system that supports the one or more software modules or subsystems to evaluate compliance with a specified functional requirement, and an end-to-end test protocol configured to test functionality and performance of the application program under a product-like circumstance.
Meenakshisundaram teaches a method and system for testing software, comprising (see at least paragraph [0015] “…These modules work together to provide an integrated test platform for creating and managing the test environment, creating test plans and test cases, performing unit level testing, module integration test and system testing within a single development environment”).
It would have obvious for a person of an ordinary skill in the art as of the effective filing date of the claimed invention to modify the teaching of Seaton to incorporate the teaching of Meenakshisundaram to perform multiple testing on the software application. One would have been motivated to perform multiple levels of testing on the software application to able to discover more issues.
Per claim 13, Seaton does not explicitly teach:
caused to, prior to the multiple actions of the multiple journeys being identified: receive a set of test protocols including a unit test, an integration test, a system test, and an end-to-end test for the application program, wherein the set of test protocols includes the multiple journeys for testing the application program separately for each journey.
Meenakshisundaram teaches a method and system for testing software, comprising (see at least paragraph [0015] “…These modules work together to provide an integrated test platform for creating and managing the test environment, creating test plans and test cases, performing unit level testing, module integration test and system testing within a single development environment”).
It would have been obvious for a person of an ordinary skill in the art as of the effective filing date of the claimed invention to modify the teaching of Seaton to incorporate the teaching of Meenakshisundaram to perform multiple testing on the software application to be able to discover more issues.
Per claim 18, Seaton teaches a non-transitory, computer-readable storage medium comprising instructions recorded thereon, wherein the instructions when executed by at least one data processor of a system, cause the system to:
receive a set of test for an application program, wherein each test protocol includes a journey of multiple journeys for separately testing an application program (see at least paragraph [0030] “…the electronic processor 200, when executing the clustering software 225, divides the PGM into clusters of similar sequences of user actions…”), and wherein each journey includes a sequence of one or more actions (see at least paragraph [0030] “…one cluster may include sequences of user actions associated with composing an email and another cluster may include sequences of user actions associated with filing email…”), and select a set of actions from at least two journeys that are non-mutually exclusive and are performable sequentially to validate an application program (see at least paragraph [0032] “…determines a test case from a cluster of sequences of user actions…”), generate a unitary test that orders the set of actions to validate a set of features of the application program with a single journey (see at least paragraph [0032] “…determines a test case (i.e. unitary test) from a cluster of sequences of user actions…a test case is a set of computer executable instructions that, when executed by an electronic processor, cause the electronic processor to interact with a software application in a manner similar to a user. A test case can therefore be thought of as a sequence of user actions…”), and cause execution of the unitary test to generate a result indicative of whether the application program passes the set of test protocols based on performance of the single journey (see at least paragraph [0034] “Once the test case is generated, the electronic processor may execute the test case to determine whether the first software application is functioning properly…”).
Seaton does not explicitly teach:
a set of test protocols including two or more of a unit test, an integration test, a system test, or an end-to-end test.
Meenakshisundaram teaches a method and system for testing software, comprising:
receive a set of test protocols including two or more of a unit test, an integration test, a system test, or an end-to-end test (see at least paragraph [0015] “…These modules work together to provide an integrated test platform for creating and managing the test environment, creating test plans and test cases, performing unit level testing, module integration test and system testing within a single development environment”).
Therefore, it would have been obvious for a person of an ordinary skill in the art as of the effective filing date of the claimed invention to modify the teaching of Seaton to incorporate the teaching of Meenakshisundaram to perform multiple testing on the software application. One would have been motivated to perform multiple levels of testing on the software application to able to discover more issues.
Per claim 19, Seaton further teaches:
wherein to generate the unitary test protocol comprises causing the system to: determine an order for the set of actions for the single journey as a directed acyclic journey on the application program (see at least FIG. 5).
Per claim 20, Seaton further teaches:
wherein the system is further caused to: output, on a display device of the system, an indication of the result, wherein the indication of the result includes a status for each of the set of test protocols (see at least paragraph [0035] “…identifying issues with a software application as a part of test case generation. In the method 800, issues are identified by the outputs machine learning system generated for different software applications…”).
Claim 7 is rejected under 35 U.S.C. 103 as being unpatentable over WO 2020086757 A1 in view U.S. Pub. No 20180053233 to Srivastava.
Per claim 7, Seaton further teaches:
wherein the user device is a wireless device of a telecommunications network (see at least paragraph [0023] “…The user device may be a laptop or desktop computer, a tablet computer, smart phone, or other computing device…the user device includes…a communication interface for example, a transceiver for communicating over the communication network…”), and wherein the set of features of the application program includes a payment capability, and a capability to execute a purchase operation (see at least paragraph [0032] “…sequence of user actions including right clicking on a shopping cart icon followed by right clicking on a proceed to check out…”).
Seaton does not explicitly teach:
a capability to add a service of the telecommunications network to a subscription of the wireless device.
Srivastava teaches an analogous art relates processing user actions, comprising:
a capability to add a service of the telecommunications network to a subscription of the wireless device (see at least paragraph [0056] “…The business process service layer is where the business logic resides for the services provided. In the context of a marketplace this is where services such as user registration, user sign in, listing creation and publication, add to shopping cart, place an offer, checkout, send invoice, print labels, ship item, return item, and so forth would be implemented. The business process service layer 408 also orchestrates between various business logic and data entities and thus represents a composition of shared services. The business processes in this layer can also support multi-tenancy in order to increase compatibility with some cloud service architectures”).
It would have been obvious for a person of an ordinary skill in the art as of the effective filing date of the claimed invention to modify the teaching of Seaton to incorporate the teaching of Srivastava to allow the software application to include adding a service feature to the software application. One would have been motivated to do so allowing the users to register for services.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure: US20100306590, US20110131452 and US8984340
Any inquiry concerning this communication or earlier communications from the examiner should be directed to PHILLIP H NGUYEN whose telephone number is (571)270-1070. The examiner can normally be reached Monday-Friday 9:00AM-5:00PM.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Wei Zhen can be reached at (571) 272-3708. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/PHILLIP H NGUYEN/Primary Examiner, Art Unit 2191