On my current contract I have been asked to investigate using TestComplete (probably 7) in conjunction with FitNesse. The idea being that TC is the "Test Driver" and Fitnesse is used as a Framework for defining Business-level-Keyword test cases.
Anyone had any experience with this?
Another angle on this - I am not too familiar with TC7 yet, in particular the new keyword driven testing aspects of it. Have many people used this for defining business level keywords? Perhaps I dont need Fitnesse if this is good?
Any details of your experience in this area would be greatly appreciated.
I recommend that you see the "Keyword Testing" help topic and other help topics mentioned in this topic and see whether TestComplete's keyword-driven testing concept suits your needs. Also, I recommend that you see the "Tests and Test Items" and "Organizing Tests" help topics to learn how TestComplete tests can be organized.
I wouldn't recommend using fitness with TestComplete/execute.
Fitness you usually write your fixtures in Java. So your mainly interacting with testcomplete/execute through the command line, which means the additional overhead of starting/restarting testcomplete/execute.
There are ways around it. You're probably better off using a keyword framework within testcomplete.
Generally, I think of all in one tools like QTP and TestComplete as tools to crank out quick tests on a GUI level to make sure everything is working before handing things to the customer. These tools are great for testing things going to the customers where in Fitness (we are using Robot Framework which does the same thing), you end up writing a lot of hooks so your java code can access the program's internals.
I recommend doing both. For core business logic if you are in a whitebox testing environment. Use Fitness (or some other acceptance testing framework) to test the core business logic behind the GUI layer. These tests will run much faster as you can avoid the rendering overhead. Then supplement with TestComplete for testing (involving the GUI) to make sure customer facing functionality isn't broken.