Implementation/Script of the Acceptance Test (AT) should not rely on a particular Virtualization Technology!
It is simple to understand that AT should be easy pointed to a different Virtual Machine. Also you should have an ability to switch between Virtualization Technologies (e.g. VMWare ESXi, MSFT Hyper-V) w/o changing AT’s implementation/Script.
It looks like there are several acceptance testing frameworks (ATF) available (RobotFramework, Cucumber, Fitnesse on FIT, Fitnesse on SLIM, ZenTest, Concordion). Not sure if each of them are really ATF, but can say that Concordion is not a great choice. Fitnesse is the best ATF I know. But it’s up to you, which way to go.
We should keep in mind the High Level Testing (HLT) pattern and make our application ready for HLT. While performing HLT you interact with your application via Web Services, EXEs, “jobs” in the database. Test doubles are unacceptable in the acceptance tests:
- We don’t need to stub “customer” environment.
- We don’t want to duplicate production code in the acceptance test
- And we don’t want to have tests for nothing