Acceptance Testing of Flex applications
Acceptance Testing is a fundamental practice: it gives you confidence that your application behaves as expected from the end customer point of view.
In the Flex world there are some projects that are currently emerging in the Acceptance Testing space, each one with specific advantages and weak points.
Let’s have a look at some of these.
FlexMonkey
FlexMonkey Open source but based on closed source API (the Automation API are released only with FlexBuilder and not with the open source Flex SDK), it’s based on the record-playback approach and as far I have seen is not easily integrable with a Continuous Integration server.
Flash-Selenium
Flash-Selenium is open source, and it works as an extension of SeleniumRC; the tests can be written in Java, .Net, Ruby or Phyton and the integration with a Continuous Integration server is therefore quite out of the box. SeleniumFLex API SeleniumFlex is another open source project. it’s an extension of SeleniumIDE, test should be written in Selenese.
FunFX
FunFX is based on the automation API (therefore you can use it only if you’re owner of FlexBuilder), the fixtures are written in Ruby.
At the moment there isn’t a de-facto solution: the community is quite dynamic and all these different tools are trying to find their space.
Which one is my favourite ?
It’s really hard to say, I think that the context matters a lot. I don’t like solutions that require the Automation API simply because this hooks you to a vendor just for testing; it’s also true that the pure open source solutions require some extra-hack (like exposing methods through ExternalInterface) that is less than ideal.
Looking at the two pure open source tools I like Flash-Selenium for its out of the box integration with Continuous Integration server, while I prefer Selenium-Flex approach for handling the necessary ExternalInterface configuration.