Test automation is used to automate test execution, compare outcomes to expected results, and reduce costs and risks of changes. Some tests like repetitive tasks can be automated, as well as tests that are difficult to do manually. Tools like TestStack, SpecFlow, CodeUI, and QTP can automate different types of tests, from unit and component tests to validating the final product and testing user interfaces. These tools automate testing across platforms like .NET, Silverlight, and Java applications.