What is Manual Testing ?
Manual Testing is the process of executing software to validate it against software requirements and to find defects / bugs.
Manual testing, as the name suggests, testing is done by a human being without using automated testing tools.
Manual testing can be performed on applications built on wide variety of technologies like web applications, windows applications or Mobile applications. Basic need for performing manual testing is an interface for user to provide input to application and verify the output.
Manual testing may involve using various interfaces like GUI (Graphical User Interface) and CLI (Command Line Interface) to input or verify output or test results. APIs are tested using custom built automation frameworks or using test automation tool.
To perform good and thorough Manual testing it takes considerable effort, concentration, determination, attitude to find defect to make software better.
Manual Testing can be performed as Static or Dynamic testing. Static testing means verification of the requirements, code review, design review, test case review etc., and Dynamic testing refers to execution of the software to uncover defects.
Scope of manual testing involves verification and validation. Manual testing involves using Black box , white box testing and grey-box testing methods depending on the type of Software Testing being performed.
Manual Testing is predominantly performed by Software Testers. However, manual testing is performed by other project stake holders as well, depending on the type of testing and software testing phase like Developers performing test during Unit testing phase or Business Analytics verifying requirements during requirements phase or End users during User Acceptance Testing.
Manual testing is the best suited approach for small and short term projects, where the tests are less or tests are not to be repeated with large sets of test data. Manual testing is equally necessary for large projects as well.
Manual Testing is performed in different types of Software Testing like Unit Testing, Integration Testing, system testing, User acceptance testing, Operational readiness testing, alpha testing, beta testing, usability testing, and regression testing and smoke testing.
Some of the test types like Smoke testing, regression testing, unit regression testing, API testing that have to be executed frequently would be a perfect candidate for test automation than manual testing.
What manual testing is Not ?
Manual Testing is an easy to learn but only testers with prior manual testing experience can be thorough and effective in manual testing and finding defects.
Manual Testing cannot ensure 100% defect detection.
Manual Testing is not cheap, instead it is time consuming and expensive. Hiring experienced software testers can be expensive.
Manual Testing cannot be replaced by automated testing and vice versa. Both have their advantages and limitations.
Manual testing will not be beneficial for types of testing like Unit regression testing, Smoke testing, Regression testing and API testing.
Advantages of Manual Testing:
1) Leverages Software Tester’s experience and knowledge to find defects.
2) Manual testing can be performed for majority of the software testing types.
3) Manual testing can be performed across various stages like Unit test, System test and UAT phases of SDLC (software development life cycle).
4) Manual testing can be performed even when application is not very stable.
5) Manual testing is still effective when requirements are volatile and is subject to change frequently.
6) Manual testing is efficient when UI changes are more frequent like websites, e.g.: website template change OR instead of radio button they add a dropdown across 10 forms. In these cases, changes are minor but can be more readily accommodated in manual testing than automated testing. Automated testing will require time to change or re-record the script and re-test the scripts on regular basis as and when the UI changes.
Disadvantages of Manual Testing:
1) Manual Testing is time consuming.
2) ROI (Return on investment) is low for some of the testing types like Smoke tests or Regression tests that have to be executed frequently and when the core functionality or GUI of the application is not expected to change over longer period of time.
3) Success of Manual Testing depends on the experience and knowledge of the software testers.
4) Manual Testing may lead to defect leakage due to human error or miss.
5) Manual Testing is time consuming and may not be very effective during validation of large data sets like XML validation or Image validation.
6) Manual Testing will not be effective to test design aspects e.g.:- GUI Object attributes like field length, field width, internal object names, HTML tag attributes etc.,
7) Some of the testing types like Performance testing and Security testing cannot be performed or cannot be complete without usage of software testing tools.
8) Manual Testing requires effort and performing repetitive tests over period of time. Manual Testers may tend to get bored or lose interest in running same tests over and over again.
Manual Testing is more effective for below Software Testing Types:
- Functional Testing
- Unit Testing
- Exploratory Testing
- Ad-Hoc Testing
- Integration Testing
- UAT (User Acceptance Testing)
- Usability Testing
- Alpha Testing
- Beta Testing
- Compliance Testing
Automated Testing is more effective for below Software Testing Types:
Thanks for our guest author Guru Prasad for writing a nice and short article on manual testing.
Other Interesting Articles: