1

In a .net development environment, I'm looking to implement some regression testing scripts to do some end-to-end (/blackbox) testing on a fully setup server based application, which will end up being fairly complex.

My initial thought was to roll my own powershell scripts/XML configuration of the steps. But I wanted to do some analysis to see if there is anything out there I could reuse, and perhaps what anyone else did which might prove to be a best practice (which I haven't found, as of yet).

I realised I could potentially just use an MSBuild project, along with the MSBuildExtensions and community tasks, but I've found these scripts to be harder to modify/maintain in the long run.

An example of some of the job steps I'd be coding for one of the applications:

  • Copy files to certain directories and trigger a service to load
  • Wait for the service to load files (checking sql tables for job completion)
  • Truncating tables (etc, on sql databases)
  • Comparing sql table output with expected results
  • Parsing log files
  • and so on

Some pretty simple powershell would be able to cater for most of these. I'd be interested on opinions: what do you use if you have some regression style end-to-end testing? Rolling your own in order to have a fairly simple, and specific implementation, or use a third part tool (like MSBuild, or something else)?

JamesDill
  • 1,857
  • 1
  • 18
  • 22

1 Answers1

0

Choosing the right tool for the job is often driven by personal preference but it really should be driven by effectiveness vs. maintainability.

MSBuild excels in task reuse and dependency chain resolution. PowerShell shines in compressing complex processes into a set of few elegant commands. In your scenario I'd probably use PowerShell for the integration-oriented DSLs of job queuing, database, IO. I'd keep MSBuild for producing the build artifacts.

No need for third party tool unless it's the top dog in its field and the price is right (=open source or already purchased by your company).

KMoraz
  • 14,004
  • 3
  • 49
  • 82