QA
Beginner LevelSoftware Engineering Principles

Compare Unit Testing vs Integration Testing vs End-to-End (E2E) Testing (Testing Pyramid).

❓ Interview Prompt: Explain the Testing Pyramid: Unit Tests, Integration Tests, End-to-End (E2E) Tests, execution speed, cost, and coverage balance.

The Testing Pyramid guides how engineering teams allocate test suite coverage:

1
Unit Tests (Base - High Volume, Fast): Test individual functions or classes in isolation with mocks. Fast execution (~ms), low cost, pinpoint error detection.
2
Integration Tests (Middle - Moderate Volume): Test interaction between multiple components or systems (e.g. Service + Database or API + Redis).
3
End-to-End Tests (Top - Low Volume, Slow): Test complete end-to-end user workflows in automated browsers (Playwright/Cypress). Slow execution, high maintenance, but verifies full system integration.

Code Implementation Example

typescript
import { calculateDiscount } from './pricing';

// Fast Unit Test in Vitest / Jest
describe('calculateDiscount', () => {
  it('applies 10% discount for VIP customers', () => {
    const total = calculateDiscount(100, 'VIP');
    expect(total).toBe(90);
  });
});
💡Writing a fast, isolated unit test using Jest/Vitest.
🎯 Interview Key Takeaway

Balance testing using the Testing Pyramid: write high-volume unit tests for fast feedback, supplemented by integration and E2E tests.

#Testing#Testing Pyramid#Unit Test#E2E#Beginner
Back to all Software Engineering Principles Questions→

More Software Engineering Principles Interview Questions

Beginner LevelSoftware Engineering Principles

Explain the 5 SOLID Principles of Object-Oriented Software Design with practical refactoring examples.

Beginner LevelSoftware Engineering Principles

What are DRY (Don't Repeat Yourself), KISS (Keep It Simple, Stupid), and YAGNI (You Aren't Gonna Need It)?

Beginner LevelSoftware Engineering Principles

Why is Composition Over Inheritance a fundamental object-oriented design principle?