Why do we need to test GUIs?
Testing GUIs can make the entire system safer and more robust. Any GUI, even one providing only the simplest capabilities, likely encloses some level of complexity. Any complexity in software must be tested because code without tests is a potential source of bugs. A well-tested application has a greater chance of success.
GUI testing is also essential during application maintenance. During this phase, code might be refactored frequently to improve design, and this code often encloses great portions of the user interface. Having a solid test suite that includes GUI code can give us confidence that we are not inadvertently introducing bugs.
FEST-JavaFX is currently under development. The planned features for our first release are:
- Maven plugin for compiling JavaFX sources
- Simulation of user interaction with a GUI (e.g. mouse and keyboard input, drag 'n drop)
- Reliable GUI component lookup (by type, by id or custom search criteria)
- Support for all standard JavaFX components
- Compact and powerful API for creation and maintenance of functional GUI tests
- Support for regular expression matching
- Ability to embed screenshots of failed GUI tests in HTML test reports
- Can be used with either TestNG or JUnit