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
- Assertion bo'lmagan va exception ham tekshirmaydigan test yashil bo'lsa ham biznes natijani isbotlamaydi.
Mashqlar
- Yozuv yaratish uchun normal, bo'sh title, limit va ruxsatsiz user testlarini nomlang va yozing.
- Assertion siz test yozib, keyin unga aniq tekshiruv qo'shing va farqni tushuntiring.
Teglar: pdp, modul-10, nazariya