Testování desktop aplikací

Jak automatizovat testy starší desktopové aplikace

Starší neboli legacy aplikace může roky zajišťovat fakturaci, sklad nebo výrobu, přestože její dokumentace už není úplná a původní autoři nejsou k dispozici. Právě obava z vedlejších účinků potom zpomaluje každou změnu. Automatizované testy mohou riziko snížit, nejprve je však třeba ověřit technický stav aplikace a jejího prostředí.

Proč je testování starší aplikace náročné

Problémem nebývá jen stáří kódu. Aplikace může záviset na konkrétní verzi Windows, lokální databázi, sdíleném disku nebo službě, kterou nikdo přesně nezdokumentoval. Testovací data se připravují ručně a výsledek scénáře často zná pouze zkušený uživatel.

Uživatelské rozhraní může kombinovat Win32, WinForms, WPF a vlastní komponenty. Některé prvky jsou viditelné prostřednictvím Windows UI Automation, jiné poskytují málo informací nebo je lze ovládat pouze klávesnicí. Proto není přesné slibovat, že každou starší aplikaci lze automatizovat bez úprav a bez zdrojového kódu.

Dalším rizikem je příliš velký počáteční záběr. Snaha převést celý dlouholetý seznam ručních regresních kontrol najednou vytvoří nákladnou sadu dříve, než tým ověří, zda jsou její základy stabilní.

Jak postupovat po menších, ověřitelných krocích

Začínáme společným popisem jednoho kritického procesu. Zkušený uživatel ukáže vstupní data, jednotlivé kroky a výsledek, který považuje za správný. Tak vznikne první srozumitelná specifikace i v projektu bez dokumentace.

Potom provedeme technické posouzení:

  1. zjistíme použité technologie a závislosti prostředí;
  2. zkontrolujeme prvky přes rozhraní Win32 a Windows UI Automation;
  3. najdeme stabilní identifikátory a místa, kde chybějí;
  4. připravíme opakovatelná testovací data a způsob obnovy stavu;
  5. vytvoříme pilot včetně kontroly výsledku, nejen klikání.

K ovládání můžeme použít pywinauto nebo FlaUI. Pokud prvek není dostupný přes systémové rozhraní, nejprve zvážíme malou úpravu aplikace, například doplnění identifikátoru. Obrázky, klávesové zkratky nebo souřadnice používáme pouze cíleně a s vědomím jejich omezení; důvody vysvětluje článek Proč nestavět desktopové testy na souřadnicích a obrázcích.

Po úspěšném pilotu přidáváme scénáře podle obchodního dopadu a četnosti. Samostatnou pozornost si zaslouží instalace, aktualizace a migrace dat, protože propojuje starou a novou verzi i jejich datové formáty.

Co tím získáte

Kritické procesy získají opakovatelnou kontrolu a zároveň vznikne živá dokumentace jejich očekávaného chování. Tým může bezpečněji měnit části aplikace, u kterých se dnes spoléhá pouze na paměť několika lidí.

Automatizace také ukáže, kde je skutečný technický dluh: chybějící identifikátory, nestabilní data nebo závislost na jediném prostředí. Tato zjištění pomohou rozhodnout, co se vyplatí opravit a co zatím ponechat k ručnímu ověření.

Další krok

Vyberte jeden často používaný proces s jasným výsledkem a připravte pro něj obnovitelná testovací data. Krátký pilot ukáže, které prvky lze ovládat spolehlivě a jaké úpravy by přinesly největší efekt. Technický základ pro WPF a WinForms přibližuje také článek o automatizaci těchto aplikací.

Související témata

Mohlo by vás také zajímat

Desktop nemusí znamenat ruční testování

Automatizované testování desktop aplikací pro Windows i Electron – stabilně a opakovatelně.