Menu

Software Testing in SDLC

Software Testing in SDLC

Unit, Integration, System, and Acceptance Testing

Testing Type

Purpose

Unit TestingChecks individual functions, methods, or components in isolation to ensure each one works correctly on its own.
Integration TestingChecks whether different components work together correctly, such as verifying API communication, microservice interactions, and data flow through the system.
System TestingTests the entire application as a complete system to ensure all components work together as expected.
Acceptance TestingConfirms that the software meets the business requirements and end-user expectations before it is released.

Test-Driven Development (TDD)

TDD flips the usual order of writing code and tests. TDD (test-driven development) is one approach: write the test first, then write the code that makes it pass. The idea is that writing the test first forces developers to think clearly about what the code is actually supposed to do before they get lost in the implementation details.

TDD doesn't eliminate the need for other testing activities. Unit tests written through TDD complement integration testing, exploratory testing, and user acceptance testing.

Shift-Left Testing Explained

Shift-left testing just means moving testing earlier in the development process instead of treating it as something that happens only at the end. Shift-left is a broader approach, it includes QA involvement in requirements, integration tests running in CI, acceptance criteria defined before development starts, and anything else that moves testing activity earlier in the cycle. Catching a bug while a developer is still writing the code is far cheaper than catching the same bug after it has already shipped to production.