Types of Testing: Functional vs. Non-functional

Functional Testing:

  • Functional Testing is a type of software testing where individual software components or functions are tested to ensure that they operate as expected, according to the software requirements.
  • It focuses on testing what the system does, rather than how it works.

Types of Functional Testing

1.Unit Testing

  • Definition: Testing individual components (like classes or methods) in isolation.
  • Purpose: Ensure each unit of the software performs as designed.

2.Integration Testing

  • Definition: Testing how the units are interconnected and work together.
  • Purpose: Verify that the integrated components function as expected as a whole system.

3.System Testing

  • Definition: Testing the entire system against the system requirements.
  • Purpose: Ensure that all components work together as expected, meeting system requirements.

4.User Acceptance Testing (UAT)

  • Definition: Testing the system from an end-user’s perspective.
  • Purpose: Ensure the system meets the business requirements and is ready for release.

5.Regression Testing

  • Definition: Re-testing the software after a change to ensure that existing functionalities aren’t negatively affected.
  • Purpose: Confirm that new changes haven’t broken the existing functionalities.

Non-functional Testing

Definition:

Non-functional Testing is a type of software testing that focuses on the non-functional aspects of the system, such as performance, reliability, security, usability, etc.
It assesses the system’s “quality attributes” rather than its specific behavior.

Types of Non-functional Testing

1.Performance Testing:

Definition: Testing to ensure that the system performs under specific conditions.
Purpose: Check if the system can handle the expected load, response times, etc.

2.Load Testing:

Definition: Evaluating system behavior under high load.
Purpose: Determine the system’s capacity and behavior when multiple users are accessing it simultaneously.


3.Stress Testing:

Definition: Testing the system beyond normal operational capacity.
Purpose: Assess the system’s stability and ability to handle high stress.

4.Security Testing:

Definition: Testing to identify vulnerabilities and threats.
Purpose: Ensure the system is secure from unauthorized access or malicious attacks.

5.Usability Testing:

Definition: Assessing the ease of use and user-friendliness.
Purpose: Ensure the system is user-friendly and meets user expectations.

6.Compatibility Testing:

Definition: Testing the system’s compatibility with different hardware, software, browsers, etc.
Purpose: Ensure the system works across different environments.

6.Reliability Testing:

Definition: Testing the system’s reliability and stability.
Purpose: Ensure the system functions without failure under specific conditions.

7.Availability Testing:

Definition: Testing the system’s uptime and availability.
Purpose: Ensure the system is available and accessible to users when required.

8.Recovery Testing:

Definition: Testing the system’s ability to recover from failures or crashes.
Purpose: Ensure the system can recover gracefully and quickly after a failure.

9.Scalability Testing:

Definition: Testing the system’s ability to scale with increased load.
Purpose: Ensure the system can handle increased user activity or data volume.

10.Maintainability Testing:

Definition: Testing the system’s maintainability and ease of maintenance.
Purpose: Ensure the system can be easily modified, repaired, or extended.

11.Documentation Testing:

Definition: Testing the system’s documentation for accuracy and completeness.
Purpose: Ensure that the system’s documentation is comprehensive and up-to-date.

12.Installability Testing:

Definition: Testing the system’s ease of installation.
Purpose: Ensure that the system can be installed without any difficulty.

13.Portability Testing:

Definition: Testing the system’s ability to be transferred from one environment to another.
Purpose: Ensure that the system can be easily transferred and works across different environments.

Comments

Popular posts from this blog

Test Planning and Strategy,Test Coverage and Traceability

Testing Fundamentals

Introduction to Manual Testing