Testování softwaru

Stránka ve výstavbě
Inkwell icon - Noun Project 2512.svg Na této stránce se právě pracuje. Prosím needitujte tuto stránku, dokud na ní zůstává tato šablona. Předejdete tak editačnímu konfliktu. Jestliže uběhla od poslední editace doba alespoň dvou dnů, neváhejte tuto šablonu odstranit. Inkwell icon - Noun Project 2512.svg

Testování softwaru je oblast, která se zabývá kontrolou kvality nebo chyb programů.

Charakteristika

Testování softwaru je jednou z několika složek IT struktury, která se může jevit jako nepříliš důležitá, ale opak je pravdou. Na správném testování softwaru velice závisí. V realitě je testování softwaru pomyslnou špičkou ledovce – dle přání zákazníka je navržen softwarový produkt, ale je dokončen a předán až v momentě, kdy na něm odvede svou práci tester. Tester kontroluje, zda výsledný produkt odpovídá zadání zákazníka, obsahuje všechny potřebné funkce a zda správně pracují. Důležitá je i uživatelská přívětivost pro budoucího uživatele softwaru. [1]

Testovací cyklus

Testování softwaru má několik fází, které je důležité dodržovat:

  • Plánování testů

Stanovení testovacích požadavků, určení strategie testování, identifikace zdrojů pro testy a příprava testovacího plánu.

  • Analýza a příprava testů

Návrh jednotlivých testů, které ověří, zda jsou požadavky na systém správné.

  • Provedení a vyhodnocení testů

V této fázi jsou samotné testy provedeny a jsou vyhodnoceny výsledky, i zda nedošlo k chybě.

  • Sledování chyb

Tato fáze řeší chyby, které mohly nastat. Řeší jejich závažnost a jak je možné je odstranit. [2]

Typy testů

Testy lze dělit na dělit na tři základní oblasti:

Testy z hlediska chronologizace

- Kdy daná testovací aktivita nastává z pohledu vývojového modelu

  • Testování vývojářem

- Veškerá kontrola probíhá na úrovni zdrojového kódu, jeden vývojář kontroluje kód po druhém. Pro kvalitní testování je potřeba mít mezi programátory jednotný přístup k psaní kódu.

  • Testování jednotek

- Jedná se o formu testování, která přestála veškerý vývoj agilních metodik bez větší změny.

  • Integrační testování

- Integrační testy připravuje testovací tým. Jedná se o sadu testů, které zkoumají správnost vnitřní integrity aplikace.

  • Systémové testování

- Tyto testy ověřují aplikaci jako celek. Jsou používány v pozdějších fázích vývoje. Ověřují aplikaci z pohledu zákazníka.

  • Akceptační testování

- Akceptační testy probíhají na straně zákazníka. Pokud všechny předchozí etapy testů proběhly v pořádku, je možné předat aplikaci zákazníkovi.

Testy dle přístupu ke kódu

- Je hledisko viditelnosti zdrojového kódu ze strany samotného testera

  • „Black box“ testování

- Při použití těchto testů nemá tester žádný přístup ke kódu, neví tedy jak přesně systém spolupracuje s daty.

  • „White box“ testování

– Zde tester zná vnitřní strukturu softwaru. Testují se průchody zdrojovým kódem, reakce kódu na prázdné nebo nestandardní hodnoty.

  • „Grey box“ testování

– Zde hovoříme o kombinaci předchozích dvou kategorií. Může se jednat o situaci, kdy software testujeme přes například uživatelské rozhraní.

Testy dle běhu programu

- dle nutnosti běhu programu

  • Statické testování

– Toto testování nevyžaduje běh programu. Využívá se v prvotních fázích životního cyklu softwaru.

  • Dynamické testování

– Tady je již vyžadován běh aplikace. Používá se v pozdějších fázích vývoje a je zaměřeno na bezchybnost provozu.
[3]

Automatizace testů a testovací nástroje

Aby testy proběhly precizně a úspěšně ke spokojenosti všech zapojených stran, je do celého procesu investovat nemálo času. I tato oblast IT se proto automatizuje. Existuje proto celá řada testovacích nástrojů, které mohou být využity ke zrychlení testovacího procesu. Můžeme využít nástroje, které jsou uskutečňované pomocí standardních rozhraní testované aplikace. Pro tyto typy testů existuje velké množství komerčně dostupných nástrojů, například ATF (Softbridge), WinRunner (Mercury Interactive), Rational Robot (Rational) a další. Pokud se jedná o nestandardní rozhraní, je nutné si vytvořit vlastní testovací nástroj, jež bude vyvíjen společně s aplikací, která se podrobí testu. [4]

Manuální testování x automatizované testování

Při testování softwaru se můžeme setkat se dvěma druhy testování, s manuálním a automatizovaným. Jak již bylo řečeno výše, při automatizovaném testování je možné ušetřit čas a využít testovací nástroje. Velkou nevýhodou je ale neustálá údržba zkoušek. Manuální testování oproti tomu je prováděno ručně testerem, který vše poctivě proklikává a nemusí se starat o údržbu nástroje pro testování. [5]

Testování softwaru x Quality Assurance

V oblasti testování softwaru se můžeme setkat s pojmem Quality Assurance neboli zajištění kvality. Na první pohled se může zdá, že mezi oběma pojmy není rozdíl, ale je. Quality Assurance je nadřazený pojem pro testování softwaru. Obě oblasti si kladou stejné cíle – zlepšení softwaru, ale QA zvyšuje kvalitu díky zlepšení procesu a testování díky hledání chyb. Je důležité mezi těmito pojmy vidět rozdíl, který je zásadní. [6]

Softwarový tester

Osoba, která v testování softwaru má největší uplatnění je softwarový tester. Kromě testera se ale na testování podílí i další osoby, jako vývojář softwaru, projektový manažer, ale i koncový uživatel.

Kvalifikovaný tester musí zvládat celou řadu činností, například:

  • Analýza požadavků na testování
  • Tvorba a aktualizace testovací dokumentace
  • Příprava testovacích dat
  • Provádění testů podle testovací dokumentace
  • Dokumentace průběhu testování
  • Reportování chyb a výsledků testů
  • Podpora vývojového týmu [7]

Odkazy

Reference

  1. Co je testování softwaru? Kitner [online]. [cit. 2021-11-21]. Dostupné z: https://kitner.cz/testovani_softwaru/co-je-testovani-softwaru/
  2. ZELINKA, Bořek. Testování softwaru [online]. In: . [cit. 2021-11-26]. Dostupné z: https://d3s.mff.cuni.cz/legacy/teaching/commercial_workshops/previous/1213/zelinka-zajisteni_kvality_softwarovych_produktu.pdf
  3. KAJAN, Miroslav. Metody a organizace testování software [online]. Brno, 2015 [cit. 2021-11-21]. Dostupné z: https://www.vut.cz/www_base/zav_prace_soubor_verejne.php?file_id=115100. Diplomová práce. Vysoké učení technické. Vedoucí práce Jitka Kreslíková.
  4. Testování a diagnostika softwaru. Automa [online]. [cit. 2021-11-21]. Dostupné z: https://automa.cz/cz/casopis-clanky/testovani-a-diagnostika-softwaru-2000_08_27838_702/
  5. Automatizované testování. Testování softwaru [online]. [cit. 2021-11-21]. Dostupné z: http://testovanisoftwaru.cz/automatizovane-testovani/
  6. Co je testování softwaru? Kitner [online]. [cit. 2021-11-21]. Dostupné z: https://kitner.cz/testovani_softwaru/co-je-testovani-softwaru/
  7. Softwarový tester. Národní soustava povolání [online]. [cit. 2021-11-21]. Dostupné z: https://nsp.cz/jednotka-prace/softwarovy-tester

Související stránky

Softwarová studia

Software

Popište proces vývoje softwaru, jeho jednotlivé fáze a charakterizujte profese, které se na něm podílejí. Odlište vodopádový a spirálový styl vývoje. Vysvětlete, jak se typicky

označují jednotlivé verze

Knihovnické automatizované systémy a knihovnický software

Kultura a umění kódů a dat: software, simulace, vizualizace

Zdrojový kód

Klíčová slova

IT, Informatika, Software, Tester, PC