Wednesday, 25 January 2012

Automated System/Functional/UI Testing

What tools could we use to create automated system tests using C# code? Or sometimes to record/replay UI activity?

Note: these are just my findings so far, they may change...

Test Complete

  • Commercial but very good

WatiN:
  • Free
  • Using which you can write C# test code and interact with the UI elements; entering text, clicking, etc.
  • Very easy to use for a C# Developer within Visual Studio.
  • Multibrowser support including IE.
  • Has no IDE.
  • Packaged with Nugget.
  • No native xpath support unlike Selenium.
  • Doesn't support record/replay natively; however, you could try using WatiN Test Recorder to record and replay your site by IE 6.0! Therefore, Selenium is better in this sense.
  • Unlike Selenium, it automatically waits for the page to finish loading, and can detect when it's finished loading.
Selenium WebDriver:
Sahi:
Visual Studio Ultimate/Premium Edition:

LoadUI/SoapUI
  • Allows load testing functional behaviour and measure performance.
  • Allows us to record and replay user activity on the page
JMeter:
  • Good for load and performance testing

Thursday, 5 January 2012

Code Reviewing

Who does it?
  • The tech expert within the team or
  • All team members?
When is it done?
  • Every time a code is checked in by a team member or
  • Only once or twice a week at a certain time
Metrics?
  • Check whether the code design could be improved or is good enough?
    • Readability
    • Maintainability
    • Low coupling
    • Reusability
    • ...
  • Check whether the code performance could be improved?
  • Check for any Code Smells
    • Code duplication
    • Long methods
    • Large classes
    • ...
How is it done?
  • Manually or
  • By a tool depending on your source control e.g. TFS or Subversion
Tools?