Testování aplikací: automatické testy, zátěžové testy a kdy se vyplatí
Chyba, kterou najde zákazník, stojí nejvíc. Chyba, kterou najde test při každé změně kódu, stojí skoro nic. Rozdíl mezi oběma je v tom, jak je testování postavené.
V kostce
- Automatické testy běží při každé změně kódu a hlídají, že to, co fungovalo, funguje dál.
- Zátěžové testy ukážou, kolik uživatelů systém zvládne a kde se začne lámat.
- U aplikace bez testů začněte od nejdůležitějších cest (objednávka, platba, přihlášení), ne od všeho najednou.
Druhy testování
| Druh | Co ověřuje | Kdy |
|---|---|---|
| Jednotkové testy | jednotlivé funkce kódu | při každé změně |
| Integrační testy | spolupráci částí (databáze, API, brána) | při každé změně |
| End-to-end testy | celé scénáře z pohledu uživatele | před nasazením |
| Zátěžové testy | výkon pod zátěží | před sezónou, kampaní, spuštěním |
| Bezpečnostní testy | zranitelnosti | pravidelně, po změnách |
| Ruční testování | to, co automat nepozná: srozumitelnost, vzhled | průběžně |
Proč automatické testy
Každá změna kódu může rozbít něco, co s ní zdánlivě nesouvisí. Automatické testy to zjistí během minut, ještě než se změna dostane na web. Vývojář pak opravuje chybu, kterou právě způsobil, ne chybu, na kterou někdo přišel za měsíc.
Přínosy v praxi:
- změny se nasazují častěji a s menším rizikem,
- noví lidé v týmu se nebojí sáhnout do cizího kódu,
- dodavatele lze vyměnit, protože testy popisují, jak má systém fungovat.
Zátěžové testy
Zátěžový test simuluje stovky nebo tisíce uživatelů najednou a měří, jak systém reaguje: odezvu, chybovost, využití serverů. Odpovídá na otázky, které jinak zodpoví až výpadek:
- kolik souběžných objednávek e-shop zvládne,
- co se stane při náporu po reklamě nebo zmínce v médiích,
- která část systému se zahltí první (databáze, platební brána, obrázky).
Výsledek slouží jako podklad pro nastavení infrastruktury: kde přidat výkon, co kešovat, co přesunout mimo hlavní cestu.
Jak začít u aplikace bez testů
- Sepište kritické cesty. Přihlášení, vyhledání produktu, objednávka, platba, odeslání poptávky. Obvykle jich je pět až deset.
- Pokryjte je end-to-end testy. Jeden test na jednu cestu. Už tím zachytíte většinu chyb, které by viděl zákazník.
- Zapojte testy do nasazování. Změna, která testy neprojde, se nenasadí.
- Přidávejte testy u oprav. Každá nalezená chyba dostane test, aby se nevrátila.
- Zátěžový test před sezónou. Jednou za čas, s realistickým scénářem.
Nemusí to být práce na měsíce. První kritické cesty jsou otázka dnů.
Testování a AI
Jazykové modely dnes umí testy psát i navrhovat scénáře, což zrychluje první pokrytí. Nenahrazují ale úvahu o tom, co je pro firmu kritické, a kontrolu, že test opravdu ověřuje to, co má. Jak s AI při vývoji pracujeme, popisuje článek o tvorbě webu pomocí AI.
Testování nabízíme jako součást služby kyberbezpečnost a testování, pro aplikace naše i cizí.
Časté otázky
Co jsou automatické testy?
Programy, které ověřují chování aplikace bez zásahu člověka. Spouštějí se při každé změně kódu a hlásí, co přestalo fungovat.
Kolik testů aplikace potřebuje?
Nejde o počet, ale o pokrytí kritických cest. Pět end-to-end testů na hlavní scénáře má větší cenu než stovky testů na nepodstatné detaily.
Kdy dělat zátěžový test?
Před spuštěním, před sezónou nebo kampaní a po větších změnách infrastruktury. Pravidelně u systémů, kde výpadek znamená ztrátu tržeb.
Dá se testovat aplikace, kterou jste nevyvíjeli?
Ano. End-to-end a zátěžové testy pracují s aplikací zvenčí, jako uživatel, a nevyžadují zásah do kódu.
Zjistěte, kde je váš web a systémy zranitelné
Bezpečnostní audit, penetrační testy, zálohy a příprava na NIS2. Začínáme krátkou konzultací a přehledem rizik.