What is Software Testing and its relevance
Published: 2024-05-24 13:07:42

Software testing is a technique that is used to test various types of application be it web or mobile. Software testing not only help to find the bugs and faults in the software but it also helps to make the product better and approachable to the user so that is user friendly. 
Software Testing is carried out in a cyclic process which consists of various stages and every stage has its own evaluation process and its cardinal process to complete the delivery of the software to the client. Without testing no product can be delivered to the client. Software Testing is very crucial part if the this is not followed after development then it could cause monetary losses.
Importance of Software Testing is that huge defects can be detected in the early stages of development, provides reliability, efficiency, productivity, scalability.

Software Testing is segregated in two divisions.
1. Verification: It ensure that the software correctly implements a specific function.
2. Validation: It ensure that the software that has been built is as per the customer requirements.

There are different types of testing types which includes 
Software Testing can be divided into different categories as follows:
1. Depending on the Techniques 
2. Depending on the Types
3. Depending on the Approach
4. Depending on the Levels of testing

Depending on the Techniques 
This is classified as 
1. Manual Testing: The testing which is carried out manually. The tester tests the software by its self without any scripts
2. Automation Testing: The testing which is carried out with the help of tools and scripts. The tester tests the software by writing scripts to automate the testing process.

Depending on the Types
This is classified as 
1. Functional Testing: The testing which rectifies the functional requirements of the software, it is useful to check weather the software works according to its function.
2. Non-functional Testing: The testing which involves testing the other aspects of software such as performance, memory, efficiency, scalability is called non-functional Testing.
3. Maintenance Testing: This type of testing is done when the software is deployed to customer and there are few changes made in code to enhance the product or to change the functionality of the software to see if the recent changes didn't introduce regressions and new defects in the software. 

Depending on the Approach
This is classified as 
1. White Box Testing: White box testing is type of testing in which the tester is aware of the source code and know how the modules are related to each other so the he can test it accordingly.
2. Black box testing: Black box testing  is type of testing in which the tester is not aware of the source code and don't know how the modules are related so he will only check the software depending upon the functionality and user point of view.

Depending on the Levels of testing
This is classified as 
1. Unit Testing: Unit Testing is testing each component one by one of the software to ensure every component is working fine.
2. Integration Testing: Integration Testing focuses on testing how the co-related components are working together 
3. System Testing: This level of testing is done on whole product that is fully integrated software to check the compatibility with the original idea of the product.
4. User acceptance Testing: this level of testing is very important from user perspective as the software is tested in such a way as the end user.