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ľ
- Od vás stačí súčasná testovacia sada a možnosť spustiť ju voči testovaciemu prostrediu.
- Povedzte nám, v čom by ste testy chceli mať – prípadne to, že to neviete, a cieľový nástroj aj jazyk navrhneme podľa vášho tímu a stacku.
- Určite, ktoré scenáre sú kritické; tie prenesieme ako prvé, aby ste prínos novej sady mohli overiť čo najskôr.
- Zvyšok – analýzu súčasnej sady, návrh architektúry, samotný prenos, zapojenie do dohodnutého spôsobu spúšťania aj zaškolenie tímu – zabezpečíme my.
Č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.
-
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.
-
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.
-
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.
-
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
-
Ako preniesť testy bez toho, aby ste prestali testovať
Migrácia testovacej sady sa väčšinou odkladá z jedného dôvodu. Nie preto, že by nebolo jasné, čo treba spraviť – ale preto, že si nikto netrúfa na obdobie, počas ktorého sa netestuje.
-
Sada stojí na nástroji, ktorý už nikto nevyvíja. Čo teraz?
Nástroj, na ktorom stojí vaša testovacia sada, sa prestal vyvíjať. Testy môžu ďalej bežať, no nové verzie prehliadača, Node.js alebo ďalších závislostí môžu postupne komplikovať údržbu a vyžadovať obchádzky.
-
Protractor skončil: kam preniesť testy
Protractor bol dlhé roky používaným nástrojom na testovanie aplikácií v Angulari. Jeho podpora sa skončila a oficiálny repozitár je archivovaný, takže nedostáva ďalšie opravy.
-
Testy máte v jazyku, ktorému vo firme nikto nerozumie
Testy sa nestanú bezcennými zo dňa na deň. Najprv odíde človek, ktorý ich písal. Chvíľu ich ešte niekto opravuje podľa vzoru – skopíruje existujúci test a zmení v ňom hodnoty.
-
Z Cypressu do Playwrightu: oplatí sa migrovať?
Cypress aj Playwright sú moderné nástroje na testovanie webu a oba sú dobré – toto nie je príbeh mŕtveho nástroja, ktorý treba opustiť.
-
Migrácia zo Selenia do Playwrightu: čo zahŕňa
Selenium sadu ste stavali roky. Funguje – len ju treba stále dokopávať. Pribúdajú pevné čakania, selektory sa lámu pri každom redizajne a nikto sa už neodváži zasiahnuť do jadra, lebo by spadlo všetko naraz.
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.