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 .
Claims 1-20 are pending and examined in this office action.
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 a judicial exception (i.e., a law of nature, a natural phenomenon, mathematical relationship or an abstract idea) without significantly more.
Statutory Category: Claim 1 recites a method, comprising: performing the following steps, in response to a modification of software code of a given microservice of a plurality of microservices of at least one application: identifying, from a plurality of clusters of microservices, one or more clusters each comprising the given microservice; for one or more microservices in the identified one or more clusters, identifying, using information characterizing one or more microservices tested by one or more test cases of a plurality of test cases, one or more test cases that test the respective microservice in the identified one or more clusters; and automatically initiating an execution of the identified one or more test cases that test the one or more microservices in the identified one or more clusters, wherein the method is performed by at least one processing device comprising a processor coupled to a memory.
Step 2A – Prong 1: Claim 1 recites: identifying, from a plurality of clusters of microservices, one or more clusters each comprising the given microservice (a mental step of identification); for one or more microservices in the identified one or more clusters, identifying, using information characterizing one or more microservices tested by one or more test cases of a plurality of test cases, one or more test cases that test the respective microservice in the identified one or more clusters (a mental step of identification). That is, nothing in the claim elements precludes the steps from practically being performed mentally or using pen and paper. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the mental process grouping of abstract idea. Accordingly, the claim recites an abstract idea under step 2A prong 1.
This judicial exception is not integrated into a practical application. In particular, the claim 1 recites additional elements such as performing the following steps, in response to a modification of software code of a given microservice of a plurality of microservices of at least one application, which is a pre-solution solution activity of modifying a software code, that is a Well-Understood, Routine, Conventional (WURC) Activity, as evidenced in Gefen (claim 1; paragraphs [0043][0045][0062]; a developer modifies a code of microservice). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea under Prong II step 2B.
This judicial exception is not integrated into a practical application. In particular, the claim 1 recites additional elements such as automatically initiating an execution of the identified one or more test cases that test the one or more microservices in the identified one or more clusters, which is a post solution activity of executing test cases, that is a Well-Understood, Routine, Conventional (WURC) Activity, as evidenced in Gefen (paragraph [00047]; executing a plurality of test cases on a plurality of microservices). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea under Prong II step 2B.
This judicial exception is not integrated into a practical application. In particular, the claim 1 recites additional elements such as “at least one processing device comprising a processor coupled to a memory”. The additional elements in the claim amounts to no more than generic hardware component with instructions to apply the exception, which cannot integrate a judicial exception into a practical application or provide an inventive concept. The claim is directed to insignificant additional elements under Step 2B.
Dependent claims 2-7 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 dependent claims 2-7 recite more steps of a mental process (such as reporting test case failures, generating a feature vector) which can be performed mentally or using pen and paper. The additional element of dependent claims 2-7 recite more extra-solution activities (parallel execution of test cases), which do not impose any meaningful limits on practicing the mental process (insignificant additional element). Therefore, these claims are not patent eligible.
Independent claim 8 (a system with memory and a processor to perform the method of claim 1) with dependent claims 9-14 are rejected under the similar rational as claims 1-7. The additional elements in the claim amounts to no more than generic hardware component with instructions to apply the exception, which cannot integrate a judicial exception into a practical application or provide an inventive concept.
Independent claim 15 (a storage medium storing instructions to perform the method similar to claim 1) with dependent claims 16-20 are rejected under the similar rational as claims 1-7. The additional elements in the claim amounts to no more than generic hardware component with instructions to apply the exception, which cannot integrate a judicial exception into a practical application or provide an inventive concept.
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-4, 8-11 and 15-17 are rejected under 35 U.S.C. 103 as being unpatentable over Gefen et al. (US PGPUB 2021/0216444) hereinafter Gefen, in view of Best (US PGPUB 2016/0085663).
Per claim 1, Gefen discloses a method, comprising: performing the following steps, in response to a modification of software code of a given microservice of a plurality of microservices of at least one application: identifying, from a plurality of clusters of microservices, one or more clusters each comprising the given microservice; wherein the method is performed by at least one processing device comprising a processor coupled to a memory (claim 1; paragraphs [0043][0045][0062]; a system with processor and memory; identification of a microservice in a group of microservices whose code has been changed by a developer; identifying a group of microservices which are dependent on the modified microservice, i.e. these microservices are affected by the modified microservice); for one or more microservices in the identified one or more clusters, identifying, using information characterizing one or more microservices, one or more test cases that test the respective microservice in the identified one or more clusters; and automatically initiating an execution of the identified one or more test cases that test the one or more microservices in the identified one or more clusters (paragraph [0047]; claim 1; when the distances between the various microservices and the changed microservice are known (information characterizing one or more microservices), a test order may then be generated, the test order may identify a set of test cases performed for each of the various microservices).
While Gefen discloses identifying, using information characterizing one or more microservices, one or more test cases that test the respective microservice, Gefen does not explicitly teach information characterizing one or more microservices contains information of microservices tested by one or more test cases of a plurality of test cases. However, Best suggests identifying, using information characterizing one or more microservices tested by one or more test cases of a plurality of test cases, one or more test cases that test the respective microservice in the identified one or more clusters, automatically initiating an execution of the identified one or more test cases that test the one or more microservices (paragraph [0014]; performing a test coverage analysis to determine which areas of code have been covered by executed test cases, which areas of code have not been covered by executed test cases (information of microservices tested by one or more test cases of a plurality of test cases); implement new test cases to test the code to have a more complete test coverage). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention combine Gefen and Best to identify one or more test cases to test the microservices based on the previous test coverage information of the microservices, this would ensure all the microservices are tested (i.e. if there are untested microservices, they may result in error; the combination of Gefen and Best produce a more comprehensive testing , which will result in better software quality).
Per claim 2, Best further suggests wherein the information characterizing the one or more microservices tested by the one or more test cases of the plurality of test cases is obtained by performing a test coverage analysis for the plurality of test cases (paragraph [0014]; performing a test coverage analysis to determine which areas of code have been covered by executed test cases, which areas of code have not been covered by executed test cases; implement new test cases to test the code to have a more complete test coverage).
Per claim 3, Best further suggests wherein the information characterizing the one or more microservices tested by a given test case is stored as a value in a key-value pair associated with the given test case (paragraph [0018]; test case interface may cause the mapping data to be stored in test case data store, the mapping data includes information that identifies the routines of source code that each test case covers; i.e. storing a database, a test coverage entry/value indicating a particular routine (microservice) has been tested by a particular test case).
Per claim 4, Gefen further suggests reporting one or more test case failures (paragraph [0013]; such embodiments may help to identify failed tests as soon as possible).
Claims 8-11 recite similar limitations as claims 1-4. Therefore, claims 8-11 are rejected under similar rationales as claims 1-4.
Claims 15-17 recite similar limitations as claims 1-4. Therefore, claims 15-17 are rejected under similar rationales as claims 1-4.
Claims 5, 12 and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Gefen, in view of Best, and in view of Bandlamudi et al. (US PGPUB 2024/0202177) hereinafter Bandlamudi.
Per claim 5, Gefen does not explicitly teach wherein the plurality of clusters of microservices is generated using a feature vector representation of respective microservices of the plurality of microservices, wherein the feature vector representation of a given microservice comprises a binary value for each of a plurality of microservice endpoints indicating whether the given microservice uses the respective microservice endpoint. However, Gefen discloses identifying a plurality of microservices affected by a code change of a given microservice. Bandlamudi further suggests (paragraph [0006]; generating an application graph, each node in the graph specifies a corresponding microservice and has corresponding microservice attribute information, and each edge between nodes specifies a microservice functionality between microservices of nodes connected by the edge (the given microservice uses the respective microservice endpoint); the microservices are represented as vector representations; compiling the vector representations into entries of a microservice index data structure). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention combine Gefen, Best and Bandlamudi to represent the plurality of microservices as feature vectors, each feature vector contains binary attributes representing whether or not the given microservice uses the respective microservice endpoint, as storing microservice attributes as feature vectors makes attributes more searchable (see Bandlamudi, paragraph [0021]).
Claims 12 and 18 are rejected under similar rationales as claim 7.
Claims 7, 14 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Gefen, in view of Best, and in view of Hegadi et al. (US PGPUB 2024/0095149) hereinafter Hegadi.
Per claim 7, Gefen discloses selecting one or more test cases to test microservices, but does not explicitly teach wherein the execution of one or more test cases associated with a first cluster is performed in parallel with one or more test cases associated with a second cluster that does not overlap with the first cluster. However, Hegadi suggests the above (paragraph [0136]; parallel testing a plurality of test cases on a plurality of microservices, the microservices do not overlap each other (each microservice is an independent module)). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention combine Gefen, Best and Hegadi to parallel test a plurality of test cases on a plurality of independent microservices, this would increase test speed compared to serial testing of test cases.
Claims 14 and 20 are rejected under similar rationales as claim 7.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to HANG PAN whose telephone number is (571)270-7667. The examiner can normally be reached 9 AM to 5 PM.
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, Chat Do can be reached at 571-272-3721. 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.
/HANG PAN/Primary Examiner, Art Unit 2193