Manual vs. Automated Tests
The question here is, which tests should be automated and which tests are better executed as manual tests. There are many pros and cons regarding the kind of testing and here I want to cover the most important ones to help decide, in which scenarios manual tests are the better choice and where automated tests can help to achieve a faster time to market.
Advantages of Manual Testing
When a test needs to be run very rarely, than a manual test is less expensive (comparing to the costs of test automation). Test types like User Acceptance Test, Installation Test, Localization Test or Accessibility Test are often manual. Manual tests are easy to learn for people new to testing, as no coding skills are necessary. Manual testers often find more defects, as they´re trying more different scenarios than automated tests. Manual testers should study the software documentation beforehand in order to be able to follow the documented test cases.
Manual Tests
- are performed by human interaction,
- include User Acceptance Test which are always manual by subject matter experts or real users,
- is easy to learn for starters in a project and new to testing,
- should be also documented in a test plan,
- must follow a written test plan with specified test cases derived from requirements,
- are necessary in every software project, 100% automation is a myth.
Advantages of Automated Testing
Test Automation can reduce your testing time significantly, especially when you need to run regression tests. Regression Tests should be run after every application change to prove, whether existing functionality is not broken. Regression tests are either unit or integration tests, which run directly after a new build in the build pipeline.
A test is worth considering an automation, when you need to perform the test more than three times.
Automated Tests
- are performed by a test automation tool,
- run many times faster than manual tests performed by a human user,
- can be repeated as many times you want,
- eliminate the risk of human errors,
- can be reused for many different versions of the application,
- a suite of tests can cover testing many features in the application,
- Load and Performance tests are always automated,
- save a lot of time and money and creates a good ROI,
- needs testers with coding skills, as the tests must be written in a test language with a test framework.
When Test Automation does not work
- Testers do not have the skills to write tests,
- Tests are not stable and deliver different results on the same application,
- Using the wrong tools,
- Unrealistic expectations regarding test automation,
- The application changes very often, old tests are not repeatable after a change and must be rewritten,
- Test automation takes long and the test is run only once