Ə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