Notice of Pre-AIA or AIA Status
1. The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
2. This is the initial office action based on the application filed on June 05th, 2023, which claims 1-20 are presented for examination.
Status of Claims
3. Claims 1-20 are pending, of which claims, of which claim 1, 8 and 15 are in independent form.
Priority
4. No priority has been considered for the instant application.
Information Disclosure Statement
5. Information disclosure statement filed on 06/05/2023, has been reviewed and considered by Examiner.
The Office's Note:
6. The Office has cited particular paragraphs / columns and line numbers in the reference(s) applied 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(s), 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 cited passages as taught by the prior art or relied upon by the Examiner.
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.
7. Claims 1-20 are rejected under 35 U.S.C. 103 as being unpatentable over Finkelstein (US 20220365872– hereinafter Finkelstein) and further in view of Zhi (US 20220413997 – hereinafter Zhi).
Claim 1 is rejected, Finkelstein teaches a computer-implemented method, comprising:
analyzing document object model code for generating locators of elements of a web page(Finkelstein, US 20220365872, para [0023-0025], The disclosed implementations may include a method for implementing a UI test automation model and may include receiving, by a server computing system, a document object model (DOM) associated with a web application, the web application including one or more web pages. Para [0046-0049], A UI element on a web page may be located using a locator which may be configured to include a variable associated with the UI element. A test developer may use the variables to develop test scripts. For example, a test script may include code to locate a variable associated with a UI element, and interaction with the UI element may be simulated using test input provided by the test script.);
outputting the locators visibly on a user interface displaying the web page (Finkelstein, para [0046-0049], A UI element on a web page may be located using a locator which may be configured to include a variable associated with the UI element. A test developer may use the variables to develop test scripts. For example, a test script may include code to locate a variable associated with a UI element, and interaction with the UI element may be simulated using test input provided by the test script.);
generating a page object code template of the web page(Finkelstein, para [0017-0018], In some implementations, a user interface (UI) test automation model is disclosed. The UI test automation model (also referred to as UTAM) may include using a neural network configured to receive data associated with UI codes and generate generic page object representation based on a page object model. The generic page object representation may be generated using a data interchange format. One example of such data interchange format is JavaScript Object Notation (JSON). A page object compiler may be configured to receive the generic page object representation and generate page objects in different programming languages. The page objects may then become available to test developers to generate test scripts and test the UI associated with the UI codes. Para [0023-0025].);
receiving, from a user, mappings of the elements and/or the locators to page object variables(Finkelstein, para [0046-0049], The page object model may be used to enhance test maintenance and reduce code duplication for test scripts. Using the page object model, each web page of the web application may be represented as a page object class, and the UI elements (e.g., login button element, userid element, password element, etc.) on a web page may be defined as variables on the page object class. For example, there may be a page object class for a home page, and there may be a different page object class for a login page. A UI element on a web page may be located using a locator which may be configured to include a variable associated with the UI element. A test developer may use the variables to develop test scripts. For example, a test script may include code to locate a variable associated with a UI element, and interaction with the UI element may be simulated using test input provided by the test script. Typically, the page objects associated with the Selenium web driver framework are generated using a programming language such as, for example, Java.);
outputting representations of the mappings visibly on the user interface displaying the web page(Finkelstein, para [0046-0049], The page object model may be used to enhance test maintenance and reduce code duplication for test scripts. Using the page object model, each web page of the web application may be represented as a page object class, and the UI elements (e.g., login button element, userid element, password element, etc.) on a web page may be defined as variables on the page object class. For example, there may be a page object class for a home page, and there may be a different page object class for a login page. A UI element on a web page may be located using a locator which may be configured to include a variable associated with the UI element. A test developer may use the variables to develop test scripts. For example, a test script may include code to locate a variable associated with a UI element, and interaction with the UI element may be simulated using test input provided by the test script. Typically, the page objects associated with the Selenium web driver framework are generated using a programming language such as, for example, Java.);
receiving, from the user, mappings from page areas of the web page to page object functions(Finkelstein, para [0046-0049]. Para [0086], FIG. 5 shows an example of a page object compiler that may be used to compile the generic page object representation, in accordance with some implementations. A page object compiler 505 may be used to compile a generic page object representation 315 to generate page objects 510, 515 and 520 in different programming languages. The page object compiler 505 may use the grammar 410 to generate the page objects 510, 515 and 520. For example, the page objects 510 may be generated using Java, the page objects 515 may be generated in JavaScript, and the page objects 520 may be generated in C++. The page object compiler 505 may generate methods that the test developer may chain to select elements. Each of the page objects 510, 515 and 520 may then be packaged together, stored and distributed to developers to develop test scripts to test the web application or component. The test scripts may be developed using a programming language (e.g., as Java, JavaScript, or C++) similar to the programming language associated with the page object generated by the page object compiler 505. The test scripts may be developed using the same programming language as the programing language used to develop the web application. The test scripts may be developed using a test automation framework, such as, for example, Selenium framework.);
outputting representations of the mappings from the page areas of the web page to the page object functions visibly on the user interface displaying the web page (Finkelstein, para [0046-0049]. Para [0086], FIG. 5 shows an example of a page object compiler that may be used to compile the generic page object representation, in accordance with some implementations. A page object compiler 505 may be used to compile a generic page object representation 315 to generate page objects 510, 515 and 520 in different programming languages. The page object compiler 505 may use the grammar 410 to generate the page objects 510, 515 and 520. For example, the page objects 510 may be generated using Java, the page objects 515 may be generated in JavaScript, and the page objects 520 may be generated in C++. The page object compiler 505 may generate methods that the test developer may chain to select elements. Each of the page objects 510, 515 and 520 may then be packaged together, stored and distributed to developers to develop test scripts to test the web application or component. The test scripts may be developed using a programming language (e.g., as Java, JavaScript, or C++) similar to the programming language associated with the page object generated by the page object compiler 505. The test scripts may be developed using the same programming language as the programing language used to develop the web application. The test scripts may be developed using a test automation framework, such as, for example, Selenium framework. Para [0088-0090].); and
rendering code references on the user interface displaying the web page (Finkelstein, para [0086-0088], FIG. 6 is an example diagram of a continuous integration (CI) pipeline that includes using the UI test automation model, in accordance with some implementations. As shown in the CI pipeline 600, the generic page object representations may be developed or authored by developers or by a neural network for their components at block 605. The generic page object representations may be authored using JSON. The JSON generic page object representations may be compiled by a page object compiler into runnable codes at block 610. The runnable codes may be packaged or aggregated together and published as artifacts at block 615. For example, the runnable codes may be packaged together using Java Archive (JAR) file format. The runnable codes may be downloaded from a repository by test developers to use with test scripts to test the UI associated with the components at block 620. For example, the CI pipeline 600 may be implemented using Jenkins, an open source project for automation server. Fig. 7 and para [0090], At block 715, the generic page object representation may be compiled using a page object compiler to generate a page object in one of a plurality of programming languages. The page object compiler may transform the generic page object representation from JSON into a page object in a programming language such as, for example, JavaScript and Java. At block 720, the page objects generated by the page object compiler may be used to generate test scripts.).
The Office would like to use prior art Zhi to back up Finkelstein to further teach limitation
rendering code references on the user interface displaying the web page(Zhi, US 20220413997, para [0057-0059], Screenshot 700C of FIG. 7C includes code block 710C, corresponding to an example portion of code corresponding to the method for composing test cases shown in the flowchart illustrated in FIG. 7B. Para [0060-0062], Screenshot 800C of FIG. 8C includes code block 816C, corresponding to an example portion of code corresponding to the method for executing UI placement test cases shown in the flowchart illustrated in FIG. 8A. Para [0064-0066], code block.).
It would have obvious to one having ordinary skill in the art before the effecting filing date of the claimed invention to combine the teachings of cited references. Thus, one of ordinary skill in the art before the effecting filing date of the claimed invention would have been motivated to incorporate Zhi into Finkelstein to receive a graphical user interface with multiple graphical user interfaces, where machine learning model is trained to determine positions of groups of user interface elements, and thus enables to improve automatically through experience and with a use of data as suggested by Zhi (See abstract and summary).
Claim 2 is rejected for the reasons set forth hereinabove for claim 1, Finkelstein and Zhi teach the computer-implemented method of claim 1, comprising receiving business logic for at least some of the elements of the web page; receiving test logic for testing the business logic; invoking the test logic; mapping object variables invoked by the test logic to one of the page areas; and outputting a representation of the page area on the user interface displaying the web page(Zhi, para [0057-0059], Screenshot 700C of FIG. 7C includes code block 710C, corresponding to an example portion of code corresponding to the method for composing test cases shown in the flowchart illustrated in FIG. 7B. Para [0060-0062], Screenshot 800C of FIG. 8C includes code block 816C, corresponding to an example portion of code corresponding to the method for executing UI placement test cases shown in the flowchart illustrated in FIG. 8A. Para [0064-0066], code block.)
Claim 3 is rejected for the reasons set forth hereinabove for claim 1, Finkelstein and Zhi teach the computer-implemented method of claim 1, wherein generating the page object code template of the web page includes defining a class for a particular function enabled by a particular set of the elements, and comprising outputting a representation of the class and variables corresponding thereto (Finkelstein, para [0046-0049], The generic page object representation 315 may be generated based on one or more of the UI code 305 and the DOM 310. The generic page object representation 315 may be generated using a page object model which is a design pattern that creates object repository for web UI elements. The page object model is commonly used in Selenium web driver framework for test automation. The page object model may be used to develop page objects for web applications. The page object model may be used to enhance test maintenance and reduce code duplication for test scripts. Using the page object model, each web page of the web application may be represented as a page object class, and the UI elements (e.g., login button element, userid element, password element, etc.) on a web page may be defined as variables on the page object class. For example, there may be a page object class for a home page, and there may be a different page object class for a login page. A UI element on a web page may be located using a locator which may be configured to include a variable associated with the UI element. A test developer may use the variables to develop test scripts. For example, a test script may include code to locate a variable associated with a UI element, and interaction with the UI element may be simulated using test input provided by the test script. Typically, the page objects associated with the Selenium web driver framework are generated using a programming language such as, for example, Java.).
Claim 4 is rejected for the reasons set forth hereinabove for claim 3, Finkelstein and Zhi teach the computer-implemented method of claim 3, wherein the mappings from page areas of the web page to page object functions include a mapping from one of the page areas to the class (Finkelstein, para [0046-0049], The generic page object representation 315 may be generated based on one or more of the UI code 305 and the DOM 310. The generic page object representation 315 may be generated using a page object model which is a design pattern that creates object repository for web UI elements. The page object model is commonly used in Selenium web driver framework for test automation. The page object model may be used to develop page objects for web applications. The page object model may be used to enhance test maintenance and reduce code duplication for test scripts. Using the page object model, each web page of the web application may be represented as a page object class, and the UI elements (e.g., login button element, userid element, password element, etc.) on a web page may be defined as variables on the page object class. For example, there may be a page object class for a home page, and there may be a different page object class for a login page. A UI element on a web page may be located using a locator which may be configured to include a variable associated with the UI element. A test developer may use the variables to develop test scripts. For example, a test script may include code to locate a variable associated with a UI element, and interaction with the UI element may be simulated using test input provided by the test script. Typically, the page objects associated with the Selenium web driver framework are generated using a programming language such as, for example, Java.).
Claim 5 is rejected for the reasons set forth hereinabove for claim 4, Finkelstein and Zhi teach the computer-implemented method of claim 4, comprising receiving business logic for the elements of the web page in the class; receiving test logic for testing the business logic; invoking the test logic; mapping the object variables invoked by the test logic to one of the page areas; and outputting a representation of the page area on the user interface displaying the web page (Zhi, para [0057-0059], Screenshot 700C of FIG. 7C includes code block 710C, corresponding to an example portion of code corresponding to the method for composing test cases shown in the flowchart illustrated in FIG. 7B. Para [0060-0062], Screenshot 800C of FIG. 8C includes code block 816C, corresponding to an example portion of code corresponding to the method for executing UI placement test cases shown in the flowchart illustrated in FIG. 8A. Para [0064-0066], code block.).
Claim 6 is rejected for the reasons set forth hereinabove for claim 1, Finkelstein and Zhi teach the computer-implemented method of claim 1, comprising receiving a selection of one of the objects on the user interface; and in response to receiving the selection, outputting a code block associated with the object(Finkelstein, para [0046-0048], Each web page of a web application or component may have a corresponding generic page object representation 315 that defines the UI interface for the test scripts. When there is a release for a web application, a page object generated from a generic page object representation 315 associated with the web application may be made available. A generic page object representation 315 may be composed of other generic page object representation to match the composition of the web application. A page object compiler (described with FIG. 5) may be used to compile the generic page object representations 315 into page objects in different target programming languages. Multiple instances of the page object compiler may be used against a generic page object representation to generate page objects in multiple different languages almost at the same time. For example, two instances of the page object compiler may be used with the generic page object representation to generate a page object in JavaScript and a page object in Java. The output of the page object compiler may be runnable codes. Test scripts may be developed using the JavaScript or Java page objects generated by the page object compiler. A test automation framework may be used to perform the testing with the test scripts.).
Claim 7 is rejected for the reasons set forth hereinabove for claim 1, Finkelstein and Zhi teach the computer-implemented method of claim 1, wherein generating the page object code template of the web page includes analyzing page object model code of a web page object corresponding to the web page(Finkelstein, para [0046-0048], Each web page of a web application or component may have a corresponding generic page object representation 315 that defines the UI interface for the test scripts. When there is a release for a web application, a page object generated from a generic page object representation 315 associated with the web application may be made available. A generic page object representation 315 may be composed of other generic page object representation to match the composition of the web application. A page object compiler (described with FIG. 5) may be used to compile the generic page object representations 315 into page objects in different target programming languages. Multiple instances of the page object compiler may be used against a generic page object representation to generate page objects in multiple different languages almost at the same time. For example, two instances of the page object compiler may be used with the generic page object representation to generate a page object in JavaScript and a page object in Java. The output of the page object compiler may be runnable codes. Test scripts may be developed using the JavaScript or Java page objects generated by the page object compiler. A test automation framework may be used to perform the testing with the test scripts.).
As per claim 8, this is the medium claim to method claim 1. Therefore, it is rejected for the same reasons as above.
As per claim 9, this is the medium claim to method claim 2. Therefore, it is rejected for the same reasons as above.
As per claim 10, this is the medium claim to method claim 3. Therefore, it is rejected for the same reasons as above.
As per claim 11, this is the medium claim to method claim 4. Therefore, it is rejected for the same reasons as above.
As per claim 12, this is the medium claim to method claim 5. Therefore, it is rejected for the same reasons as above.
As per claim 13, this is the medium claim to method claim 6. Therefore, it is rejected for the same reasons as above.
As per claim 14, this is the medium claim to method claim 7. Therefore, it is rejected for the same reasons as above.
As per claim 15, this is the system claim to method claim 1. Therefore, it is rejected for the same reasons as above.
As per claim 16, this is the system claim to method claim 2. Therefore, it is rejected for the same reasons as above.
As per claim 17, this is the system claim to method claim 3. Therefore, it is rejected for the same reasons as above.
As per claim 18, this is the system claim to method claim 4. Therefore, it is rejected for the same reasons as above.
As per claim 19, this is the system claim to method claim 5. Therefore, it is rejected for the same reasons as above.
As per claim 20, this is the system claim to method claim 6. Therefore, it is rejected for the same reasons as above.
Inquiry
8. Any inquiry concerning this communication or earlier communications from the examiner should be directed to DUY KHUONG THANH NGUYEN whose telephone number is (571)270-7139. The examiner can normally be reached Monday - Friday 0800-1630.
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, Lewis Bullock can be reached on 5712723759. 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.
/DUY KHUONG T NGUYEN/ Primary Examiner, Art Unit 2199