Contents
Software Testing in SDLC
Unit, Integration, System, and Acceptance Testing
Testing Type | Purpose |
| Unit Testing | Checks individual functions, methods, or components in isolation to ensure each one works correctly on its own. |
| Integration Testing | Checks whether different components work together correctly, such as verifying API communication, microservice interactions, and data flow through the system. |
| System Testing | Tests the entire application as a complete system to ensure all components work together as expected. |
| Acceptance Testing | Confirms 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.










