#SoftwareTesting
Published: 2024-01-22 11:19:15

**What is Software testing?**
Software testing is a process through which testers assess software is defect free or bug free.
software testing objective is to verify that “Is user requirements are full filled?”  In software testing 
testers prevent defects on product by applying various testing techniques.  
There are 2 types of testing methods which used in Software testing.
**1)Static testing 2) Dynamic testing  **       
**Static testing:** It is done early in stage od SDLC. It is done before code deployment.
In this testing testers review requirements documents, review code without running the product.
It is said that if static testing is done efficiently, it can cover 70 percent of defects.

**Dynamic Testing:** It is done later in stage of SDLC after code deployment.
Testers run and verify the product in dynamic testing by comparing with testcases.
It is said that it covers 30 percent of defects.

There are 5 steps comes under software testing.
1)Test Planning – first step is to do test planning. Testing team decide how many resources they are going to use, different types of testing involved, what is the objective of testing.
2)Test Analysis -In this step testing team do discussion on requirements.
3)Test Design – Testing team create testcase after understanding of requirements
4)Test execution -once test creation is completed; next step is to execute those testcases. It can be manual or through any automation tool.
5)Test results or Test reports – Once execution is completed, testing team shows test results.
Like ->no. of testcases pass, fail and defect count.

What we need to know about software testing?
To know about software testing, one should know about STLC,
STLC is a software testing Lifecycle. There are 6 major phases of STLC.
1)**Requirement Analysis** – In this phase testing team discuss requirements from testing point of view. They can discuss it internally and with stakeholders also.
 2)**Test Planning** -In this phase Test manager or lead decides no. of resources(testers) going to use,    different types of testing involved, different types of testing tools involved, testing time estimation, different type of reports involved.
3)**Test case development** -In this phase Testers write testcases from requirements. These testcase can be written in excel or test writing tool depend upon testing team. Automation testers develop scripts in specified language in this phase.
4)**Testing Environment setup** -In this phase testing server or QA server is going to be setup so that once testers are ready with scripts then they can execute on testing environment.
5)**Test execution** -In this phase Testers execute all the testcases written and make testcase pass or fail. 
6)**Test cycle closure** -In this phase they prepare test reports, which shows different types of aspects like no. of testcases pass, no. of testcases fail, no. of defects.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5o857jl43m3mvozgci1d.png)
**What is the relevance of software testing?**
Software testing process is an important process in SDLC.
With the help of proper testing, we can make our product bug free.
With the help of proper testing, we can improve product performance.
If we start testing early in SDLC then we can resolve 70 percent of bugs before test execution phase.
It will help development process by introducing bugs at early stage of SDLC.
Properly tested software products are more efficient than others. 
There will be low risk of production issues if product is efficiently tested in testing phase. Ultimately 
it will save a lot of time and money of organization.
This will help in bringing customer satisfaction and trust.