Služby · Portácia testov

Portácia testov do iného frameworku alebo jazyka

Prenesieme hodnotné scenáre do vhodného open-source frameworku a zvolíme jazyk, ktorý váš tím dokáže dlhodobo udržiavať. Ak je pôvodná sada ešte použiteľná, môže dočasne bežať súbežne s novou, aby sme znížili riziko medzery v kľúčových kontrolách.

  • Playwright
  • pytest
  • Robot Framework
  • TypeScript

O službe

Zachováme roky znalostí, ktoré sú vo vašich testoch

Testovacia sada v sebe nesie roky znalostí o tom, ako sa má produkt správať. Keď však odíde jej pôvodný autor alebo tím prestane ovládať použitý jazyk, opravy sa odkladajú a testy postupne miznú z pipeline. Portáciou zachováme hodnotné scenáre v podobe, ktorú vie váš tím ďalej rozvíjať.

Riziko rastie aj vtedy, keď framework stratí podporu alebo je sada postavená bez udržateľnej architektúry. Protractor už podporu nemá; pri sade postavenej na Selenium najprv posúdime, či sa viac oplatí upraviť ju, alebo preniesť. Zmenu nástroja odporučíme iba vtedy, keď má pre vás jasný prínos.

Portácia nie je prekladanie riadok po riadku. To, čo má hodnotu, sú scenáre a overenia – poznanie, ako sa má produkt správať. Práve tie prenesieme a zvolíme štruktúru vhodnú pre cieľovú technológiu; pri testoch rozhrania môže zahŕňať napríklad Page Object Model, stabilné identifikátory a oddelené testovacie dáta.

Testy prenášame postupne podľa priority. Ak je pôvodná sada ešte použiteľná, môže dočasne bežať súbežne s novou, aby sme znížili riziko medzery v overovaní kľúčových scenárov.

Jednoduchý vstup

Stačí nám existujúca sada a cieľ

Čo získate

Čo vám portácia prinesie

Jazyk, ktorému tím rozumie

Testy v inom jazyku, ktoré u vás nemá kto udržiavať, prenesieme do Pythonu či TypeScriptu. Sada, ktorú tím vie čítať, sa aj opravuje.

Podporovaný nástroj a udržateľná architektúra

Hodnotné scenáre prenesieme z nepodporovaného alebo nevhodného riešenia do open-source frameworku vybraného podľa vášho tímu a prostredia.

Postupný prechod s kontinuitou kľúčových kontrol

Prenášame scenár po scenári. Ak je pôvodná sada ešte použiteľná, môže istý čas bežať vedľa novej a obmedziť riziko medzery v kontrolách.

Bez mechanického prenášania starých problémov

Nejde o mechanický prepis riadok po riadku. Nestabilné selektory, zbytočné čakania ani chýbajúcu architektúru do novej sady neprenášame.

Ako to prebieha

Možný priebeh spolupráce

Konkrétne kroky a ich poradie prispôsobíme vašej situácii, dostupným podkladom a dohodnutému výstupu.

  1. Analýza sady a návrh cieľa

    Zistíme, čo sada reálne pokrýva a ktoré testy má zmysel preniesť. Podľa tímu a stacku navrhneme cieľový nástroj, jazyk aj rozsah portácie.

  2. Pilot na kľúčovom scenári

    Na jednom dôležitom scenári overíme navrhnutú architektúru, spôsob práce s dátami a stabilitu cieľového nástroja skôr, než začneme prenášať celú sadu.

  3. Postupný prenos scenárov

    Scenáre prenášame podľa priority. Ak je pôvodná sada ešte použiteľná, počas prechodu môže bežať vedľa novej, aby nevznikla medzera v kľúčových kontrolách.

  4. Zapojenie do pravidelného spúšťania a odovzdanie

    Novú sadu zapojíme do dohodnutého spôsobu spúšťania, odovzdáme vám dokumentáciu a zaškolíme tím, aby ju vedel ďalej rozširovať.

Nástroje a postupy

Nástroje a pracovné postupy volíme podľa konkrétneho riešenia

Pri výbere uprednostňujeme open-source nástroje, ak sú vhodné pre danú službu, vaše prostredie a spôsob prevádzky. Ak riešenie využíva komponent s inou licenciou, platenú cloudovú službu alebo externú infraštruktúru, podmienky a náklady uvedieme v ponuke. Spôsob odovzdania výstupov a vytvoreného kódu dohodneme podľa typu služby.

  • Playwright

    Najčastejší cieľ portácie. Ovláda hlavné prehliadače, čaká na stav aplikácie a pri zlyhaní môže uložiť trace, snímku obrazovky alebo video.

  • Selenium

    Východisko aj cieľ. Ak máte grid infraštruktúru alebo tím, ktorý Selenium pozná, vhodnejšia než zmena nástroja môže byť úprava jazyka alebo architektúry.

  • Protractor

    Časté východisko portácie. Projekt bol ukončený a už nedostáva ďalšiu podporu, preto pri aktívnej sade navrhneme prechod na podporované riešenie.

  • Python + pytest

    Preferovaný cieľ, keď tím chce čitateľnú sadu v Pythone. Testy zostanú ako bežný kód, ktorý môže ďalej udržiavať a rozširovať.

  • TypeScript

    Voľba, keď majú testy žiť vedľa frontendu a rozširovať ich má rovnaký tím. Sada tak používa jazyk, nástroje a postupy známe z aplikácie.

  • Iné jazyky

    Existujúce sady prenesieme z iných jazykov do Pythonu alebo TypeScriptu, prípadne do Robot Frameworku, podľa toho, čo váš tím dokáže udržiavať.

  • Robot Framework

    Cieľ vtedy, keď majú byť testy čitateľné aj pre netechnickú časť tímu alebo keď chcete web, API aj desktop pod jedným spôsobom zápisu.

  • Page Object Model

    Oddeľuje popis obrazoviek od scenárov. Ak pôvodnej sade chýba udržateľná štruktúra, pri prenose ju nenapodobňujeme, ale navrhneme vhodnejšie usporiadanie.

  • GitHub Actions / GitLab CI

    Ak používate CI/CD, novú sadu zapájame do pipeline už od prvého preneseného scenára. Priebežne tak overujeme stabilitu aj spôsob spúšťania.

Hlbšie k téme

Ak sa chcete dozvedieť viac

Poďme sa pozrieť na váš konkrétny prípad

Stručne nám opíšte, čo chcete preveriť alebo automatizovať, aký systém či proces používate a čo vás dnes najviac obmedzuje. Ozveme sa s návrhom vhodného ďalšieho kroku.