10-modul · 7-dars: Testing asoslari

Daraja: Ilg'or

Testing asoslari. Advanced backend bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

## Dars maqsadi Testing asoslari tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.

## Nazariya Testing dastur haqidagi taxminlarni kuzatiladigan dalil bilan tekshiradi. Manual test noto'g'ri emas: exploratory va vizual tekshiruvda muhim. Avtomatik test takrorlanuvchi regressiyani tez tutadi. Black-box tashqi xatti-harakatga, white-box ichki tuzilishga tayangan usul; ikkalasi ham turli xatolarni topishi mumkin. Unit test kichik birlikni dependencylardan ajratib sinaydi; integration test komponentlar birga ishlashini, end-to-end esa foydalanuvchi oqimini tekshiradi. JUnit Java test frameworkidir; Maven Surefire natija hisobotini yaratadi, coverage vositasi esa qaysi kod bajarilganini ko'rsatadi. Coverage foizi assertion sifati yoki bug yo'qligi kafolati emas. FIRST: Fast, Independent, Repeatable, Self-validating, Timely. TDD red-green-refactor siklida talabga test yozishdan boshlaydi. Mock tashqi dependency xatti-harakatini boshqaradi; mock hammasini muvaffaqiyatli qilsa haqiqiy integratsiya buzilishi yashirin qolishi mumkin. Normal, boundary, invalid va failure holatlarini test nomida aniq ifodalang; vaqt va tasodifni nazorat qiling.

## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/10-module%28Spring%20Boot%20Part%20%7C%7C%29.md) [Rasmiy qo‘llanma](https://docs.spring.io/spring-boot/reference/)

Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.

Kod misoli

@org.junit.jupiter.api.Test
void emptyListHasZeroSize() {
  var values = java.util.List.of();
  org.junit.jupiter.api.Assertions.assertEquals(0, values.size());
}

Keng tarqalgan xatolar

Mashqlar

Teglar: pdp, modul-10, nazariya

Interaktiv ko'rinish (viktorina, izohlar, tarix)