Ex Parte Shani et alDownload PDFPatent Trial and Appeal BoardDec 4, 201814374249 (P.T.A.B. Dec. 4, 2018) Copy Citation UNITED STA TES p A TENT AND TRADEMARK OFFICE APPLICATION NO. FILING DATE 14/374,249 07/24/2014 146568 7590 ENTIT SOFTWARE LLC 500 Westover Drive #12603 Sanford, NC 27330 12/06/2018 FIRST NAMED INVENTOR Inbar Shani UNITED STATES DEPARTMENT OF COMMERCE United States Patent and Trademark Office Address: COMMISSIONER FOR PATENTS P.O. Box 1450 Alexandria, Virginia 22313-1450 www .uspto.gov ATTORNEY DOCKET NO. CONFIRMATION NO. 83991760 7922 EXAMINER SOLTANZADEH, AMIR ART UNIT PAPER NUMBER 2197 NOTIFICATION DATE DELIVERY MODE 12/06/2018 ELECTRONIC Please find below and/or attached an Office communication concerning this application or proceeding. The time period for reply, if any, is set in the attached communication. Notice of the Office communication was sent electronically on above-indicated "Notification Date" to the following e-mail address(es): software.ip.mail@microfocus.com PTOL-90A (Rev. 04/07) UNITED STATES PATENT AND TRADEMARK OFFICE BEFORE THE PATENT TRIAL AND APPEAL BOARD Ex parte INBAR SHANI, AMICHAI NILSAN, and ILAN SHUFER Appeal2018-003832 Application 14/374,249 1 Technology Center 2100 Before ELENI MANTIS MERCADER, NORMAN H. BEAMER, and ADAM J. PYONIN, Administrative Patent Judges. BEAMER, Administrative Patent Judge. DECISION ON APPEAL Appellants appeal under 35 U.S.C. § 134(a) from the Examiner's Final Rejection of claims 1-20. We have jurisdiction over the pending rejected claims under 35 U.S.C. § 6(b ). We affirm. 1 Appellants identify EntIT Software LLC as the real party in interest. (App. Br. 3.) Appeal2018-003832 Application 14/374,249 THE INVENTION Appellants' disclosed and claimed invention is directed to identifying a failed code change in a deployment pipeline. (Abstract.) Independent claim 1, reproduced below, is illustrative of the subject matter on appeal: 1. A computer implemented method to identify a failed code change in a deployment pipeline with a plurality of code changes, the method comprising: testing the plurality of code changes in the deployment pipeline in an application under test environment, testing includes: running a set of tests on the plurality of code changes until a subset of the plurality of code changes pass the set of tests, and removing at least one of the plurality of code changes from the subset each time the subset fails the set of tests; and determining the failed code change based on the subset that passes the set of tests. REJECTIONS The Examiner rejected claims 1-3, 5, 6, 9-11, 15-18, and 20 under 35 U.S.C. § I03(a) as being unpatentable over Henderson et al (US 2005/0102653 Al, pub. May 12, 2005) (hereinafter "Henderson") and Anderson et al (US 2014/0189641 Al, pub. July 3, 2014) (hereinafter "Anderson"). (Final Act. 2.) The Examiner rejected claim 4 under 35 U.S.C. § I03(a) as being unpatentable over Henderson, Anderson, and Benson et al (US 2005/0160078 Al, pub. July 21, 2005) (hereinafter "Benson"). (Final Act. 14.) 2 Appeal2018-003832 Application 14/374,249 The Examiner rejected claims 7, 8, 12, and 13 under 35 U.S.C. § I03(a) as being unpatentable over Henderson, Anderson, and Apuzzo et al (US 2003/0037314 Al, pub. Feb. 20, 2003) (hereinafter "Apuzzo"). (Final Act. 16.) The Examiner rejected claim 14 under 35 U.S.C. § I03(a) as being unpatentable over Henderson, Anderson, and Agarwal et al (US 2010/0005341 Al, pub. Jan. 7, 2010) (hereinafter "Agarwal"). (Final Act. 19.) The Examiner rejected claim 19 under 35 U.S.C. § I03(a) as being unpatentable over Henderson, Anderson, and Leung (US 2002/0066077 Al, pub. May 30, 2002). (Final Act. 20.) ISSUES ON APPEAL Appellants' arguments in the Appeal Brief present the following issues2 : Issue One: Whether the Examiner erred in finding one of ordinary skill in the art at the time of Appellants' invention would have combined the teachings of: ( 1) Henderson and Anderson, in order to teach or suggest independent claims 1, 9, and 15 (App. Br. 7-9, Reply Br. 1-3); and (2) Henderson, Anderson, and Benson, in order to teach or suggest dependent claim 4. (App. Br. 10-11.) 2 Rather than reiterate the arguments of Appellants and the positions of the Examiner, we refer to the Appeal Brief (filed Aug. 1, 2017); the Reply Brief (filed Feb. 27, 2018); the Final Office Action (mailed Mar. 8, 2017); and the Examiner's Answer (mailed Dec. 28, 2017) for the respective details. 3 Appeal2018-003832 Application 14/374,249 Issue Two: Whether the Examiner erred in finding the combination of Henderson, Anderson, and Agarwal teaches or suggests the dependent claim 14 limitation, wherein "the decision engine automatically transmits a message identifying the failed code change." (App. Br. 11-12.) Issue Three: Whether the Examiner erred in finding the combination of Henderson, Anderson, and Agarwal teaches or suggests the dependent claim 19 limitation, a development engine to perform a test of the assembly to evaluate release of the assembly into production, wherein a failure of the test of the assembly initiates use of the test engine and the decision engine to identify the failed code change. (App. Br. 13-14.) ANALYSIS We have reviewed the Examiner's rejection in light of Appellants' arguments that the Examiner erred. We disagree with Appellants' arguments, and we adopt as our own ( 1) the pertinent findings and reasons set forth by the Examiner in the Action from which this appeal is taken (Final Act. 2-24) and (2) the corresponding findings and reasons set forth by the Examiner in the Examiner's Answer in response to Appellants' Appeal Brief. (Ans. 2-8.) We concur with the applicable findings and conclusions reached by the Examiner, and emphasize the following. First Issue In finding one skilled in the art at the time of Appellants' invention would have combined the teachings of Henderson and Anderson to teach or suggest independent claims 1, 9, and 15, the Examiner relies on the disclosure of Henderson of a "NewDLL" having modified sets, based on known-good sets in "GoodDLL," and testing of "TestDLL" having one set 4 Appeal2018-003832 Application 14/374,249 to be tested replaced with a known-good set. This testing procedure is repeated in order to identify defective components. (Final Act. 3--4; Henderson ,r,r 38, 29--30, 32.) The Examiner further relies on the disclosure of Anderson of a continuous deployment system in which a test can be written that checks that a particular bug has been fired, and the test can be re-run on new code changes. (Final Act. 4--5; Anderson ,r,r 16, 15.) Appellants argue that in Anderson, software tests are performed for purposes of evaluating whether to continue with the product deployment or abandon the deployment. One of ordinary skill in the art would not glean from Anderson's disclosure the concept of identifying a particular part of code, or a code change, that leads to a testing error or any advantage in Anderson's automated deployment that would be gained from this identification. (App. Br. 8, citing Anderson ,r,r 67---68.) Appellants further contend that Anderson's reference to performing "multiple tests" leads to debugging that "would not be performed as part of Anderson's continuous deployment system," and the modification of Anderson in view of Henderson is "impermissible hindsight." (Reply Br. 3, citing Anderson ,r 68.) Appellants make similar arguments regarding the rejection of dependent claim 4. (App. Br. 10-11.) We are not persuaded of Examiner error. The Examiner finds, and we agree, that the combination of Henderson and Anderson would "allow a continuous deployment system to manage and track[] releases of software code and testing the changes to the source code, during each release." (Final Act. 5, citing Anderson ,r,r 15-16.) Anderson teaches a deployment system in which errors are corrected, as Anderson "teaches rolling back to the previously deployed software package due to a test fail" (Ans. 5, citing 5 Appeal2018-003832 Application 14/374,249 Anderson ,r 7 5), indicating the system would not merely halt a deployment as Appellants contend. Appellants' arguments are further undercut by Anderson's directive that "improvements can be added to the process to allow best practices to be implemented, allowing the process to continually evolve and improve" (Anderson ,r 15, see Final Act. 4--5), which invites one of skilled in the art to consider the addition of debugging tools that further best practices. Accordingly, we sustain the Examiner's rejection of independent claims 1, 9, and 15, as well as dependent claims 2, 3, 5-8, 10-13, 16-18, and 20 not argued separately. See App. Br. 10, 14. For the same reasons, we also sustain the Examiner's rejection of dependent claim 4. Second Issue Appellants argue "Agarwal fails to disclose or render obvious that the notification identifies a failed code change" because, no particular code is identified by the regression detection routine of Agarwal, but rather, the notification merely informs the operator 100 that regression has been detected. Thus, the passage being relied on by the Final Office Action fails to disclose or render obvious, "the decision engine automatically transmits a message identifying the failed code change," as recited in claim 14. (App. Br. 12, citing Agarwal ,r 27.) Appellants further contend "there is no reason why one of skill in the art would have modified Anderson's system such that a message is automatically transmitted that identifies a failed code change." (App. Br. 12.) We are not persuaded of Examiner error. The Examiner finds that, [ Agarwal] teaches profile data, which includes program execution trace information and memory dumps that are used to analyze the regression (see paragraph [0029]). The trace 6 Appeal2018-003832 Application 14/374,249 information in the profile data identifies the code that caused the regression and the profile data location is included in the notification sent to the operator (see paragraphs [0029] - [0031 ]). Regression tests are performed on current application build (i.e. new version) and compared to results of a previous version (i.e. version that provided the baseline performance), see paragraphs [0005]-[0006]. (Ans. 6.) The Examiner concludes that "[t]he regression is the result[] of failed tests [,I 34] and the cause of the failed test and regression is a defect. As a result, [ Agarwal] teaches that the notification identifies a failed code change." (Ans. 6.) The Examiner further finds that. Anderson teaches a scenario where continuous deployment system 100 may end the deployment process due to failed test (see paragraph [0065]). Anderson also teaches rolling back to the previously deployed software package due to a test fail ( see paragraph [0075]) and that, [Agarwal] focuses on Regression testing by executing test cases on a current build of a test application (see abstract). Further, [Agarwal] teaches that the regression detection routine notifies the control computer, which in tum, notifies the operator that a regression is detected on the build (see paragraph [0027]). (Ans. 7.) The Examiner concludes that "one of skill in the art would have modified Anderson's system with [Agarwal] teaching of notifying the operator about the detected regression, to teach that a message is automatically transmitted that identifies a failed code change." (Ans. 7.) We see no error in the Examiner's detailed findings, and Appellants fail to challenge the Examiner's findings in the Reply. Accordingly, we sustain the Examiner's rejection of dependent claim 14. 7 Appeal2018-003832 Application 14/374,249 Third Issue Appellants argue that Leung fails to disclose a development engine to perform a test of an assembly to evaluate release of the assembly into production, where a failure of the test of the assembly initiates use of a test engine and a decision engine to identify a failed code change .... and that [t]here is no discussion of a failure of the test by the assembly initiating use of a test engine, failure of the test initiating use of a test engine and a decision engine, or failure of the test initiating use of a test engine and a decision engine to identify a failed code change. (App. Br. 13, citing Leung ,r 79.) We are not persuaded of Examiner error. The Examiner finds that Leung teaches the testing tool generating a driver and one or more stubs for each subroutine ( or a selected set of subroutines) under test. The driver, the stubs, and the subroutine are compiled into an executable .... (Ans. 8, citing Leung ,r 34) and finds that Leung also teaches the formation of "incrementally integrated software" which "corresponds to the claimed assembly." (Ans. 8, citing Leung ,r,r 79, 87). The Examiner further finds the combination of Leung and Anderson teach software deployment "[a]fter the integrated software passes [testing]" (Ans. 8, citing Anderson ,r 16), whereas "[i]f the test fails a failed code change is identified." (Ans. 8, citing Leung i183.) We see no error in the Examiner's detailed findings, and Appellants do not challenge the Examiner's findings in the Reply. Accordingly, we sustain the Examiner's rejection of dependent claim 19. 8 Appeal2018-003832 Application 14/374,249 DECISION The Examiner's decision rejecting claims 1-20 is affirmed. No time period for taking any subsequent action in connection with this appeal may be extended under 3 7 C.F .R. § 1.13 6( a )(1 )(iv). AFFIRMED 9 Copy with citationCopy as parenthetical citation