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.