Integration testing və CI
Integration test bütöv tətbiqi real cihazda və ya emulatorda işlədir: real naviqasiya, real platform kanalları, çox vaxt real backend. integration_test paketi ilə yazılır və sintaksisi widget testinə çox oxşayır — fərq icra mühitindədir.
Nə vaxt lazımdır:
- Kritik axınlar — giriş, ödəniş, qeydiyyat: bunların uçdan-uca işlədiyinə əmin olmaq
- Platform inteqrasiyası — icazələr, kamera, bildirişlər: widget testində yoxlanıla bilmir
- Real performans ölçmələri — cihazda frame vaxtları
Nə vaxt lazım deyil: hər halın yoxlanması. Integration testlər yavaşdır (dəqiqələr) və şəbəkə/cihaz asılılığına görə daha kövrəkdir — piramidanın zirvəsi az saylı olmalıdır.
CI-da integration testlər ayrıca planlaşdırılır:
- Emulator/simulator qurulmalıdır — bu, CI konfiqurasiyasının ən çətin hissəsidir
- Unit və widget testləri hər PR-da, integration testləri isə adətən merge-dən sonra və ya gecə işlədilir — çünki PR-da 15 dəqiqə gözlətmək developer axınını bloklayır
- Artefaktlar (screenshot, video, log) fail halında saxlanılmalıdır
Flutter tərəfdə tipik CI ardıcıllığı: flutter analyze → flutter test (unit + widget) → build → integration.
Flaky integration testinin idarəsi ayrıca intizam tələb edir: quarantine, kök səbəb analizi və SLA — eyni prinsip Playwright suite-lərində olduğu kimi.
Interview ipucu. QA təcrübən varsa, bu mövzuda daha çox soruşula bilər. Güclü cavabda test strategiyası göstər: nəyi hansı səviyyədə yoxlayıram və niyə. Konkret nümunə ver — "ödəniş hesablamasını unit testdə, ödəniş ekranının vəziyyətlərini widget testində, uçdan-uca ödəniş axınını isə bir integration testində yoxlayıram". Bu üç qatlı izah bir cümləlik cavabdan qat-qat güclüdür.
📚 Mənbələr və sənədlər
- Integration testinə girişrəsmidocs.flutter.dev
- integration_test paketirəsmipub.dev
- Testing-ə girişrəsmidocs.flutter.dev
- Plugin-lərin testirəsmidocs.flutter.dev