We should perform a careful analysis of the application when deciding which tests warrant automation and which should executed manually.
Here some examples of tests that could be automated.
- Tests that are executed more than once. By contrast, a test that is executed only once is often not worth automating.
 - Tests that evaluate high-risk conditions. Low-risk factors may not be worth testing by automated means.
 - Tests that are run on a regular basis. Example includes smoke (build verification) tests, regression tests, and test that include many simple and repetitive steps and must be conducted repeatedly.
 - Tests that would be impossible, or prohibitively expensive, to perform manually. For example, during stress and performance testing, during memory leak detection, or path-coverage testing.
 - Tests that have multiple data values for the same actions (data-driven tests).
 - Baseline tests to be run on different configurations.
 - Tests with predictable results.
 - Tests on a system that is some what stable, with functionality, implementation that are not constantly changing.