Sparround

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 analyzeflutter 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