software testing
Tags: testing
Published: 2024-01-12 12:32:33

**software testing?**

1.    software testing is the process of verifying and validating that a software product meets requirements and expectation of the customer.
2. It plays a vital role in software development life cycle(SDLC) in such as planning, design,implementation,deployment and maintenance.software testing can be done by both manual and automation using various tools and techniques.Main objectives of software testing is to ensure quality,reliability,security and usability of the software product.

**need to know about software testing?**

1.  software testing can performed in different stages of (SDLC) software development life cycle such as unit testing, integration testing,system testing and user acceptance testing.software testing classified into different types such as functional testing, non-functional testing, white box testing, black box testing and grey box testing.

black box testing is nothing but tester doesn't know about the logic or code or function of the internal structure of the product. tester will only focus on the testing of functionality and behavior of the software product.

In white box testing tester will know full knowledge about the internal structure and logic or code implementation about the software product.

grey box testing is the partial knowledge about internal structure and code.tester know some knowledge about software product.

In black box testing classified into two types:

1.Functional testing
2.Non-functional testing

Functional testing:
functional testing is performed by using functional specification provided by client or customer and verifies the system against functional requirements.

Non-Functional testing:
Non-Functional testing checks the performance,scalability,reliability and other non-functional aspects of the software system.
there are basically 10 types of testing.

- unit testing
     is a software testing technique using which individual units of the software.
- integration testing
     is a software testing technique verify the different modules or services used application or software work well together. 

- system testing 
     is a testing technique check whole system in the context of either system requirements or functional requirement specifications.The software is tested such that it works fine for the different operating systems.

- functional testing
     functional test focus on the business requirements of an application. they only verify the output of an action.
- acceptance testing
     acceptance tests are formal tests that verify if a system satisfy business requirements.they require the entire application or software to be running while testing and focus on replicating user behaviors. and also further measuring performance of the system and reject changes if certain goals are not met. 
- smoke testing
    this form of testing evaluates the functionality of the essential or core features of a software application,verifies their expected behavior,and determines the stability of the application for subsequent testing phases.
- regression testing
      is performed to find out whether the updates or changes had caused a new defects in the existing functions.
- performance testing
      is the practice of evaluating how a system performs in terms of responsiveness and stability under a particular workload.typically executed to examine speed, robustness, reliability,and application size.
- security testing
   is uncovers the vulnerabilities in the system and determines that the data and resources of the system are protected from possible intruders.it ensures the software system free from any threats or risks.
- ad hoc testing  
     is performed without any specific test plan or predefined set of steps.tester use their intuition,experience and creativity to identify defects.

**relevance of software testing?**
     software testing is an essential part of any software development process. it ensures that the product meets the requirements and expectations of customers. software testing is key component of software development because it improves consistency and performance.though the main benefit of testing involves finding errors and defects, it also helps the team in understanding actual and expected outcomes.