One of the biggest time consuming and productivity killer task for automation engineers is the time when they are executing their scripts. Not only scripts take long time to run but also while they are running, we cannot do any thing else. This is a desire of every automation engineer that he could do some other work (like developing other test cases) while the previous test case executes.
Same case happens with me and I found a solution for that. Since coded UI tests require an active desktop screen to execute it, there are three ways to achieve this.
- Either you install visual studio on your development machine and install Test Agent on any other machine where you want to execute tests. When you will execute a test case on your development machine, it will be executed on the test machine PC and development machine will remain free for doing other tasks. (This approach requires another PC. That means it is an expensive approach)
- You can set up a VM machine of Windows 7 (or any other) on your development machine. On the VM machine install Test Agent. When you will execute a test case on your development machine, it will be executed on the VM machine and development machine will remain free for doing other tasks. (This approach is less expensive)
- You can set up a VM machine of Windows 7 (or any other) on your development machine. On the VM machine install Visual Studio 2010 and get the latest version of your source code there with the help of TFS. In this approach you will have two benefits.
- You will be able to execute test cases right from VM machine
- You will be able to develop or modify test cases in the VM machine.
In approach number 3, you can run the test cases from visual studio inside VM machine and minimize that window. The code will be executed while this VM window is minimized. You will be free to do other tasks as well. I personally follow approach number 3. It allows me to change my code in both environments and by using TFS I am also able to check in / check out my code at both locations and code remains always updated.
What approach do you follow? and what are the benefits. I will love to hear it out.