Software Testing and the relevance of software testing
Published: 2023-10-15 09:37:47

<u>**Software testing:**</u>
Software testing is a process of examining and evaluating the entire functionality of the software application in order to cover the requirement gaps and errors which may indirectly affect the Software's functionality , usability and performance 
**Types of software testing :**
**Software testing is broadly classified into two type:**

- Manual Testing  
- Automation Testing 

**Software testing is further classified into three type:**
- White Box Testing
- Black Box Testing : Functional and Non-Functional 
- Grey Box Testing 

**Functional Testing :** Unit testing , Integration testing , System testing and User Acceptance testing 
**Non-Functional Testing:**Compatibility testing , Performance testing and Usability testing 

**White box testing :** White box testing helps to cover the internal logic , flow and structure of the software code to meet the specific requirement.
**Black box testing :** Black box testing helps to cover the functionality of the software 
**Grey box testing:** Grey box testing is a combination of white box and black box testing where the tester partially knows the internal logic and structure of code and does a specific coverage of functional testing to the system behavior.

**Unit testing:** Unit testing divided the software code into smaller units and covers the functionality unit by unit.
**Integration testing:** Integration testing tests the whole software module if the system contains multiple modules in it combinedly it is tested in the integration phase.
**System testing:** Overall functionality and performance of the system is covered in the system testing 
**User Acceptance testing:**The final stage of software testing is the UAT before going live. The real world scenarios are covered in this phase considering the testers themselves as an end user.

**<u>Software Test Life Cycle:</u>**

1. Requirement analysis :Team Analyses the entire requirement from product owners , identifies the gaps in requirement , identifies the risks in testing process , identifies the ambiguities of the requirement after reading the software requirement document 

2. Test Planning :Planning is  most effective phase of STLC where the cost estimation and the detailed well-organized testing plans are decided after the completion of the requirement gathering phase 
3. Test case development :In this phase the in-depth test cases are written along with the test data for testing which are reviewed by the Quality assurance team. It is started only after completion of planning phase. 
4. Test Environment setup :It is a stand alone phase and it is majorly decided by the developers or customer .It is basically the decision made on the stable test environment to carry out the testing process
5. Test Execution :It is a phase after test case development and test environment setup. The prepared test data are utilized for executing the test cases in this phase.
6. Test Closure :Closure is the final phase of the software testing life cycle .In this phase all the testing activities are completed and documented. Test Summary Report , Test environment clean up and Test defect closures are provided at the end of this phase by the testing team 

<u>**Relevance of Software testing :**</u>

1. Cost effective 
2. Customer satisfaction
3. Bug-free Quality product 
4. Low Failure and More Security 
5. Early defect detection