DETAILED ACTION
This Office Actions is in response to communication filed on 06/28/2023. Claims 1 – 20 are pending. Claim 1, 12, and 19 are in independent form.
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 .
Claim Objections
Claims 1, 12, and 19 objected to because of the following informalities: “receive information indicating a set of tests that have been performed for an API, each test comprising a respective request to the API and a respective response from the API that collectively define an API test contract”. The first uses of the acronym “API” must fully spell out as “Application Programming Interfaces”, based on paragraph [0002] from the Specification, such as: “receive information indicating a set of tests that have been performed for an Application Programming Interface (API), each test comprising a respective request to the API and a respective response from the API that collectively define an API test contract”. After that, the uses of the acronym “API” does not need to fully spell out.
Appropriate correction is required.
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.
Claim 1 – 20, are rejected under 35 U.S.C. 101 because the claimed invention recites a judicial exception, is directed to that judicial exception, an abstract idea, as it has not been integrated into practical application and the claims further do not recite significantly more than the judicial exception.
With regard to claims 1, 12, and 19, these claims are within at least one of the four categories of patent eligible subject matter as it is directing to:
Step 1:
Claim 1 is directed to a computing system and falls within the statutory category of machines;
Claim 12 is directed to a non-transitory computer-readable medium and falls within the statutory category of manufacture;
Claim 19 is directed to a method and fall within the statutory category of process;
Therefore, “Are the claims to a process, machine, manufacture or composition of matter?” Yes, under Step 1.
In order to evaluate the Step 2A inquiry “Is the claim directed to a law of nature, a natural phenomenon or an abstract idea?” we must determine, at Step 2A Prong 1, whether the claim recites a law of nature, a natural phenomenon or an abstract idea and further whether the claim recites additional elements that integrate the judicial exception into a practical application.
Step 2A Prong 1:
However, the limitations
Claims 1, 12, and 19: “based on the set of tests, determining a set of API test contracts; based on the production traffic for the API, determining a set of API production contracts; comparing the set of API test contracts with the set of API production contracts; based on the comparison, determining an inconsistency between the set of API test contracts and the set of API production contracts;”
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. The limitations encompass a human mind carrying out the function through observation, evaluation judgment and /or opinion, or even with the aid of pen and paper. For example, a person can perform the determining/identifying the test contracts based on the tests data, or determining/identifying a set of API production contracts based on the production traffic data for the API, in their mind, and/or including with the aid of pen and paper. (See MPEP § 2106.04(a)(2)(III)).
That is, the above limitations in the claims 1, 12, and 19 as drafted, are functions that, under its broadest reasonable interpretation, recite the abstract idea of a mental process. The limitations encompass a human mind carrying out the functions through observation, evaluation, judgment and /or opinion, or even with the aid of pen and paper. Thus, these limitations recite and fall within the “Mental Processes” grouping of abstract ideas under Step 2A Prong 1.
Step 2A Prong 2:
Under Prong 2 Step 2A, this judicial exception is not integrated into a practical application. The claims recite the following additional elements:
Claim 1: “A computing system comprising: at least one processor; a non-transitory computer-readable medium; and program instructions stored on the non-transitory computer-readable medium that are executable by the at least one processor such that the computing system is configured to”
Claim 12: “A non-transitory computer-readable medium, wherein the non-transitory computer-readable medium is provisioned with program instructions that, when executed by at least one processor, cause a computing system to”
Claim 19: “A method carried out by a computing system, the method comprising”
are recited at a high-level of generality such that it amounts no more than mere instructions to apply the exception using a generic computer component, or merely a generic computer or generic computer components to perform the judicial exception.
Further, the claims recite the following additional element:
Claims 1, 12, and 19: receive information indicating a set of tests that have been performed for an API, each test comprising a respective request to the API and a respective response from the API that collectively define an API test contract; receive information indicating production traffic for the API, the production traffic comprising a set of requests to, and corresponding production responses from, the API, wherein each respective production request and corresponding production response collectively define an API production contract.
which is the limitation merely a recitation of limit the use of the abstract idea amounts to necessary data gathering and outputting - Insignificant Extra-Solution Activity - pre-solution and post-solution activity - mere data gathering. Extra-solution activity includes both pre-solution and post-solution activity. An example of pre-solution activity is a step of gathering data for use in a claimed process. As explained by the Supreme Court, the addition of insignificant extra-solution activity does not amount to an inventive concept, particularly when the activity is well-understood or conventional, which does not integrate a judicial exception into practical application. (See MPEP § 2106.05(g)).
In addition, the claims also recite the following additional elements:
Claims 1, 12, and 19: based on the determined inconsistency, cause a change in (i) an extent of the set of tests that have been performed for the API, or (ii) an extent of functionality of the API.
which are merely recites "apply it" (or an equivalent) or are no more than mere instructions to implement an abstract idea or other exception on a computer. The above limitations invoke computers or other machinery merely as a tool to perform an existing process, or simply adding a general-purpose computer or computer components after the fact to an abstract idea, which does not integrate a judicial exception into a practical application or provide significantly more (see MPEP § 2106.05(f)).
Therefore, these additional elements do not integrate the abstract idea into a practical application and they do not impose any meaningful limits on practicing the abstract idea. The claims are directed to an abstract idea.
After having evaluating the inquires set forth in Steps 2A Prong 1 and 2, it has been concluded that the claims 1, 19, and 20 do not only recites a judicial exception but that the claims are directed to the judicial exception as the judicial exception has not been integrated into practical application.
Step 2B:
Under Step 2B, the claims do not include additional elements, alone or in combination, 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 amount to no more than generic computing components and invoking computers and other machinery merely as a tool to perform an existing process, which do not amount to significantly more than the abstract idea. The claims that amount to nothing more than an instruction to apply the abstract idea using a generic computer do not render an abstract idea eligible.
The claims recite the following additional elements:
Claims 1, 12, and 19: receive information indicating a set of tests that have been performed for an API, each test comprising a respective request to the API and a respective response from the API that collectively define an API test contract; receive information indicating production traffic for the API, the production traffic comprising a set of requests to, and corresponding production responses from, the API, wherein each respective production request and corresponding production response collectively define an API production contract.
which is the limitation merely a recitation of limit the use of the abstract idea amounts to necessary data gathering and outputting - Insignificant Extra-Solution Activity - pre-solution and post-solution activity - mere data gathering. Extra-solution activity includes both pre-solution and post-solution activity. The courts have recognized the “sending and receiving data” are insignificant extra-solution data gathering activity which do not amount to significantly more than the abstract idea, and are limitations computer functions as well-understood, routine, conventional (WURC) functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity. (See TLI Communications LLC v. AV Auto. LLC, 823 F.3d 607, 614, 118 USPQ2d 1744, 1748 (Fed. Cir. 2016) (Specification described additional elements as “either performing basic computer functions such as sending and receiving data, or performing functions ‘known’ in the art.”) and MPEP § 2106.05(d)).
In addition, the claims also recite the following additional elements:
Claims 1, 12, and 19: based on the determined inconsistency, cause a change in (i) an extent of the set of tests that have been performed for the API, or (ii) an extent of functionality of the API.
which are merely recites "apply it" (or an equivalent) or are no more than mere instructions to implement an abstract idea or other exception on a computer, which do not amount to significantly more than the abstract idea. The courts have found the additional elements to be mere instructions to apply an exception, because they do no more than merely invoke computers or machinery as a tool to perform an existing process include requiring the use of software to tailor information and provide it to the user on a generic computer. (See Intellectual Ventures I LLC v. Capital One Bank (USA), 792 F.3d 1363, 1370-71, 115 USPQ2d 1636, 1642 (Fed. Cir. 2015)) and MPEP § 2106.05(f)).
Therefore, “Do the claims recite additional elements that amount to significantly more than the judicial exception? No, these additional elements, alone or in combination, do not amount to significantly more than the judicial exception.
Having concluded analysis within the provided framework, claims 1, 12, and 19 do not recite patent eligible subject matter under 35 U.S.C. § 101.
Apply the same analysis to the dependent claims 2 – 11, 13 – 18, and 20, according to the above analysis, are mental processes, groupings of abstract ideas. Thus claims 2 – 11, 13 – 18, and 20 are ineligible.
With regard to claims 2, 13, and 20, the claims further include the limitation of “determine the inconsistency between the set of API test contracts and the set of API production contracts comprise program instructions that are executable by the at least one processor such that the computing system is configured to determine that a given API production contract of the set of API production contracts is not reflected in the set of API test contracts.” that fall with the “Mental Processes” grouping of abstract ideas, which is analyzed under Prong 1 Step 2A. Further, the claims do not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, the claims also fail both Step 2A prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fail Step 2B as not amounting to significantly more. Therefore, the claims do not recite patent eligible subject matter under 35 U.S.C. § 101.
With regard to claims 3 and 14, the claims have limitation to further indicate the wherein the program instructions that are executable by the at least one processor such that the computing system is configured to cause the change in the extent of the set of tests that have been performed for the API comprise program instructions that are executable by the at least one processor such that the computing system is configured to cause a supplemental test to be generated and performed for the API. The limitation is the additional element analyzed under Prong 2 Step 2A, which merely recites "apply it" (or an equivalent) or are no more than mere instructions to implement an abstract idea or other exception on a computer. Further, the claims do not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, the claims also fail both Step 2A prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fail Step 2B as not amounting to significantly more. Therefore, the claims do not recite patent eligible subject matter under 35 U.S.C. § 101.
With regard to claims 4 and 15, the claims have limitation to further indicate the wherein the program instructions that are executable by the at least one processor such that the computing system is configured to cause the change in the extent of the set of tests that have been performed for the API comprise program instructions that are executable by the at least one processor such that the computing system is configured to cause a supplemental test to be generated and performed for the API. The limitation is the additional element analyzed under Prong 2 Step 2A, which merely recites "apply it" (or an equivalent) or are no more than mere instructions to implement an abstract idea or other exception on a computer. Further, the claims do not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, the claims also fail both Step 2A prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fail Step 2B as not amounting to significantly more. Therefore, the claims do not recite patent eligible subject matter under 35 U.S.C. § 101.
With regard to claims 5 and 16, the claims further include the limitation of “determine a supplemental API test contract based on the supplemental test; ........ compare the given API production contract of the set of API production contracts with the updated set of API test contracts; and based on the comparison, determine that the given API production contract is reflected in the updated set of API test contracts.” that fall with the “Mental Processes” grouping of abstract ideas, which is analyzed under Prong 1 Step 2A.
Further, the claim has limitations update the set of API test contracts to include the supplemental API test contract. The limitation is the additional element analyzed under Prong 2 Step 2A, which merely recites "apply it" (or an equivalent) or are no more than mere instructions to implement an abstract idea or other exception on a computer. Further, the claims do not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, the claims also fail both Step 2A prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fail Step 2B as not amounting to significantly more. Therefore, the claims do not recite patent eligible subject matter under 35 U.S.C. § 101.
With regard to claims 6 and 17, the claims have limitation to further indicate the wherein the program instructions that are executable by the at least one processor such that the computing system is configured to cause the supplemental test to be generated and performed for the API comprise program instructions that are executable by the at least one processor such that the computing system is configured to report information to a user of the computing system, wherein the reported information instructs the user to generate the supplemental test. The limitation is the additional element analyzed under Prong 2 Step 2A, which merely recites "apply it" (or an equivalent) or are no more than mere instructions to implement an abstract idea or other exception on a computer. Further, the claims do not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, the claims also fail both Step 2A prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fail Step 2B as not amounting to significantly more. Therefore, the claims do not recite patent eligible subject matter under 35 U.S.C. § 101.
With regard to claims 7 and 18, the claims further include the limitation of “determine the inconsistency between the set of API test contracts and the set of API production contracts comprise program instructions that are executable by the at least one processor such that the computing system is configured to determine that a given API production contract of the set of API production contracts is not reflected in the set of API test contracts.” that fall with the “Mental Processes” grouping of abstract ideas, which is analyzed under Prong 1 Step 2A. Further, the claims do not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, the claims also fail both Step 2A prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fail Step 2B as not amounting to significantly more. Therefore, the claims do not recite patent eligible subject matter under 35 U.S.C. § 101.
With regard to claim 8, the claim further includes the limitation wherein the program instructions that are executable by the at least one processor such that the computing system is configured to cause the change in the extent of the functionality of the API comprise program instructions that are executable by the at least one processor such that the computing system is configured to cause an endpoint of the API to be deprecated. The limitation is the additional element analyzed under Prong 2 Step 2A, which merely recites "apply it" (or an equivalent) or are no more than mere instructions to implement an abstract idea or other exception on a computer. Further, the claim does not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, the claim also fails both Step 2A prong 2, thus the claim is directed to the judicial exception as it has not been integrated into practical application, and fail Step 2B as not amounting to significantly more. Therefore, the claim does not recite patent eligible subject matter under 35 U.S.C. § 101.
With regard to claim 9, the claim further includes the limitation wherein the production traffic represents production traffic of the API over a certain period of time, and wherein the set of tests comprises respective tests for various endpoints of the API. The limitation is the additional element analyzed under Prong 2 Step 2A, which merely recites "apply it" (or an equivalent) or are no more than mere instructions to implement an abstract idea or other exception on a computer. Further, the claim does not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, the claim also fails both Step 2A prong 2, thus the claim is directed to the judicial exception as it has not been integrated into practical application, and fail Step 2B as not amounting to significantly more. Therefore, the claim does not recite patent eligible subject matter under 35 U.S.C. § 101.
With regard to claim 10, the claim further includes the limitation further comprising program instructions that are executable by the at least one processor such that the computing system is configured to automatically generate a surface area of the API at least partially based on the set of tests. The limitation is the additional element analyzed under Prong 2 Step 2A, which merely recites "apply it" (or an equivalent) or are no more than mere instructions to implement an abstract idea or other exception on a computer. Further, the claim does not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, the claim also fails both Step 2A prong 2, thus the claim is directed to the judicial exception as it has not been integrated into practical application, and fail Step 2B as not amounting to significantly more. Therefore, the claim does not recite patent eligible subject matter under 35 U.S.C. § 101.
With regard to claim 11, the claim further includes the limitations further comprising program instructions that are executable by the at least one processor such that the computing system is configured to: receive information indicating specification information for the API. The limitations are the additional element analyzed under Prong 2 Step 2A, which are merely a recitation of limit the use of the abstract idea to insignificant extra-solution data gathering activity or are no more than mere instructions to implement an abstract idea or other exception on a computer. Further, the claim has the limitation to automatically generate the set of tests based on the information indicating the specification information for the API. The limitation is the additional element analyzed under Prong 2 Step 2A, which merely recites "apply it" (or an equivalent) or are no more than mere instructions to implement an abstract idea or other exception on a computer. Further, the claim does not recite any further additional elements and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, the claim also fails both Step 2A prong 2, thus the claim is directed to the judicial exception as it has not been integrated into practical application, and fail Step 2B as not amounting to significantly more. Therefore, the claim does not recite patent eligible subject matter under 35 U.S.C. § 101.
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 1, 2, 9, 12, 13, 19, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Desphande et al. US Pat. No. US 10824549 B1 (hereafter Desphande), in further view of Shah et al. US Pub. No. US 20170371937 A1 (hereafter Shah).
Regarding claim 1, Desphande teaches the invention substantially as claimed: A computing system comprising: at least one processor; a non-transitory computer-readable medium; (e.g. FIG. 4 and 30 - Col 11, lines 33 – 53: “FIG. 4 is a block diagram of a computer or a server in accordance with an embodiment of the present disclosure. The server 200 includes processor(s) 230, and memory 210 operatively coupled to the bus 220.”)
and program instructions stored on the non-transitory computer-readable medium that are executable by the at least one processor such that the computing system is configured to: receive information indicating a set of tests that have been performed for an API, (e.g. FIG. 5, 34 – Col 12, lines 25 – 28: “FIG. 5 is a flow chart representing the steps involved in a method 300 for regression testing of an application programming interface of FIG. 1 in accordance with the embodiment of the present disclosure.” and 39 – Col 13, lines 46 – 49: “The method (300) also includes recording an actual result obtained from simulation of the at least one message pattern associated with the usage data in the test environment by enabling one or more mocking services in step 360.”) The citation discloses the testing of an application programming interface, and at step 360 discloses the results of testing is recorded.
each test comprising a respective request to the API and a respective response from the API that collectively define an API test contract; based on the set of tests, determine a set of API test contracts; (e.g. 27 – Col 10, lines 22 – 39: “Upon sampling, the system 100 includes a test case generation learning subsystem 130 to generate multiple test cases based on the usage data using the machine learning technique. The test cases are generated to test the functionality of the API associated with the at least one request coming from the one or more users. In the example used herein, for the request 1 103 and the request 2 106, testing of the API for providing a corresponding response 1 and a corresponding response 2 respectively is tested by generation of the multiple test cases using the machine learning technique. Again, in order to test the API of the application in a test environment, simulation of requests associated with the usage from a current version of the application against an updated or a newer version is performed by a mocking subsystem 140. A test driver is used to simulate relevant traffic to the updated version 145 or a new version of the application, record new results, compare with the expected results captured earlier and highlight critical differences.” and 28 – Col 10, line 67, and Col 11, lines 1 – 12: “Also, an expected result obtained from the multiple test cases is compared with the actual result by the comparison subsystem 150 based on a predefined set of comparison rules 155. For example, the comparison rules 155 may include at least one of a data item path of the message exchange pattern, data type of the message exchange pattern, presence of an item in the message exchange pattern, data operation instruction for the message exchange pattern, comparison type for the message exchange pattern or a combination thereof. Again, a test result for reviewing testing of the application based on at least one difference identified upon comparison of the actual result with the expected result is generated by the comparison subsystem 150.”) The citation discloses the test cases, for test the functionality of the API comprises requests and responses, and the new or actual results/API test contracts, are generated from the requests and responses of the test cases.
receive information indicating production traffic for the API, the production traffic comprising a set of requests to, and corresponding production responses from, the API, wherein each respective production request and corresponding production response collectively define an API production contract; (e.g. 17 – Col 6, lines 54 – 58: “In one embodiment, a test driver may be used to simulate relevant traffic to the updated or a new version of the application, record new results, compare with the expected results captured earlier and highlight critical differences.” and 27 – Col 10, lines 22 – 39: “Upon sampling, the system 100 includes a test case generation learning subsystem 130 to generate multiple test cases based on the usage data using the machine learning technique. The test cases are generated to test the functionality of the API associated with the at least one request coming from the one or more users. In the example used herein, for the request 1 103 and the request 2 106, testing of the API for providing a corresponding response 1 and a corresponding response 2 respectively is tested by generation of the multiple test cases using the machine learning technique. Again, in order to test the API of the application in a test environment, simulation of requests associated with the usage from a current version of the application against an updated or a newer version is performed by a mocking subsystem 140. A test driver is used to simulate relevant traffic to the updated version 145 or a new version of the application, record new results, compare with the expected results captured earlier and highlight critical differences.” and 28 – Col 10, line 67, and Col 11, lines 1 – 12: “Also, an expected result obtained from the multiple test cases is compared with the actual result by the comparison subsystem 150 based on a predefined set of comparison rules 155. For example, the comparison rules 155 may include at least one of a data item path of the message exchange pattern, data type of the message exchange pattern, presence of an item in the message exchange pattern, data operation instruction for the message exchange pattern, comparison type for the message exchange pattern or a combination thereof. Again, a test result for reviewing testing of the application based on at least one difference identified upon comparison of the actual result with the expected result is generated by the comparison subsystem 150.”) The citation discloses the simulation of traffic, and the expected results/API production contract, in which the expected results are also generated from the tests case comprises multiple requests and responses.
based on the production traffic for the API, determine a set of API production contracts;
compare the set of API test contracts with the set of API production contracts; (e.g. 27 – Col 10, lines 36 – 39: “A test driver is used to simulate relevant traffic to the updated version 145 or a new version of the application, record new results, compare with the expected results captured earlier and highlight critical differences.” and 32 – Col 12, lines 4 – 15: “The comparison subsystem 150 records an actual result obtained from simulation of the at least one message pattern associated with the usage data in the test environment by enabling one or more mocking services. The comparison subsystem 150 also compares the actual result with an expected result obtained from the multiple test cases based on a predefined set of comparison rules. The comparison subsystem 150 also generate a test result for reviewing testing of the application based on at least one difference identified upon comparison of the actual result with the expected result.” and 41 – Col 14, liens 11 – 14: “The method (300) also includes comparing the actual result with an expected result obtained from the multiple test cases based on a predefined set of comparison rules in step 370.”) The citation discloses the comparison between the actual results/set of API test contracts, with the expected results/set of API production contracts.
Desphande fails to teach based on the comparison, determine an inconsistency between the set of API test contracts and the set of API production contracts; and based on the determined inconsistency, cause a change in (i) an extent of the set of tests that have been performed for the API, or (ii) an extent of functionality of the APL.
However, Shah teaches based on the comparison, determine an inconsistency between the set of API test contracts and the set of API production contracts;. (e.g. [0020]: “The testing system may further generate a list of published platform APIs published on the IoT platform system, may compare the generated list of candidate APIs with the generated list of published platform APIs. Based on the comparison, the testing system may generate: an API create list that includes APIs that are to be created; an API update list that includes APIs that correspond to APIs to be updated, and a remove API list of APIs that are to be removed from the list of published platform APIs.” and [0066]: “If there is a mismatch (block 665—YES), the selected candidate API is added to the update API list (block 670) and the selected published API is removed from the published API list (block 680)”) The citation discloses the concept of performing the comparison between the two API to identify the mismatch/inconsistency.
and based on the determined inconsistency, cause a change in (i) an extent of the set of tests that have been performed for the API, or
(ii) an extent of functionality of the API. [0066]: “If there is a mismatch (block 665—YES), the selected candidate API is added to the update API list”) The citation discloses the concept when there is a mismatch/inconsistency, the API list is updated/extent of functionality of the API.
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to add the based on the comparison, determine an inconsistency between the set of API test contracts and the set of API production contracts; and based on the determined inconsistency, cause a change in (i) an extent of the set of tests that have been performed for the API, or (ii) an extent of functionality of the APL, as taught in Shah’s invention into Desphande’s invention because the addition features would help the system to further identify when the API is operating in an unexpected manner, which help to improves reliability and stability of the API, because the system can automatically increase testing coverage for unverified behaviors.
Regarding claim 2, Desphande, in view of Shah, discloses the computing system of claim 1, wherein the program instructions that are executable by the at least one processor such that the computing system is configured to determine the inconsistency between the set of API test contracts and the set of API production contracts comprise program instructions that are executable by the at least one processor such that the computing system is configured to and Shah further teaches determine that a given API production contract of the set of API production contracts is not reflected in the set of API test contracts. (e.g. [0086]: “As example, the candidate API may be tested with an automated script that provides a nonexistent account name and the candidate API may return error response 1150 that includes a message informing that the specified account name was not found.”) The citation discloses the concept when the system performs a test on the candidate API and there is an error/inconsistent, which indicates that the name was not found/not reflected in the contracts.
Regarding claim 9, Desphande, in view of Shah, discloses the computing system of claim 1, and Shah further teaches wherein the production traffic represents production traffic of the API over a certain period of time, and wherein the set of tests comprises respective tests for various endpoints of the API. (e.g. [0035]: “Testing system 160 may include one or more computer devices, such as server devices, which perform automatic publishing and testing of candidate APIs. For example, testing system 160 may access, at particular intervals or in response to a command or request, multiple API storage systems 150 to identify candidate APIs. Testing system 160 may further access IoT platform system 170 to identify published APIs.”)
Regarding claim 12, it is a non-transitory computer-readable medium claim having similar limitations cited in claim 1, so it is also rejected under the same rational.
Regarding claim 13, it is a non-transitory computer-readable medium claim having similar limitations cited in claim 2, so it is also rejected under the same rational.
Regarding claim 19, it is a method claim having similar limitations cited in claim 1, so it is also rejected under the same rational.
Regarding claim 20, it is a method claim having similar limitations cited in claim 2, so it is also rejected under the same rational.
Claims 3, 4, 6, 11, 14, 15, and 17 are rejected under 35 U.S.C. 103 as being unpatentable over Desphande and Shah, in further view of GHATTU et al. US Pub. No. US 20240036947 A1 (hereafter GHATTU).
Regarding claim 3, Desphande, in view of Shah, discloses the computing system of claim 2, wherein the program instructions that are executable by the at least one processor such that the computing system is configured to, but fails to teach cause the change in the extent of the set of tests that have been performed for the API comprise program instructions that are executable by the at least one processor such that the computing system is configured to cause a supplemental test to be generated and performed for the API.
However, GHATTU teaches cause the change in the extent of the set of tests that have been performed for the API comprise program instructions that are executable by the at least one processor such that the computing system is configured to cause a supplemental test to be generated and performed for the API. (e.g. FIG. 4 and [0075]: “At step S408, the configuration-based API testing module 302 automatically generates a testing plan based on the defined API endpoints and dependencies and the authentication mode. Then, at step S410, the configuration-based API testing module 302 executes a test by using the testing plan.”) The citation discloses the concept of generating a test plan/supplemental test, and then executes/perform, the test plan for testing the API.
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to add the cause the change in the extent of the set of tests that have been performed for the API comprise program instructions that are executable by the at least one processor such that the computing system is configured to cause a supplemental test to be generated and performed for the API, as taught in GHATTU’s invention into Desphande and Shah’s invention because the newly added limitation would enable the system to test the API behaviors that may not include in the existing test, which helps to improves the accuracy, precision, and reliability of the API, thereby reducing the undetected errors, unexpected responses, or failures during API operation.
Regarding claim 4, Desphande, in view of Shah and GHATTU, discloses The computing system of claim 3, wherein the program instructions that are executable by the at least one processor such that the computing system is configured to cause the supplemental test to be generated and performed for the API comprise program instructions that are executable by the at least one processor such that the computing system, and GHATTU further teaches is configured to automatically generate and perform the supplemental test for the API. (e.g. FIG. 4 and [0075]: “At step S408, the configuration-based API testing module 302 automatically generates a testing plan based on the defined API endpoints and dependencies and the authentication mode. Then, at step S410, the configuration-based API testing module 302 executes a test by using the testing plan.”) The citation discloses the concept of automatically generating a test plan/supplemental test, and then executes/perform, the test plan for testing the API.
Regarding claim 6, Desphande, in view of Shah and GHATTU, discloses The computing system of claim 3, wherein the program instructions that are executable by the at least one processor such that the computing system is configured to cause the supplemental test to be generated and performed for the API comprise program instructions that are executable by the at least one processor such that the computing system, and Desphande further teaches is configured to report information to a user of the computing system (e.g. 22 - Col 8, lines 39 – 48: “In a specific embodiment, the system 100 further includes a test result analysis and reporting subsystem 160 to generate an action upon review of the test result to notify a user via multiple communication channels. In such embodiment, the action may include a bulk review and analysis of the test result obtained upon simulation. In such embodiment, the action may include, but not limited to, integration with an issue tracking platform to file a ticket, post to one or more collaboration tools, an electronic mail sent to the user for bug fixing and the like.”)
GHATTU further teaches wherein the reported information instructs the user to generate the supplemental test. (e.g. FIG. 4 and [0077]: “At step S414, the configuration-based API testing module 302 adjusts the testing plan. In an exemplary embodiment, adjustments to the testing plan may be based on test results, inputs provided by a user, and/or intervening events, such as, for example, an asynchronous call to an API being tested to perform a function.”) the citation discloses the concept of adjusting the testing plan/generate supplemental test, based on the input provide by the user. Since the input is provided by the user, it would imply that the user adjusts/generates, the test plan/supplement test.
Regarding claim 11, Desphande, in view of Shah, discloses the computing system of claim 1, but fails to teach further comprising program instructions that are executable by the at least one processor such that the computing system is configured to: receive information indicating specification information for the API; and automatically generate the set of tests based on the information indicating the specification information for the API.
However, GHATTU teaches further comprising program instructions that are executable by the at least one processor such that the computing system is configured to: receive information indicating specification information for the API (e.g. [0073]: “In process 400 of FIG. 4, at step S402, the configuration-based API testing module 302 receives information that includes an identification of at least one API to be tested. The information may include, for example, a configuration file that provides documentation that identifies one or more APIs.”) The citation discloses the configuration-based API testing module receive information relates to the API.
and automatically generate the set of tests based on the information indicating the specification information for the API. (e.g. [0074]: “At step S404, the configuration-based API testing module 302 defines at least two API endpoints to be tested and at least one dependency that relates to at least one of the API endpoints based on the information received in step S402. Then, at step S406, the configuration-based API testing module 302 retrieves an authentication model to be used for accessing the APIs to be tested. In an exemplary embodiment, the information received in step S402 includes an indication regarding which authentication model is suitable for the testing.” and [0075]: “At step S408, the configuration-based API testing module 302 automatically generates a testing plan based on the defined API endpoints and dependencies and the authentication mode.”) The citation discloses the automatically generates a testing plan/set of tests, based on the received information at the step S402.
Regarding claim 14, it is a non-transitory computer-readable medium claim having similar limitations cited in claim 3, so it is also rejected under the same rational.
Regarding claim 15, it is a non-transitory computer-readable medium claim having similar limitations cited in claim 4, so it is also rejected under the same rational.
Regarding claim 17, it is a non-transitory computer-readable medium claim having similar limitations cited in claim 6, so it is also rejected under the same rational.
Claims 7 and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Desphande and Shah, in further view of BAHRAMI et al. US Pub. No. US 20190095318 A1 (hereafter BAHRAMI).
Regarding claim 7, Desphande, in view of Shah, discloses the computing system of claim 1, wherein the program instructions that are executable by the at least one processor such that the computing system is configured to determine the inconsistency between the set of API test contracts and the set of API production contracts comprise program instructions that are executable by the at least one processor such that the computing system, but fails to teach is configured to determine that a given API test contract of the set of API test contracts is not reflected in the set of API production contracts.
However, BAHRAMI teaches is configured to determine that a given API test contract of the set of API test contracts is not reflected in the set of API production contracts. (e.g. [0021]: “The operating environment that may include a test assisted API learning system 110 (hereinafter, “API learning system 110”) that is configured to implement test-assisted API learning. The test-assisted API learning enables extraction of information from API documentation that may be available from API document sources 115A and 115B (general, API document source 115 or API document sources 115). The test-assisted API learning may result in a machine-readable API specification, which may enable one or more applications to interact with APIs and/or a native API system 130 without or with minimal manual configuration.” and [0111]: “In response to the endpoint not existing in the API learning system 110, the endpoint evaluation module 511 may implement the IE process performed by the IE module 512. The endpoint evaluation module 511 may then find a new API endpoint 518. The new API endpoint 518 may be communicated to the API generator 138 and/or the test case generator 202.” And [0129]: “The API test inputs may include API endpoints that may be based on the set of similar API specifications and the generated machine-readable API specification.”) The citation discloses the concept where the API learning system makes the determination that the endpoint is not exist/not reflect, in the API learning system.
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to add the cause the is configured to determine that a given API test contract of the set of API test contracts is not reflected in the set of API production contracts, as taught in BAHRAMI’s invention into Desphande and Shah’s invention because the newly added limitation would enable the system to make the determination that the expected results of the test performance may not include in the existing database, which helps to improves the accuracy, precision, and reliability of the API testing system, thereby reducing the undetected errors, unexpected responses, or failures during API testing operation.
Regarding claim 18, it is a non-transitory computer-readable medium claim having similar limitations cited in claim 7, so it is also rejected under the same rational.
Claim 8 is rejected under 35 U.S.C. 103 as being unpatentable over Desphande, Shah, and BAHRAMI, in further view of Chang et al. US Pub. No. US 20190004879 A1 (hereafter Chang).
Regarding claim 8, Desphande, in view of Shah, and BAHRAMI, discloses the computing system of claim 7, wherein the program instructions that are executable by the at least one processor such that the computing system is configured to cause the change in the extent of the functionality of the API comprise program instructions that are executable by the at least one processor, but fails to teach such that the computing system is configured to cause an endpoint of the API to be deprecated.
However, Chang teaches such that the computing system is configured to cause an endpoint of the API to be deprecated. (e.g. [0071]: “In an embodiment, even if a new API endpoint is backward-compatible, the older API endpoint may be considered deprecated. The older API endpoint may be marked for removal at some time in the future.”)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to add the such that the computing system is configured to cause an endpoint of the API to be deprecated, as taught in Chang’s invention into Desphande, Shah, and BAHRAMI’s invention because the newly added limitation would enable the system to make the determination that the API endpoints are outdated, insufficiently, and unreliable, which improves the stability, reduce unexpected behavior, and encourage use of more reliable and properly validated API functionality.
Claim 10 is rejected under 35 U.S.C. 103 as being unpatentable over Desphande and Shah, in further view of GHATTU et al. US Pub. No. US 20240036947 A1 (hereafter GHATTU) and Ellis et al. US Pub. No. US 20060242104 A1 (hereafter Ellis).
Regarding claim10, Desphande, in view of Shah, discloses the computing system of claim 1, but fails to teach further comprising program instructions that are executable by the at least one processor such that the computing system is configured to automatically generate a surface area of the API at least partially based on the set of tests.
However, GHATTU teaches further comprising program instructions that are executable by the at least one processor such that the computing system is configured to automatically generate ........ at least partially based on the set of tests. (e.g. FIG. 4 and [0075]: “At step S408, the configuration-based API testing module 302 automatically generates a testing plan based on the defined API endpoints and dependencies and the authentication mode. Then, at step S410, the configuration-based API testing module 302 executes a test by using the testing plan.”) The citation discloses the concept of automatically generating a test plan.
However, Ellis teaches a surface area of the API (e.g. [0011]: “The API can be exposed to clients (e.g., a caller), wherein the API is a public surface area that can call one or more private implementation routines to carry out a client request.”)
By combining the teaching of GHATTU about the automatically generating a test plan, with the teaching of Ellis about the surface area of the API, one with ordinary skills in the art would be able to come up with the claim invention.
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to add the further comprising program instructions that are executable by the at least one processor such that the computing system is configured to automatically generate a surface area of the API at least partially based on the set of tests, as taught in GHATTU and Ellis’s invention into Desphande and Shah’s invention because the newly added limitation would enable the system to identify which API functions or behaviors are covered by existing testing activities, which improves the management of the API, support complete testing coverage, and also improve reliability and reduce errors.
Allowable Subject Matter
Claims 5 and 16 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure:
US 20240095153 A1: a test code generation device including an action generation unit that acquires API-related data and generates action code data corresponding to an action of a state transition pattern of an API adapter, and a test code generation unit that generates a test code of the API adapter based on the action code data generated by the action generation unit and the state transition pattern of the API adapter.
Examiner has cited particular columns/paragraphs/sections and line numbers in the references applied and not relied upon to the claims above for the convenience of the applicant. Although the specified citations are representative of the teachings of the art and are applied to specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested from the applicant in preparing responses, to fully consider the references in entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the Examiner.
When responding to the Office action, applicant is advised to clearly point out the patentable novelty the claims present in view of the state of the art disclosed by the reference(s) cited or the objections made. A showing of how the amendments avoid such references or objections must also be present. See 37 C.F.R. 1.111(c).
When responding to this Office action, applicant is advised to provide the line and page numbers in the application and/or reference(s) cited to assist in locating the appropriate paragraphs
Any inquiry concerning this communication or earlier communications from the examiner should be directed to TUAN M NGUYEN whose telephone number is (703)756-1599. The examiner can normally be reached Monday-Friday: 9:30am - 5:30PM ET.
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, Pierre Vital can be reached at (571) 272-4215. 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.
/TUAN M NGUYEN/Examiner, Art Unit 2198
/PIERRE VITAL/Supervisory Patent Examiner, Art Unit 2198