DETAILED ACTION
Claims 1-20 are pending in the current application.
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 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. Examiner has evaluated the claims under the framework provided in the 2019 Patent Eligibility Guidance published in the Federal Register 01/07/2019 and has provided such analysis below.
Step 1: Claims 1-20 are claims that are directed to a process, machine, manufacture or composition of matter.
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:
Claims 1, 9 and 17: The limitation of “generating a facade of a method of a class, wherein the facade comprises input variables and output variables, and wherein the facade isolates code from a subsystem,” “parsing the facade of the method, wherein the parsing identifies allowed input values for the input variables and expected output values for the output variables,” “based on the received user input, populating a database table with every combination of the input variables with the output variables,” “comparing outputs of the unit test method to corresponding expected output values in the database table” and “determining whether the outputs of the unit test method match the corresponding expected output values in the database table”, as drafted, is a function that, under its broadest reasonable interpretation, recite the abstract idea of a mental process. The limitation encompasses a human mind carrying out the function through observation, evaluation judgment and /or opinion, or even with the aid of pen and paper. Thus, this limitation recites and falls within the “Mental Processes” grouping of abstract ideas under Prong 1
The claims have been identified to recite an abstract idea, Step 2A Prong 2 will evaluate whether the claims are directed to the judicial exception.
Step 2A Prong 2:
Claims 1, 9 and 17: The abstract idea is not integrated into a practical application. In particular the claims recite the following additional element “A system, comprising: at least one data processor; and at least one memory storing instructions, which when executed by the at least one data processor, result in operations comprising” “a subsystem” “a data store” and “A non-transitory computer readable medium storing instructions, which when executed by at least one data processor, result in operations comprising,” are recited at a high-level of generality such that it amounts no more than mere instructions to apply the exception using generic computer, and/or mere computer components. Further, the claims recites additional elements of “executing a unit test method on each row of the database table” fails to meaningfully limit the claim because it does not require any particular application of the recited “executing,” and is at best the equivalent of merely adding the words “apply it” to the judicial exception. Additionally, the claims recites additional elements of “receive user input specifying one or more parameters for the input variables based on the identified allowed input values for the input variables” and “storing the database table in a data store” do nothing more than add insignificant extra solution activity to the judicial exception of merely receiving or transmitting data and storing information in memory. 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).
Step 2B:
Claims 1, 9 and 17: The claims do not include additional elements, alone or in combination that are sufficient to amount to significantly more than the abstract idea. As discussed above with respect to integration of the abstract idea into a practical application, the additional elements of “A system, comprising: at least one data processor; and at least one memory storing instructions, which when executed by the at least one data processor, result in operations comprising” “a subsystem” “a data store” and “A non-transitory computer readable medium storing instructions, which when executed by at least one data processor, result in operations comprising,” amount to no more than mere instructions, or generic computer/computer components to carry out the exception. Further, the additional elements of “executing a unit test method on each row of the database table” does not require any particular application of the recited execution and is at best the equivalent of merely adding the words “apply it” to the judicial exception, where mere instructions to apply an exception cannot provide an inventive concept. Additionally, the additional elements of “receive user input specifying one or more parameters for the input variables based on the identified allowed input values for the input variables” and “storing the database table in a data store” are insignificant extra-solution activity information of receiving and storing data which does not integrate the abstract idea into a practical application. Further, the insignificant extra solution data activity is also WURC, see MPEP 2106.05(d)(II), where “the courts have recognized the following computer functions as well-understood, routine and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity” i. receiving or transmitting data and ii. storing and retrieving information in memory where the receive user input limitation is akin to receiving data and the storing the database table limitation is akin to storing data in memory. The recitation of generic computer instruction and computer components to apply the judicial exception, instruction akin to apply the exception and merely receiving and storing data do not amount to significantly more, thus, cannot provide an inventive concept. Accordingly, the claims are not patent eligible under 35 USC 101.
Having concluded analysis within the provided framework, claims 1, 9 and 17 do not recite patent eligible subject matter under 35 USC 101.
With regard to claims 2, 10 and 18 they recite limitations of “modifying the one or more parameters for the input variables, wherein the modifying comprises specifying one or more additional parameters associated with additional use cases; based on the received additional user input, repopulating the database table with every combination of the input variables with the output variables” which is an additional metal process under prong 1. Further, the claims recite additional elements of “receiving additional user input modifying the one or more parameters for the input variables” and “storing the database table in the data store” which is merely insignificant extra-solution activity information of receiving and storing data which does not integrate the abstract idea into a practical application. Further, the insignificant extra solution data activity is also WURC, see MPEP 2106.05(d)(II), where “the courts have recognized the following computer functions as well-understood, routine and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity” i. receiving or transmitting data and ii. storing and retrieving information in memory where the receive additional user input limitation is akin to receiving data and the storing the database table limitation is akin to storing data in memory.. Moreover, claims 2, 10 and 18 do not recite any other additional elements and for the same reasons as above with regard to the integration into a practical application and whether the additional elements amount to significantly more, claims 2, 10 and 18 also fail both Step 2A prong 2, thus the claims are directed to the abstract idea as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, claims 2, 10 and 18 do not recite patent eligible subject matter under 35 USC 101.
With regard to claims 3, 11 and 19 they recite limitations of “wherein determining whether the outputs of the unit test method match the corresponding expected output values in the database table comprise determining a degree of similarity between each output of the unit test method and each corresponding expected output value” which is an additional metal process under prong 1. Moreover, claims 3, 11 and 19 do not recite any other additional elements and for the same reasons as above with regard to the integration into a practical application and whether the additional elements amount to significantly more, claims 3, 11 and 19 also fail both Step 2A prong 2, thus the claims are directed to the abstract idea as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, claims 3, 11 and 19 do not recite patent eligible subject matter under 35 USC 101.
With regard to claims 4, 12 and 20 they recite additional elements of “based on determining one or more outputs of the unit test method fail to match a corresponding expected output value, transmitting a notification to a computing device” which is merely insignificant extra-solution activity information of transmitting data which does not integrate the abstract idea into a practical application. Further, the insignificant extra solution data activity is also WURC, see MPEP 2106.05(d)(II), where “the courts have recognized the following computer functions as well-understood, routine and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity” i. receiving or transmitting data where the transmitting a notification limitation is akin to transmitting data. Moreover, claims 4, 12 and 20 do not recite any other additional elements and for the same reasons as above with regard to the integration into a practical application and whether the additional elements amount to significantly more, claims 4, 12 and 20 also fail both Step 2A prong 2, thus the claims are directed to the abstract idea as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, claims 4, 12 and 20 do not recite patent eligible subject matter under 35 USC 101.
With regard to claims 5 and 13 they recite additional elements of “wherein receiving the user input specifying the one or more parameters for the input variables comprises receiving a plurality of fixed values” which is merely a field of use/technological environment which does not integrate the abstract idea into a practical application. Moreover, claims 5 and 13 do not recite any other additional elements and for the same reasons as above with regard to the integration into a practical application and whether the additional elements amount to significantly more, claims 5 and 13 also fail both Step 2A prong 2, thus the claims are directed to the abstract idea as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, claims 5 and 13 do not recite patent eligible subject matter under 35 USC 101.
With regard to claims 6 and 14 they recite additional elements of “wherein receiving the user input specifying the one or more parameters for the input variables comprises receiving a list of character strings” which is merely a field of use/technological environment which does not integrate the abstract idea into a practical application. Moreover, claims 6 and 14 do not recite any other additional elements and for the same reasons as above with regard to the integration into a practical application and whether the additional elements amount to significantly more, claims 6 and 14 also fail both Step 2A prong 2, thus the claims are directed to the abstract idea as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, claims 6 and 14 do not recite patent eligible subject matter under 35 USC 101.
With regard to claims 7 and 15 they recite additional elements of “wherein receiving the user input specifying the one or more parameters for the input variables comprises receiving one or more constraints specifying a range of values” which is merely a field of use/technological environment which does not integrate the abstract idea into a practical application. Moreover, claims 7 and 15 do not recite any other additional elements and for the same reasons as above with regard to the integration into a practical application and whether the additional elements amount to significantly more, claims 7 and 15 also fail both Step 2A prong 2, thus the claims are directed to the abstract idea as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, claims 7 and 15 do not recite patent eligible subject matter under 35 USC 101.
With regard to claims 8 and 16 they recite additional elements of “wherein the range of values comprises one or more of a lower limit and an upper limit” which is merely a field of use/technological environment which does not integrate the abstract idea into a practical application. Moreover, claims 8 and 16 do not recite any other additional elements and for the same reasons as above with regard to the integration into a practical application and whether the additional elements amount to significantly more, claims 8 and 16 also fail both Step 2A prong 2, thus the claims are directed to the abstract idea as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, claims 8 and 16 do not recite patent eligible subject matter under 35 USC 101.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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, 4-6, 9-10, 12-14, 17-18 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Gould et al. (Pub. No. US 2008/0256014 A1), in view of Solton et al. (Patent No. US 10,819,784 B1) and further in view of Doyle (Pub. No. US 2008/0154590 A1).
As to claims 1, 9 and 17 Gould discloses a system, comprising: at least one data processor (Gould [0250] lines 1-11); and
at least one memory storing instructions, which when executed by the at least one data processor, result in operations comprising (Gould [0250] lines 1-11):
receive user input specifying one or more parameters for the input variables based on the identified allowed input values for the input variables (Gould [0005] lines 18-26, [0007] lines 7-12, [0061] lines 1-7, [0067] lines 1-21 and claim 1; which shows being able to receive user input values, viewed as parameters, matching the determined/identified potential/allowed input for the input variable);
based on the received user input, populating a database table with every combination of the input variables with the output variables (Gould [0005] lines 18-26, [0007] lines 7-12, [0015] lines 1-14, [0061] lines 1-7, [0067] lines 1-21, [0068] lines 1-16 and claim 1; which shows based on the received user input being able to generate/populate a database table that includes values for every variable and values for every parameters where the specific values for the variables can be entered by the user and done for as many test cases as the user wishes to enter thus viewed as a type of database table with every combination of the input and output variables);
storing the database table in a data store (Gould [0014] lines 11-24, [0061] lines 1-7, [0067] lines 1-7, [0171] lines 1-3, [0206]-[0207] and [0250] lines 1-16; which shows that the test data is stored in a spreadsheet like table where the test data sets are attributes of rule sets where the rule sets can be loaded from the system and thus when the information is stored as part of the rule set stored in the system that includes memory/data store elements);
executing a unit test method on each row of the database table (Gould [0061] lines 1-7, [0067] lines 1-21, [0068] lines 1-16, [0069] lines 1-3, [0192] lines 1-8 and claim 1; which shows as part of unit testing for each rule executing unit test for each line in the test data set viewed as executing a unit test on each row of the database table);
comparing outputs of the unit test method to corresponding expected output values in the database table (Gould [0069] lines 1-7; which shows for each executed test being able to compare the resulting value, output of the test, with the expected output value from the database table); and
determining whether the outputs of the unit test method match the corresponding expected output values in the database table (Gould [0069] lines 1-7; which shows for each executed test being able to compare the resulting value, output of the test, with the expected output value from the database table to determine in the values match).
Gould does not specifically disclose generating a facade of a method of a class, wherein the facade comprises input variables and output variables, and wherein the facade isolates code from a subsystem
However, Solton discloses generating a facade of a method of a class, wherein the facade comprises input variables and output variables, and wherein the facade isolates code from a subsystem (Solton Col. 6 lines 35-42, line 65- Col. 7 line 3, lines 8-11, and 21-32, Col. 9 lines 1-24 and lines 37-58; which shows being able to generate a façade for an original service where for each function/method of the original service models are generated including a tree view model and flattened view model for the service/method and based on those generated models a façade generation module are able to analyze the models and the information of the data items, viewed as including input and output variables they contain, and generates/output a façade alternate operations definitions including input and output for the function/method that can be interacted with by an alternate client through a provided user interface module, thus isolating/separating/differentiating the original code for the function from the alternate code and thus viewed as isolating the code from the subsystem).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date to incorporate the teachings of Solton showing the specifics of generating a façade for a function service and associated testing into the software testing of Gould for the purpose of increasing the adaptability of the service by providing an additional way to interact with and access the service method without modifying the underlying service method, as taught by Solton Col 1 lines 42-60 and Col. 7 lines 21-32.
Gould as modified by Solton do not specifically disclose parsing the facade of the method, wherein the parsing identifies allowed input values for the input variables and expected output values for the output variables.
However, Doyle discloses parsing the facade of the method, wherein the parsing identifies allowed input values for the input variables and expected output values for the output variables (Doyle [0056] lines 1-6, which shows being able to parse the code representation of a voice application, viewed as parsing the information for an application viewed as including its methods, to identify acceptable input/allowed input values and expected output, where in light of the teachings of Solton above showing the generation of the updated façade for the service method viewed as type of associated code for the generated façade for the service).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date to incorporate the teachings of Doyle showing the specifics of being able to parse code for the application to identify acceptable input and expected output for the application, into the determining the input and expected output for the method for testing of Gould as modified by Solton for the purpose of increasing the comprehensiveness of testing by identifying variables and making sure test are generated for each path through the method/application based on identified information, as taught by Doyle [0003] lines 4-7 and [0056] lines 1-6.
As to claims 2, 10 and 18 Gould discloses receiving additional user input modifying the one or more parameters for the input variables, wherein the modifying comprises specifying one or more additional parameters associated with additional use cases; based on the received additional user input, repopulating the database table with every combination of the input variables with the output variables; and storing the database table in the data store (Gould [0014] lines 11-24, [0061] lines 1-7, [0067] lines 1-21, [0068] lines 1-16, [0143] lines 1-15, [0171] lines 1-3, [0206]-[0207] and [0250] lines 1-16 and claim 1; which shows the user can create/modify the input data set for the test data with additional input variables, viewed as type of modifying the parameters for the input variables with additional input variables thus providing additional use cases and as test cases can be generated for as many as the user wishes to enter and thus viewed as repopulating/modifying the test data spreadsheet table with the modified additional test cases for additional input and having that information stored in the database table and thus storing the database table information is stored in the system/data store).
As to claims 4, 12 and 20 Gould discloses based on determining one or more outputs of the unit test method fail to match a corresponding expected output value, transmitting a notification to a computing device (Gould [0069] lines 1-10 and [0250] lines1-16; which shows when it is determined that the outputs do not match is able to output an indication in the table that they do not match, viewed as a transmitted notification to the one or more computing devices that are implementing this process).
As to claims 5 and 13 Gould discloses wherein receiving the user input specifying the one or more parameters for the input variables comprises receiving a plurality of fixed values (Gould [0031] lines 1-8 and[0068] lines1-16; which shows in the examples of values/parameters for variables entered by the user include specific fixed values being received).
As to claims 6 and 14 Gould discloses wherein receiving the user input specifying the one or more parameters for the input variables comprises receiving a list of character strings (Gould [0031] lines 1-8 and [0068] lines1-16; which shows in the examples of values/parameters for variables entered by the user for the rules includes values viewed as character string values that include a plurality of those values and thus include list of character string values ).
Claims 3, 11 and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Gould, Solton and Doyle as applied to claims 1, 9 and 17 above, and further in view of Alexander et al. (Patent No. US 8,793,647 B2).
As to claims 3, 11 and 19 Gould as modified by Solton and Doyle do not specifically disclose wherein determining whether the outputs of the unit test method match the corresponding expected output values in the database table comprise determining a degree of similarity between each output of the unit test method and each corresponding expected output value.
However, Alexander discloses wherein determining whether the outputs of the unit test method match the corresponding expected output values in the database table comprise determining a degree of similarity between each output of the unit test method and each corresponding expected output value (Alexander Col. 4 lines 5-10 and claim 1; which shows the specifics of determining the degree of similarity by comparing the projected/expect values to the actual output values to determine/output a degree of similarity between the compared values, that in light of the teachings of Gould above show the comparison of the expected output values to actual output values for test to determine if they are similar/matching would together be able to show the specifics of determining whether the outputs of the unit test method match the corresponding expected output values in the database table comprise determining a degree of similarity between each output of the unit test method and each corresponding expected output value).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date to incorporate the teachings of Alexander showing the specifics of determining a degree of similarity between projected output values and the actual output values into the determining matching by comparison between expected output values and actual output values of Gould as modified by Solton and Doyle to improve adaptability of the comparison to determine when result are similar enough to be considered as passing within expected values of output results, as taught by Alexander Col. 4 lines 11-15.
Claims 7-8 and 15-16 are rejected under 35 U.S.C. 103 as being unpatentable over Gould, Solton and Doyle as applied to claims 1, and 9 above, and further in view of Bhatt et al. (Pub. No. US 2011/0258607 A1)
As to claims 7 and 15 Gould as modified by Solton and Doyle do not specifically disclose wherein receiving the user input specifying the one or more parameters for the input variables comprises receiving one or more constraints specifying a range of values.
However, Bhatt discloses wherein receiving the user input specifying the one or more parameters for the input variables comprises receiving one or more constraints specifying a range of values (Bhatt [0005] lines 1-11, [0020] lines 1-5, [0021] lines 1-5 and Fig. 1; which shows for a model of software, viewed as including a method of a class, being able to specify values for variable input into the model that can be used in testing, where the specified input values for the variables can include a specified range of variable values).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective date to incorporate the teachings of Bhatt showing the specifics of being able to specify an input range for variable used in testing software, into the testing of software with specified input values of Gould as modified by Solton and Doyle for the purpose of reducing cost associated with software testing as taught by Bhatt [0012] lines 9-12.
As to claims 8 and 16 Gould as modified by Solton and Doyle do not specifically disclose, however, Bhatt discloses wherein the range of values comprises one or more of a lower limit and an upper limit (Bhatt [0005] lines 1-11, [0020] lines 1-5, [0021] lines 1-5, [0025] lines 1-3 and Fig. 1; which shows for a model of software, viewed as including a method of a class, being able to specify values for variable input into the model that can be used in testing, where the specified input values for the variables can include a specified range of variable values where it is determined if the range values as a single value range in which the min value is equal to the max value, viewed as the upper and lower limit, and thus viewed as having a specified upper and lower limit in the input range values ).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective date to incorporate the teachings of Bhatt showing the specifics of being able to specify an input range for variable used in testing software, into the testing of software with specified input values of Gould as modified by Solton and Doyle for the purpose of reducing cost associated with software testing as taught by Bhatt [0012] lines 9-12.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to BRADFORD F WHEATON whose telephone number is (571)270-1779. The examiner can normally be reached Monday-Friday 8:00-5:00 EST.
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.
/BRADFORD F WHEATON/Examiner, Art Unit 2193