Əsas məzmuna keçin

Test Piramidası

Test piramidası müxtəlif növ testlərin ideal paylanmasını müəyyən edən testləmə strategiyasıdır.

Piramida Strukturu

    /\
/ \ E2E Tests (Few)
/____\
/ \ Integration Tests (Some)
/_______\
| | Unit Tests (Many)
|________|

Test Səviyyələri

Vahid Testlər (Əsas)

  • Miqdar: Çox (70-80%)
  • Sürət: Çox sürətli
  • Əhatə: Ayrı komponentlər
  • Dəyər: Aşağı

İnteqrasiya Testləri (Orta)

  • Miqdar: Bəzi (15-20%)
  • Sürət: Orta
  • Əhatə: Komponent qarşılıqlı əlaqələri
  • Dəyər: Orta

End-to-End Testlər (Yuxarı)

  • Miqdar: Az (5-10%)
  • Sürət: Yavaş
  • Əhatə: Tam istifadəçi iş prosesləri
  • Dəyər: Yüksək

Java Nümunəsi

Koda bax
// Unit Test (Base of pyramid)
@Test
void calculateTotal_WithValidItems_ReturnsSum() {
Calculator calc = new Calculator();
assertEquals(15, calc.add(10, 5));
}

// Integration Test (Middle)
@Test
@SpringBootTest
void userController_SavesUser_ToDatabase() {
User user = new User("john");
userController.createUser(user);
assertTrue(userRepository.existsByName("john"));
}

// E2E Test (Top of pyramid)
@Test
void userRegistration_CompleteFlow_Success() {
driver.get("/register");
driver.findElement(By.id("username")).sendKeys("john");
driver.findElement(By.id("submit")).click();
assertTrue(driver.findElement(By.id("welcome")).isDisplayed());
}

Faydalar

  • Dəyər effektivliyi: Daha çox vahid test, daha az bahalı E2E testlər
  • Sürətli geri əlaqə: Vahid testlər inkişaf zamanı tez işləyir
  • Etibarlılıq: Vahid testlər daha sabit və proqnozlaşdırıla biləndir
  • Daha yaxşı əhatə: Çoxsaylı kiçik testlər sərhəd hallarını effektiv əhatə edir

Ən Yaxşı Təcrübələr

  1. Biznes məntiqi üçün vahid testlərə diqqət yetirin
  2. Komponent qarşılıqlı əlaqələri üçün inteqrasiya testlərindən istifadə edin
  3. E2E testləri kritik istifadəçi səyahətləri ilə məhdudlaşdırın
  4. Piramida formasını saxlayın - tərs piramidadan çəkinin
  5. CI/CD kanalında müvafiq səviyyələrdə testlər işlədin