views:

163

answers:

2

I am looking for a tool to integrate many different types of automation and test frameworks in order to automate fully end-to-end scenarios for testing. For example, a typical workflow might be:

  • Install an Operating System (Ghost, etc..)
  • Configure the operating system (open firewall exceptions, setup users, etc..)
  • Install Software (Visual Studio, SQL, etc..)
  • Run tests (Visual Studio Unit Tests, nUnit, custom tools, etc..)
  • Generate Reports on the above runs
  • Allow monitoring of machines, tests in progress, and scheduling of test runs

Does anybody know what system like this might exist?

+2  A: 

I would question the scope and of what you are trying to achieve here, and perhaps suggest you need to break it down into a set of well-defined test strategies with clear goals.

For example, I cannot see any reason why you would want to install an entire OS, development environment, etc every time you run unit tests. This should be something individual developers do in short iteration cycles in their own development environments.

Whereas something like deployment testing (where it could make sense to test a full user installation of your built application and host OS from scratch) would be attempted less frequently and require a completely different set of tools to those you would need to perform unit testing.

Really it's all about separating out what your trying to achieve and how you are attempting to test at any given stage of the development life-cycle and build specific standalone test processes around those scenarios. This is probably preferable to over-architecting something which does "everything" in a single work flow.

tomtheguvnor
Assume you have no money for a tester (believe me it happens). You want to spend your time coding. You write unit tests, and run them, but you have only your dev box to test on. Even if you had 15 computers sitting around, you could take the time, do a build, and then spend 6 hours installing and testing on each computer. Or you could automate it to do just like you said. Clean operating system is always good, but optional. I want to fire the build off to these computers, have it install, run stress tests, regression tests, automated test cases, etc..
esac
Also, I am talking about tying all of those "standalone test processes around those scenarios" into something more automated, less human interaction.
esac
A: 

I think for the first three steps you are looking for a way to start with a well-defined system configuration for running your tests. A virtual machine (VM) manager like VMware or Xen is the way to go for this; you can store multiple VM snapshots with the exact configurations you need for different deployments. You can also automate the launching of the VMs via an API which you can hook up to your build system.

gareth_bowles