Software Testing - Introduction
Published: 2023-11-15 07:12:41



## **_What is Software Testing?_**
 
- The process of evaluating the software product or web application or mobile app to ensure that should be functionally working fine and meet the client needs. 
- Testing is done to make sure if the product is doing what it is supposed to and what it's not supposed to do.
- Gap between the actual to expected result is analysed.
- Testing process involves verification and validation
     **_Verification:_** Are we building the product, right?
    **_ Validation:_** Are we building the right product?


## _Why Software Testing?_

- The main aim of the software testing is to give quality product to its clients and quality of product is measured by how the product is bug-free and meet the client's requirements. 
- Customer satisfaction is fulfilled by 100 % defect free product and trust will be increased and will get more projects.
- By finding the bugs in early stage reduces the time and cost. Brings more profit.
- Performance of the software product will get improved.

## **_When to start software Testing ?_**

Once we get the requirement document, we can start software testing process side by side parallelly when software development life cycle stared.  

## **_When to stop software Testing?_**

When all the major and critical bugs are fixed and executed all the test cases and the functionality works as per the client's need, then we can stop software Testing.

## **_What should we do in software Testing?_**

- Gathering the requirements and step-up testing environment
- Create Test scenarios and write test scripts
- Should concentrate on both positive and negative aspects 
- Preparing test data
- Executes the test cases and prepare test summary report
- Raise bugs with proper documents and monitor the status of the big


## **_What should not we do in software Testing?_**

- Should not make assumptions at the time of execution
- Should not start the test process without knowing the scope of the product and proper test plan
- Should not neglect any defects
- Should not sign off the test process until all major functionalities are tested and no open bug is there. 

## **_Kinds of Software Testing:_**

- **_Manual testing:_** Testing any software product or application according to the client need by manually without using any automation tool.
- **_Automation Testing:_** With the help of specific tools to automate manual design test case without human interference. It is used to re-run the test scripts quickly and repeatedly which increases the productivity and efficiency.


## **_Classifications of manual testing_**

- **_White Box Testing:_** It checks the structure of the code and it is also called as structural testing
-        **_Black Box Testing:_** Checking the functionality of application without concerning about structure of the code.
-        **_Grey Box Testing:_** Combination of both white box testing and black box testing.

## **_Types of Testing:_**
       
-  **_Functional Testing:_** Checking the functionality of the application works fine according to the client needs.
-        **_Non-Functional Testing:_** Checking how other aspects of the applications working fine. Checking performance, stability, usability of the application. 


## **_Levels of Testing:_**       

- **_Unit Testing:_** It is the initial stage of testing which is used to verify the logics of each and every individual module or component. Unit testing is done by developer 
- 	**_Integration Testing:_** It is the next stage of testing which is used to check the data flow and communication flow between two or more related individual modules or components.
- 	**_System Testing:_** Checking the functionality and behaviour of the application as whole. 
- 	**_Acceptance Testing:_** Checking the functionality and behaviour of the application by the customer or end user.



## **_We need to know about Software Testing:_**

- First, we need to know about basic testing process.
- Know about basic Testing concepts.
- Know about basic Testing methodologies.
- Know about basic Product and domain knowledge.
- Know how to write a TestCase
- Know how to execute a TestCase
- Know how to report and track bugs.