Context:
There are many product based applications developed using Oracle Forms and Java thick-client architecture, and most of them are accessible via Citrix (varies from Organization to Organization). Some products have stringent security access policies, and their product owners (Organizations) generally do not allow installing any test automation tools in their product's host server. They provide access to their products only through multi-channel Citrix layers. Example: Oracle Health EHR. These put a lot of limitation to the Test Architect/Principal Engineer/Test Manager, whose given task is to prepare test automation strategy for these types of product applications.
Strategy:
First step is to have a series of dialogues with the organization who owns the product to work out any possibility of getting the required test automation tools installed in the test server of the product. Due to complexity of multi channel Citrix layers, we may need to install some test automation agents at each layer. For example, UiPath remote runtime and OpenText UFT's Citrix Plugin. In case of Robot Framework, we need Python, PIP and all supported libraries to be installed on the Citrix server. Same applies to Test Complete tool.
Second step, if we are at this point, then definitely we did not get much support from the product's owner organization, so we need to rely on relatively unpopular test automation approach, which is Image Recognition. There are many trendy test automation tools that provide image recognition capability. Following are some important factors to consider:
1. Does the existing tools in my organization's inventory have image based testing capabilities?
2. Do we have any budget allocated to your project plan for procuring any new test automation tool? (i.e. Eggplant, a renowned tool for Image Based testing that comes with licensing. UiPath Computer Vision may look appealing, but it has license costs associated and you may need to override the default OCR library, in case the text search and extraction does not fit your need.)
3. Are there Open Source tools that can fit your existing Test Automation ecosystem? (For example: if your company's test automation ecosystem does not use Java or Python backed hybrid test automation frameworks, then you cannot easily integrate SikuliX or Open-CV).
Answer to this question will lead to:
a. How long does it take to build a test framework from scratch to use these open source libraries?
b. Do we have the required skills within our existing talent pool?
c. Do we have any budget allocated to hire an expert (Contract / Permanent Role)?
d. How long will be the learning curve?
Third step, how are you going to build a repository of Ui Object's images? This is the most important question, since, many of the Oracle forms have common Ui Objects and if you follow kind of page object model (POM), then you will end up building a huge repository that will contain duplicate images. So, defining an image capture strategy is quintessential. Capture an Ui Object's image in such a way that the same could be reusable across the application.
Fourth step, how are you going to identify the objects uniquely in the Ui? Sometimes, you may find, some Ui Object's are repetitive in the forms. Example, there could be two fields with label "First name", under two different sections on the same form. In these cases a conceptual strategy of an anchor comes into play. For example, we could use the section headers as unique anchors to define a reduced region (to the left, right, top or bottom from the anchor image) on the screen in which we should search for an image for uniqueness.
Final step, how we are going to sale our strategy to the project stakeholders? While creating the test automation strategy, always keep in mind, the amount of efforts invested on test automation should reduce the manual test efforts gradually, once it is rolled out for usage. This ROI factor always determines the fate of test automation activities.
I hope this is helpful to you, please share your opinions in the comments section. Always refer to the official websites of the tools mentioned in this article.