Take the 2-minute tour ×
Software Quality Assurance & Testing Stack Exchange is a question and answer site for software quality control experts, automation engineers, and software testers. It's 100% free, no registration required.

As a software tester looking at different automated testing solutions, I need a tool that will interact with a heavily graphical interface such as a flash website or application.

I want the tool to interact in the way a user would - the flash application I am testing is a children's game. Users look for cues onscreen that indicate that you can interact with elements in-game, and so I would like to test from this perspective as opposed to using knowledge of the game's implementation.

Other than the cost of image-recapture, what other benefits and draw-backs can you see in this?

Will Eggplant fulfil this role? What tips and hints can you give on getting the best out of it?

Are there any better tools for this purpose? (Objectively - I will need a list of pros and cons)

share|improve this question
    
Could we please get an eggplant tag, and possibly one for sensetalk? –  theheadofabroom Nov 28 '11 at 14:21
    
It's really important to clarify that automated GUI testing does NOT necessarily involve image capture/recognition. Can you clarify why you think you need that functionality? –  Stephen Gross Nov 28 '11 at 21:12
add comment

3 Answers

up vote 3 down vote accepted

It should be noted there is a FOSS alternative to Eggplant: Sikuli. We have teams that use both in our organization. I would not claim Sikuli is as powerful or up to the level of Eggplant, but if your needs are relatively simple it is worth a look. Also it is simply a Java library, so it can be integrated with other tools quite easily. We use Jython primarly.

share|improve this answer
    
You say it is not as powerful - what are the pros and cons? For me jython would be a huge pro over sensetalk, as I am a python journeyman, and our stack is mainly JVM on the backend. –  theheadofabroom Dec 1 '11 at 10:57
    
The image matching tools are not quite as sophisticated, and OCR does not work as well. There is no capture/playback (some would not regard this as a loss. Frankly if you are a python guy and aren't into sensetalk, spend a few hours with it. –  DMW Dec 2 '11 at 22:30
    
Not as sophisticated as in they are more sensitive to change, or not as sophisticated as in there are less features for working with them? –  theheadofabroom Dec 5 '11 at 10:09
    
I actually use sikuli currently, via some networked bindings I've developed for robotframework (server, client) –  theheadofabroom Jun 7 '13 at 11:48
add comment

Eggplant's image capture and recognition is very good - the best I have ever come across. There are also some handy tricks you can use where you point it to a folder full of images and it will tell you if, where, and which it found one of them.

Hints and tips:

  1. While the image-recognition algorithm has some tolerance for images that do not exactly match the source image, this tolerance is low. Capture as small an image as is possible while keeping it unique to the on-screen element you need to look for or click on. For animations or large images that are often partially obscured, creating a set of images that match various parts of the larger image, or various frames of the animation will often server you well, and it is always possible to discover which image was the one found.

  2. For fast-moving sequences where you need to find a key-frame it can be difficult to capture what you are looking for - disconnect the vnc session and then click 'Show Window' on the connection list - you will have a freeze-frame of the screen at the moment you disconnected, from which you can capture a selection of images at your leisure.

  3. It can sometimes be desirable to capture images that are chosen dynamically. The CaptureScreen command will take the full screen and place it in the test results, however you can specify a name and location for this image, as well as only capturing a small area on-screen. This can make it easier to refer back to these images later.

  4. For dynamic applications is can be difficult to predict the exact location of an image you wish to capture on the fly - Sensetalk has good vector addition and subtraction which you can use to give relative positions to captured images on-screen.

share|improve this answer
add comment

We had used Eggplant for comparasion of Flash Player created images (in Macromedia) on both Mac and Windows. It was an excellent tool for such image comparasions and worked very well for pixel-by-pixel and overall picture/image comparasion tool also.

I would overall agree with @BiggAl 's summary and also recommend the use for Web Based images and dynamically rendered images also. (we were using the dynamic rendering/checking utility for Eggplant with Flash Player generated images and static images which were created using a photo editing tool.)

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.