In software testing, test automation is the use of special software (separate from the software being tested) to control the execution of tests and the comparison of actual outcomes with predicted outcomes.Test automation can automate some repetitive but necessary tasks in a formalized testing process already in place, or add additional testing that would be difficult to perform manually. Test automation is critical for continuous delivery and continuous testing.

Why automate testing? Automated tests can run fast and frequently, which is cost-effective for software products with a long maintenance life. When testing in an agile environment, the ability to quickly react to ever-changing software systems and requirements is necessary. New test cases are generated continuously and can be added to existing automation in parallel to the development of the software itself.

For automation we are using following products:

  • Microsoft Coded UI – Provides automated tests that drive application through its user interface (UI), known as Coded UI Tests (CUITs). These tests include functional testing of the UI controls. These let us verify that the whole application, including its user interface, is functioning correctly.MS Coded UI is used by QA team to automate regression testing of whole application on every build deliverable.
  • Microsoft Test Manager (MTM) – Useful to manage manual tests, facilitates to create manual test plans, run them and record the results.MTM stores test plans built by QA team and results on Team Foundation Server (TFS).
  • Microsoft Unit Testing – MS Unit Testing is a server side unit testing framework by Microsoft. The primary goal of unit testing is to take the smallest piece of testable software in the application, isolate it from the remainder of the code, and determine whether it behaves exactly as we expect.To support Test Driven Development (TDD), developers build Unit tests for the server side code using Microsoft Unit Testing within the MS Visual Studio.
  • QUnit – QUnit is a powerful JavaScript unit testing framework for unit testing the client side code and is capable of testing any generic JavaScript code including JQuery and JQuery-UI code.To support Test Driven Development (TDD), developers build Unit tests for the client side code using QUnit.
  • Selenium WebDriver – Selenium WebDriver is an open source tool, used to automate web application testing to verify that it works as expected. It supports browsers such as Firefox, Chrome, IE, Safari etc. It also supports different programming languages such as C#, Java, Perl, PHP and Ruby for writing test scripts. Selenium WebDriver is platform-independent since the same code can be used on different Operating Systems like Microsoft Windows, Apple OS and Linux.