Being a software tester you might have come across various situations where automation is not advantageous at all and manual testing works better in those situations.
Some examples where manual testing is preferred over automation are:
- UI keeps on changing very frequently. If automation is done for this UI it needs to be changed every time the UI is changed.
- You have a tight deadline to release the software and so there is very less time to automate so you will prefer to do manual testing and release the software.
So you can see that automation does not solve the problem always, however there are certain situations where automation is very helpful for quality software delivery. Some of the examples where automation is helpful are as follows:
- Regression testing: Automation is very helpful in regression testing because the regression test suite needs to be executed every time there is some defect fix to find out that no new issue has been introduced due to that fix. So regression test suite is the best candidate for automation.
- Automation supports Agile testing and eXtreme programming: In Agile development there are time boxed iterations of usually 2-3 weeks in which a working software is developed, in each iteration some new features are incorporated which requires full testing of the software, in such situation automation helps to test the whole software in each sprint.
- Automation provides rapid feedback to developers during the software development process: Automation does continuous integration and nightly builds which provides daily feedback to developers if anything breaks in nightly build.
- Automation is also helpful where there are large number of iterations of test case execution.
- Automation helps to find out the defects missed by manual testing.