What is its job?
 
It helps you avoiding surprising side effects and “undocumented features” that can appear within a new released Swing application.
 
Who needs jDiffChaser? And why?
 
Applications that emphasizes color and font size roles. Applications for which every visual effect (background, layout, font, background) is important because it can have a business meaning. Imagine air traffic or rail control systems. But jDiffChaser also does a nice job for less critical applications that are subject to side effects because of huge components reusing. And one possible last usage of jDiffChaser: using it as a feedback tool to list every visual modification between two versions.
 
Is somebody using it?
 
Yes, massively every nights since spring 2006 in our team to find visual regressions in new versions of a collaborative air traffic control related application. We can say that it helped us to find more that ten major bugs during last year. We also used it as an “easy to read” listing of visual improvements.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Huh, why visual comparison?
 
Do you already have experimented the “...” appearing in your jButton text? You know, when your button is just to little to display the whole text the right way. We needed to have a way to automatically detect such a “visual” bug. Many “non-visual” GUI test frameworks assert that the button text is “Cancel”  but none can detect that the visible text is unfortunately “Can...”. jDiffChaser helps you to do so as long as it’s got a reference: a human validated version of the GUI.
 
So I can forget all other GUI testing frameworks?
 
Don’t do that! For a given problem, use the right tool. Functional testing, data testing, unit testing are covered by GUI testing packages such as Abbot, UISpec4J, Jemmy and others. Testing the rendering of your application and finding the possible regressions of it requires jDiffChaser.
 
You told us about two scenarios playing mode. Any detail?
 
jDiffChaser scenarios playing mode can be sequential or parallel, depending on your application behavior. Here are two figures detailing those modes.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Now that you had been introduced to jDiffChaser, don’t hesitate to go to the sourceforge site of it and download the latest archive containing a “ready to run” example and the latest User’s Manual.
 
‘Hope jDiffChaser will help some of you!
 
 
...GUI regression happens.
 
    jDiffChaser is a Java Open Source Software that automates visual GUI comparisons between two versions of a Swing application.
 
    jDiffChaser plays previously recorded scenarios and takes a screenshot of the last production version GUI rendering and another screenshot  of the current development version. Then it compares both screens, finds the differences between them and lists all in a html report. Of course you can define zones to ignore during comparisons.
 
    Scenarios can be played locally on a single host, that means sequentially, or they can be played at the same time on two hosts when real time data is needed by the tested application.
 
 
 
 
 
The videos
 
Parallel mode
 
 
Recording
 
 
Testing scenario
 
 
The screenshots
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SourceForge.net Logo