What is manual testing?
In manual testing, tests are performed manually by the tester. This is the classic method for finding bugs in an application.
What is Automated Testing?
In automated testing, testers write code that runs the tests. Special tools can be used to develop test cases and execute them . The goal is to shorten testing time.
A pre-written script with test cases is launched, which executes the tests and compares the actual data with the expected ones.
Automated testing helps reduce the time it takes to run repetitive tests. Especially useful for regression testing – when you need to make sure that new changes do not break existing functionality. Despite the fact that automation saves a lot of time at the stage of test execution, a lot of effort is spent on writing test cases.
- Manual testing is carried out by a person, autotests are performed using a pre–written script.
- Manual testing has a human factor and depends on the responsibility and experience of the tester. Automated testing eliminates the human factor when performing tests eliminates.
- Performing manual tests can be time–consuming; performing autotests can not.
- You don’t need to know programming to perform manual testing. It is almost impossible to create autotests without knowing how to write code.
Summary table of differences between manual and automated testing
|Sign||Automated testing||Manual testing|
|Definition||Automated testing uses specialized tools to create and run tests.||In manual testing, test cases are performed manually by a tester.|
|Time||Performing autotests takes much less time than manual testing.||Manual testing is labor intensive and requires human resources.|
|Exploratory testing||Automated testing does not allow for random tests.||Exploratory testing is possible.|
|Investments in the creation of test cases||The initial investment of resources in automated testing is higher. Although the ROI can be higher in the long run.||The initial investment of resources is comparatively lower. ROI versus automated testing is lower over the long haul.|
|Reliability||Reliable, does not depend on the human factor.||Depends on the human factor, therefore less reliable than automated testing.|
|Impact of UI changes||Even for small changes in functionality, you need to spend time changing the script to work correctly.||Changes are not time consuming.|
|Cash investments||Purchase of tools, remuneration of automated testers (as a rule, higher than that of manual testers)||Remuneration for manual testers.|
|Investment efficiency||Ineffective for small applications.||Ineffective for large applications.|
|Report availability||Anyone can enter the test management system and see the results.||Due to human factors, reports generated by manual testers may not always be available / available with a delay.|
|Performance testing||Performance testing (like load testing, stress testing, spike testing) is performed using special tools.||Rarely done manually.|
|Parallel execution of tests||Automated testing can be performed in parallel in different environments (operating systems, browsers).||It can be carried out in parallel, but it requires more human resources.|
|Knowledge of programming||Knowledge of programming is required for an automated tester.||Not required.|
|Installation and configuration||More complex (compared to manual) installation and configuration of the environment for running tests.||Relatively simple.|
|Involvement||This is done automatically.||Human error is involved – constantly running the same set of tests can get boring.|
|Ideal scope||It is useful when the same set of test cases needs to be performed repeatedly and many times.||Useful for infrequently repeated test cases.|
|Impact on the deadline||Zero risk.||The risk is higher than with automated testing.|
|Frameworks||Data Driven, Keyword Driven and Hybrid frameworks are used for automation.||Does not use frameworks, but guidelines, checklists, drafts for writing test cases can be used.|
|Documentation||Automated tests themselves can serve as documentation. A new automated tester can look at the unit test code and figure out what it does and what it is used for.||It is necessary to write documentation for testing.|
|When to use||Regression testing, Performance testing, Load testing and frequently repeated test cases.||Exploratory testing, usability testing, Adhoc testing. In cases where functionality requirements change frequently.|
Pros and cons of manual testing
- Fast and accurate feedback if you need to project a specific scenario.
- Less expensive in the early stages than automated testing.
- Human sight and intuition (helps in finding non-obvious bugs)
- Less reliable because performed by a person. Nobody is perfect, so testing errors are possible.
- Cannot be reused.
- Some test cases can be difficult to reproduce (require simulation of certain conditions, input data, etc.)
Pros and cons of automated testing
- Fast and efficient.
- Performed by a computer that does not get tired or lazy. Can be launched any number of times and at any time (including at night, on weekends and holidays)
- The coverage of functionality by tests increases, because a program (as opposed to a human) is always guaranteed to run all tests.
- Without human fate, it is difficult to check the application visually (colors, fonts, sizes, indents, etc.)
- Automated testing tools can be expensive. (but there are also free ones – here is our selection (LINK))
- They require constant support – this is a waste of human resources.
- Has its own limitation that does not allow automating all possible scenarios.