title: How to Write Automated System Tests with C#?
body: <p>We have an <strong>old asp.net application</strong> that has no unit tests, integration tests, component tests or UI/functional tests - surprise!</p>
  
  <p>Now, we'd like to introduce some <strong>automated system testing</strong> that tests the functionality so that when something breaks in the app we immediately get notified!</p>
  
  <p>For example, the <strong>user registration form</strong> where user can enter username and email address and register in the system.</p>
  
  <p>It's too late/expensive to introduce unit tests (as the current design is not unit testable) so the most important thing now is writing Automated System Tests.</p>
  
  <p>For example, we'd like to write a test in <strong>C#</strong> which opens the browser, enters the data to the text boxes, clicks on the Register button then our test checks whether the data is inserted into the database and whether a verification email is sent and at the end whether a proper message is shown to the user (of course this is only the main scenarios and there would be numerous special cases). Basically not testing isolated units but testing whether the whole process works!</p>
  
  <p>So, what tool could I use to help me write such test and automating it?</p>
  
  <p>What approach would you recommend to use?</p>
  
  <p>I had a look at Selenium and Fitnesse but they don't seem to allow me write C# code to test database, etc. I looked at the SoapUI/LoadUI same issue. WatiN could possibly be used, not sure. any thoughts/recommendations are very much appreciated.</p>
  
  <p>Hope the question is clear.</p>
  
  <p>Many thanks,</p>