Skip to content

SWE¶

Test¶

How many types of test we have in SWE?¶

Functional Tests¶

These tests focus on verifying that the software system meets the specified functional requirements and behaves as expected. Functional tests typically involve testing the software from the user's perspective, without delving into the internal implementation details.

  1. Unit Testing: Tests individual components or functions of the software in isolation.

  2. Integration Testing: Tests the interaction between integrated components or systems to ensure they work together as expected.

  3. System Testing: Tests the complete and integrated software application to verify that it meets the specified requirements.

  4. User Acceptance Testing (UAT): Conducted by end-users to validate that the software meets their needs and requirements before it goes live.

Non-Functional Tests¶

These tests focus on verifying the non-functional aspects of the software, such as performance, security, reliability, scalability, and usability. Examples include load tests, stress tests, security tests, and accessibility tests.

  1. Performance Testing: Evaluates the speed, responsiveness, and stability of the application under a particular workload. This includes:

  2. Load Testing: Tests the application’s behavior under expected load conditions.

  3. Stress Testing: Determines the application’s limits by testing it under extreme conditions.
  4. Endurance Testing: Assesses the application’s performance over an extended period.
  5. Spike Testing: Tests the application’s reaction to sudden increases in load.

  6. Usability Testing: Evaluates the user interface and user experience to ensure the application is easy to use and intuitive.

  7. Security Testing: Identifies vulnerabilities, threats, and risks in the application to ensure data protection and compliance with security standards.

  8. Compatibility Testing: Checks the application’s compatibility with different browsers, devices, operating systems, and network environments.

  9. Reliability Testing: Assesses the application’s ability to perform consistently over time, including its fault tolerance and recovery capabilities.

  10. Scalability Testing: Evaluates the application’s ability to scale up or down in response to changes in load.