How VNC Robot-T Plan Robot and EggPlant May Not Be Best Solution?
VNC Robot is now TPlan robot. In 2009,T Plan acquired VNC Robot and renamed as Tplan Robot. It comes with image collection features. eggPlant was acquired by Test Plant(2008) and in 2011, it was awarded a parent that “pertains generally to computer systems,and more particularly to methods and techniques for monitoring,testing and controlling the operations of one or more computers through communication links”.This post talks about EggPlant.
Coordinate based testing is not equal to image based testing. Coordinate based testing is particularly useless as it may fail if it is changing. The eggPlant’s image comparison is very much sophisticated image search algorithms to find the image anywhere on the screen.
Interestingly eggplant runs on Mac.Operating independent scripts can only be tested if we have operating system imaginable feature.EggPlant works by using the VNC to interact with GUI elements as image independent of GUI technology.
eggPlant
eggPlant is a test package that uses image analysis at its core. It checks the expected image with actual image with user defined tolerance limit for equality.
The user interface does not need to have to be a webpage.It can be anything that runs on one of the major operating systems.Everything should be tested using image analysis.
For comparing a string,eggPlant stores image of the string and saves in memory and searches that with actual.
The actual eggPlant code is written in the language called sensetalk runs on MAC.
Development in eggPlant
eggPlant is great for functional testers or business users as it requires less programming knowledge. SenseTalk is very simple language. The idea that you can somehow retrieve meaningful test data just by checking how a webpage looks. The idea behind the tool is very attractive but in practise it is quite tough to create test cases using eggPlant.
Any eggPlant script need to be run from eggPlant tool.Any function written in other language to test database or any other functions written in any other language, if placed in eggPlant function library, eggPlant has compatibility issue. So be careful while working in a mixed mode way.
Adopting of smallTalk is a big headache for engineers who actually have coding experience in other language. However smalltalk is somewhat similar to Vbscript language.
String aWord=null; for(String words:LinesOfWords){ if(words.contain("Test")) { aWord=words; } }
Can be written as
set aWord to "" repeat with each words of LinesOfWords If "Test" in the words then put words into aWord End If End Repeat
How to start automation using VNC robot and eggplant?
- Start by identifying the requirements or objectives for the automation to ensure that our solution is directed towards the right requirements.
- A better automation script should be operating system independent.It should be compatible with windows,Linux,Solarics etc.
- A better automation testing is independent of GUI technologies. So automation must be able to handle third party application.
- Automation must be able to handle to display and non display aspect of the application.
- Automation scripts should be scalable enough to run in multiple environments.
- The tool must support requirement traceability matrix.
- A combination of tools may provide better solution to the required automation requirement scenario.
- A mix and match of tools like freeware,open source licensed and in house development tool can be best.
Shortcoming of VNC Robot and EggPlant
Above points hold good for VNC robot and eggPlant. However, eggPlant can not handle non image part of testing like backend message exchange or API kind of testing.
The different message testing depends on TCP/IP,user datagram protocol(UDP),common object request broker architecture(CORBA). So picking a tool for testing so many protocols is tough.
Tool features that look great at first sight ,may not be so good when we try to use them in production. Do pilot carefully.
Using tool that forces you to write script in tool’s language(like eggPlant we need to write in senseTalk) create great noise in automation.
Why we need to be careful while using VNC and eggPlant?
- As none of the automator will have detailed knowledge about the tool or language. It triggers high learning curve.
- Even with small knowledge if we perform code review that will not be much productive.
- Many a times code review becomes a bottleneck as the reviewer needs to understand the code or he/she may wish to run the code to see how it is performing.
- As manual testers does not have industry coding experience(rightly so!),he/she may not be able point out correct mistakes.
- Finally like most interpreted languages,senseTalk becomes increasingly cumbersome as size of the application grows. These language are good for any small task or small scale project. Otherwise it is very tough to find even a smallest bug in the code.
Problem with image based comparison
Image comparison is one of the slowest verification that often leads to make the execution time huge. It is like to search a String and these tools needs to check every pixels on the screen for a possible match.
Even though UFT, eggPlant, Sikuli, allows the automator to limit the search area, they helps in some cases but majorly they needs to follow pixel by pixel. approach.
Not only the speed gets hampared but also test cases become risky too. If the size,zoom level of the browser changes,the test is likely to break. It may lead to a improper bug. Making these thing worse,different browser will interpret applications differently and presents the same thing in a slightly different manners (space between characters, underline, thickness of the letters).
So we need to make images for each and every browsers. Otherwise the tool will fail. Cross browser testing becomes impossible.
These tools capture the images and stores in memory and try to capture screen with the stored image. Hence memory usage will be high for these tools.
However lots of issues can be solved by tweaking the image tolerance. But these are too much effort for automator.
Lastly, using these tools can lead to serious maintenance issues. Testers(functional and business) can not maintain the script. Automation engineers who designed the test has to take burden to maintain the scripts. That impacts the ROI in long run.