Testing is an process to check whether the present results match the required results and to ensure that the software system is error free. It includes the execution of a software component or system component to evaluate one or more requirements of interest.
Software testing also helps to identify bugs,gaps and missing properties in the actual requirements of software.Testing can be done automatically using tools or also can be done manually.
Types of Software Testing :
Software testing is broadly classified in following types
- Functional Testing
- Non-Functional Testing
Functional Testing :
Functional testing is a software testing strategy used within software development in which software is tested to ensure that it fulfils with all requirements. Functional testing is the strategy of checking software to ensure that it has all the required functionality that's specified within its functional requirements.
Functional testing is further classified in
Unit Testing :
It is the software testing method in which testing is done during development.In this testing the section of is isolated in parts and tested separately.The unit may be the function. The main goal of unit testing is isolate each part of program and check whether it is correct or not.
The developer of system itself performs this test.
Integration Testing :
In unit testing each module is tested separately and checked whether it is correct or not. In integration testing different modules are merged together and checked whether it is working propely or not.
Basically in the integration testing the data communication among the different modules is checked.
Integration testing is also called as thread testing
It is the type of system in which the major functionality of the system is checked.
In this type of testing very limited test cases are prepared just to check whether all main functionality are working fine or not .
If smoke test is fine then system is passed for detailed test
User Acceptance Testing :
It is the last phase of testing in which the user itself check the system fulfils all the requirements or not.It is basically done for checking the user requirement are fulfilled or not. If the system passes this tests then system is passed to the user
Non-functional testing is performed to test the not functional requirements such as way the system operates rather than specific functional requirement. Basically it is performance testing
Non functional testing is further classified in :
Performance testing is done for testing the speed ,scalability and stability of the system.Basically it helps the developer to identify what need to be improved where to improve the system
If this test is not performed the system may suffer from some speed issues
Endurance test is also called as Soak test.
Endurance testing is done by testing the system for significant amount of time with significant amount of load.
This test is done to identify how system will behave under lots of work
Load testing is the testing like performance in which system is tested on real time conditions. This testing helps to identify how system will perform actual conditions.
How it will perform when there are to many user requests simultaneously
Maintenance testing is done on already developed systems. It is done to check whether the system is working properly or not .
The deployed software needs to be improved, changed. The Testing done during this enhancement, change and migration cycle is known as maintenance testing.