Počítačové programy (Software) jsou dnes všude kolem nás. Setkáme se s nimi v toastovači, pračce, televizi nebo i v autě. Software ale vyvíjejí lidé a lidé dělají chyby, které přenáší právě do počítačových programů. Proto, aby v produktech, které používáme bylo co nejméně chyb potřebujeme zajistit kontrolu kvality, testování software. Co to vlastně testování je? Na to se podíváme v dnešním článku.

Je to zjednodušeně proces, jehož cílem je odhalování chyb v aplikaci a tím zajišťuje její požadovanou kvalitu při jejím spuštění zákazníkům. Testeři hledají chyby pomocí různorodých činností jako jsou například:
- Revize dokumentů,
- Manuální testování,
- Automatické testování.
Zaujalo tě testování software? Staň se testerem!
Přihlas se na další běh naší Testovací Akademie!
Proč je testování důležité?
Bez testování by do finálního programu pronikly různorodé chyby. Člověk by mohl předpokládat, že tyto chyby nebudou kritické.
Vývojář přeci ví co dělá a snaží se chyby nedělat, že?
Bohužel opak je pravdou. V rámci testování software se často objevují kritické chyby, které mohou mít drastický dopad. Tyto chyby občas uniknout do finální aplikace a způsobují značné ekonomické škody či dokonce ztráty na životech.
Pojďme se podívat do historie na to, jak vypadaly největší softwarové chyby:
Mars Climate Orbiter
Co se stalo?
Družice shořela v atmosféře po špatném nastavení oběžné dráhy.
Dopady: $500.000.000
Příčina: Vyšetřování zjistilo, že hlavní příčinou nehody byl software dodaný společností Lockheed Martin, který počítal celkový impuls dodaný tryskami sondy v imperiálních jednotkách, zatímco software pro výpočet trajektorie dodaný NASA očekával tato data v jednotkách SI.1Mars Climate Orbiter. (5. 04. 2023). Wikipedie: Otevřená encyklopedie. Získáno 23:37, 29. 09. 2023 z https://cs.wikipedia.org/w/index.php?title=Mars_Climate_Orbiter&oldid=22607890
Unicredit nový ibanking
Co se stalo?
V roce 2017 vydal český Unicredit nové internetové bankovnictví. Služby banky byly nejméně po 1 týden nefunkční.2Bance UniCredit nefungovaly platební karty, zákazníci si nemohli zobrazit ani zůstatek na účtu. (15. 10. 2017). iRozhlas. Získáno: 01:52, 30.9.2023 z http://irozhl.as/1aP
Dopady: 450 tisíc klientů nemohlo používat internetové bankovnictví.
Příčina: Nejspíše podcenění výkonnostního testování.3Co stojí za nedávnými problémy bank při přechodu na nové verze mobilního nebo internetového bankovnictví. (29. 12. 2017). Finparáda. Získáno: 01:59, 30.9.2023 z https://m.finparada.cz/4798-Co-stoji-za-nedavnymi-problemy-bank-s-prechodem-na-nove-verze-mobilniho-nebo-internetoveho-bankovnictvi.aspx
Boeing 737 Max
Co se stalo?
2 pády a následné uzemnění letadel po uspěchaném vývoji nového letadla.
Dopady: $80.000.000.000, 346 mrtvých 4Wikipedia contributors. (28. 09. 2023). Boeing 737 MAX groundings. In Wikipedia, The Free Encyclopedia. Získáno 00:05, September 30, 2023, z https://en.wikipedia.org/w/index.php?title=Boeing_737_MAX_groundings&oldid=1177681532
Příčina: Špatný návrh HW + SW částí letadla na kontrolu přetočení, ignorace testujících pilotů, snaha o co nejrychlejší vypuštění nového letadla do provozu.
Co testujeme?
Testovat můžeme cokoliv, co má dopad na produkt. Nemusí to nutně jen aplikace. Naopak, pokud dokážeme pokrýt i například proces, potom radikálně zvýšíme kvalitu produktu.
Příklady oblastí testování:
- Software
- Dokumentace
- Komunikace
- Procesy
- Kroky
- Použitelnost
Typy testování
Způsobů testování je mnoho, my se v tomto článku podíváme na některé běžné.
Pokud máš zájem se dozvědět o tom jak se testuje víc, podívej se na detail mezinárodní testerské certifikace ISTQB.
Funkční/nefunkční testování
Funkční testování
Každého nejspíš napadne otestovat konkrétní funkcionalitu programu. Tomu říkáme funkční testování.
Příklady funkčních testů:
- Testování přihlašovacího formuláře
- Ověření, že tlačítka, odkazy a další interaktivní prvky fungují správně
- Kontrola výpočetních procesů, sortování, filtrování atd.
Nefunkční testování
Testování software se ale také zabývá nefunkčním testováním.
Co to je?
Nefunkční testování se věnuje aspektům software, které nejsou přímo spojeny s konkrétními funkcemi, jako jsou výkon, bezpečnost a použitelnost.
Příklady nefunkčních testů
- Testování výkonu (např. jak rychle se načítá stránka).
- Testování zabezpečení (např. jak dobře software odolává hackovacím pokusům).
- Testování použitelnosti (jak intuitivní je uživatelské rozhraní).
Statické testování
Statické testování je forma analýzy kódu a dokumentace, která se provádí bez toho, aby byl kód spuštěn. Cílem je identifikovat problémy v raném stádiu vývoje.
Metody statického testování:
- Revize: procházení dokumentace, jestli neobsahuje logické i faktické chyby.
- Code Reviews: Manuální procházení kódu a jeho hodnocení.
- Statická analýza: Použití nástrojů na automatickou analýzu kódu.
Manuální/automatické testování software
Testovat můžeme ručně (manuálně), ale také automatizovaně (testování provádí program).
Manuální testování je obvykle náročnější na čas a zdroje, ale je nezbytné pro testování uživatelského rozhraní a jiných vizuálních aspektů. Automatizované testování je efektivní pro opakované testy a testy vysokého objemu.
Závěr
Testování software je klíčovým prvkem ve vývoji kvalitního software. Pomáhá nejen identifikovat a opravit chyby, ale také zajišťuje, že software je bezpečný a efektivní. Jak manuální, tak automatizované testování mají své místo ve vývojovém cyklu a při správném použití mohou výrazně přispět k úspěchu projektu.
Připadá ti testování software zajímavé? Staň se testerem! Pomůžeme ti nastartovat novou kariéru v naší Testovací Akademii.