Types of Software Testing
Types of Software Testing
Manual testing is a testing process that is carried out manually in order to find defects without the usage of tools or automation scripting. A test plan document is prepared that acts as a guide to the testing process in order to have the complete test coverage.
Manual Testing Test Cases executed manually. Manual testing is the process of testing the software manually to find the defects. Tester should have the perspective of an end-user and to ensure all the features are working as mentioned in the requirement document. In this process, testers execute the test cases and generate the reports manually without using any automation tools.
Types of Manual Testing
- Black Box Testing
- White Box Testing
- Gray Box Testing
- Unit Testing
- System Testing
- Integration Testing
- Acceptance Testing
Black Box Testing: Black Box Testing is a software testing method in which testers evaluate the functionality of the software under test without looking at the internal code structure. This can be applied to every level of software testing such as Unit, Integration, System and Acceptance Testing:
White Box Testing: White Box Testing is also called Glass Box, Clear Box, and Structural Testing. It is based on application's internal code structure. In white-box testing, an internal perspective of the system, as well as programming skills, are used to design test cases. This testing usually done at the unit level.
Gray box testing: Grey Box Testing or Gray box testing is a software testing technique to test a software product or application with partial knowledge of internal structure of the application. The purpose of grey box testing is to search and identify the defects due to improper code structure or improper use of applications.
Unit Testing: Unit Testing is also called as Module Testing or Component Testing. It is done to check whether the individual unit or module of the source code is working properly. It is done by the developers in developer's environment.
System Testing: Testing the fully integrated application to evaluate the systems compliance with its specified requirements is called System Testing AKA End to End testing. Verifying the completed system to ensure that the application works as intended or not.
Integration Testing: Integration Testing is the process of testing the interface between the two software units. Integration testing is done by three ways. Big Bang Approach, Top Down Approach, Bottom-Up Approach.
Acceptance Testing: It is also known as pre-production testing. This is done by the end users along with the testers to validate the functionality of the application. After successful acceptance testing. Formal testing conducted to determine whether an application is developed as per the requirement. It allows customer to accept or reject the application. Types of acceptance testing are Alpha, Beta & Gamma.
System Testing: Testing the fully integrated application to evaluate the system's compliance with its specified requirements is called System Testing AKA End to End testing. Verifying the completed system to ensure that the application works as intended or not.
Unit Testing: Unit Testing is also called Module Testing or Component Testing. It is done to check whether the individual unit or module of the source code is working properly. It is done by the developers in the developer's environment.
Acceptance Testing: It is also known as pre-production testing. This is done by the end-users along with the testers to validate the functionality of the application. After successful acceptance testing. Formal testing conducted to determine whether an application is developed as per the requirement. It allows the customer to accept or reject the application. Types of acceptance testing are Alpha, Beta & Gamma.
Manual Testing Tools
- Selenium
- JMeter
- Loadrunner
- Test Link
- QTP
- Quality Center (ALM
- Bugzilla
- Mantis
- Trac
- FogBugz
When do you prefer Manual Testing over Automation Testing?
- When the project is in the initial development stage.
- When testing user interfaces especially their visual aspects.
- If the project is a short term and writing scripts will be time-consuming when compared to manual testing
- When exploratory or Adhoc testing needs to be performed.
- If the test case is not automatable. Example captcha.
Advantages of Manual Testing
- Manual testing can be done on all kinds of applications
- It is preferable for short life cycle products
- Newly designed test cases should be executed manually
- Application must be tested manually before it is automated
- It is preferred in the projects where the requirements change frequently and for the products where the GUI changes constantly
- It is cheaper in terms of initial investment compared to Automation testing
- Requires less time and expense to begin productive manual testing
- It allows tester to perform adhoc testing
- There is no necessity to the tester to have knowledge on Automation Tools
Disadvantages of Manual Testing
- Manual Testing is time-consuming mainly while doing regression testing.
- Manual testing is less reliable compared to automation testing because it is conducted by humans. So there will always be prone to errors and mistakes.
- Expensive over automation testing in the long run