News

15 Typy testování QA: Různé tváře testování QA, o kterých jste nevěděli

DATE:
March 14, 2024
READING TIME:
10min

S různými typy testování zajištění kvality (QA) přeplňování světa vývoje softwaru a pochopení jedinečných vlastností každého z nich je jediný způsob, jak vyřešit jakýkoli zmatek, pokud jde o to, která možnost je pro vaše potřeby nejvhodnější.

Vzali jsme jeden pro tým a rozhodli jsme se podrobně vysvětlit klíčové typy testování QA v naději, že vám pomůžeme vybrat správný přístup pro vaše testovací potřeby.

Obsah

  1. Testování jednotek
  2. Testování integrace
  3. Koncové testování
  4. Ruční testování
  5. Testování automatizace
  6. Testování AI
  7. Funkční testování
  8. Vizuální testování
  9. Testování výkonu
  10. Regresní testování
  11. Testování kompatibility
  12. Testování přístupnosti
  13. Testování kouře a testování zdravého rozumu
  14. Testování bílé krabice a černé skříňky
  15. Testování různých aut
  16. Typy testování QA: Klíčové poznatky
  17. FAQs

Testování jednotek

Jednotkové testování se zaměřuje na testování nejmenšího kusu softwaru - jednotky. Jednotkou může být funkce, metoda, modul nebo dokonce objekt v objektově orientovaném paradigmatu. Klíčovým cílem je ověřit, že každá jednotka softwaru funguje podle očekávání, a zajistit, že bude pravděpodobnější, že bude fungovat efektivně, když je zkombinována do kompletní aplikace.

Pravidelný jednotkový test obecně zahrnuje několik prvků:

  • Zkušební svítidlo části jednotkového testu, které pomáhají při nastavení prostředí nezbytného pro provedení testovacího případu. Zajišťuje, že žádný vnější vliv nezasahuje do procesu testování vytvořením počátečních fází pro testovanou jednotku.
  • Zkušební případ — skript používaný k vyhodnocení chování testované jednotky.
  • Zkušební běžec — struktura navržená tak, aby usnadňovala provádění četných jednotkových zkoušek a poskytovala podrobnou analýzu a vykazování jejich výsledků.
  • Zkušební data — řada hodnot, které napodobují autentické uživatelské vstupy do systému.
  • Zesměšňování a škrábání — nahrazení skutečných závislostí testované jednotky, pokud testery potřebují k testování duální jednotky.

Jednotkové testování poskytuje několik výhod, jako je snadnější údržba kódu, snížené náklady na vývoj softwaru, a vyšší kvalita kódu, a proto se odborníci shodují, že testování jednotek by mělo vynahradit 70% vaší testovací strategie.

Příklad testování jednotek

Zvažte bankovní aplikaci, kde jednotka je funkce, která vypočítává celkový zůstatek dostupný na účtu uživatele. Jednotkový test vytvoří test, který ověří, že funkce správně zpracovává různé scénáře - správně sečte částky vkladu a přiměřeně odečte částky výběru.

Například, pokud měl účet počáteční zůstatek 1000$ a uživatel provede vklad 500$ a výběr 200$, funkce by měla vrátit konečný zůstatek 1300$. Test jednotky spustí tento scénář jako testovací případ a potvrdí, že funkce vrací správné množství. Pokud tomu tak není, neúspěšný test signalizuje, že v kódu funkce je závada, kterou je třeba opravit. To je testování jednotek v akci!

Testování integrace

Přecházíme od jednotlivých komponent k interakčnímu testování, které se zaměřuje na propojení mezi různými funkcemi, moduly nebo službami. Testování integrace v konečném důsledku zajišťuje, že jednotlivé komponenty softwaru efektivně spolupracují, když jsou kombinovány, což přispívá k jemnějšímu produktu a lepšímu uživatelskému zážitku.

I když existuje mnoho strategií testování integrace, nejvýhodnější jsou:

  • Strategie velkého třesku, kde jsou všechny komponenty sloučeny a podrobeny testování jako komplexní entita.
  • Inkrementální přístup ve kterém jsou jednotlivé skupiny vzájemně propojených logických komponent integrovány a testovány jeden po druhém.

Přírůstkový přístup můžete provádět různými způsoby:

  • Zdola nahoru - nejprve integruje a testuje menší komponenty, než se přesunou k větším
  • Nahoru dolů - nejprve integruje a testuje menší komponenty, než se přesunou k větším
  • sendvič — chytře spojuje techniky zdola nahoru a shora dolů a vytváří zdravou strategii

Příklad testování integrace

Podívejme se na typický příklad testování integrace v bankovní aplikaci. Předpokládejme, že existují dva moduly: „Vytvořit nový účet“ a „Vklad“. Na úrovni jednotky musíte každý z těchto modulů otestovat jednotlivě.

Pokud však jde o testování integrace, musíme posoudit, jak tyto funkce interagují. Tak, jak tento proces funguje? Začneme vytvořením nového účtu pomocí modulu „Vytvořit nový účet“. Jakmile je účet úspěšně vytvořen, pokračujeme pomocí modulu „Vklad“ k provedení vkladu na nově vytvořený účet.

Během tohoto procesu integrační testování ověří, zda modul „Vklad“ přesně rozpoznává a interaguje s novým účtem vytvořeným modulem „Vytvořit nový účet“. Pokud je proces vkladu úspěšný a na nově vytvořeném účtu se zobrazí správná částka, je testování integrace úspěšné. To ukazuje, že jednotlivé moduly fungují hladce společně.

Koncové testování

Přechodem do ještě makroskopičtější perspektivy přicházíme k testování typu end-to-end. Tento typ testování předpokládá uživatelskou perspektivu, testuje kompletní funkčnost systému, včetně propojení s databází, sítí a dalšími službami. Ověřuje, že celý tok aplikace funguje tak, jak bylo navrženo od začátku do konce.

Příklad testování typu end-to-end

Řekněme, že testujete aplikaci pro online nakupování. Koncové testování v tomto případě by zahrnovalo:

  • Vytvoření nového uživatelského účtu
  • Přihlášení k účtu
  • Prohlížení produktů
  • Výběr produktu a jeho přidání do nákupního košíku
  • Pokračujeme k pokladně, kde zadáte platební a dodací údaje
  • Nakonec zadání objednávky a odhlášení

Tento proces ověřuje všechny integrované komponenty systému, od uživatelského rozhraní a databáze až po integrace plateb třetích stran a e-mailová oznámení, což zajišťuje, že každá část funguje tak, jak bylo zamýšleno při interakci jako soudržná jednotka.

Ruční testování

Udělejme krok zpět od testování řízeného softwarem a zvažme klasickou formu testování, která je během vývoje často nepostradatelná. Manuální testování je typ testování, které provádí člověk sedící před počítačem a pečlivě provádí testovací kroky.

Tento typ testování je přizpůsobitelný, což je zvláště užitečné v raných fázích vývoje, kdy jsou změny časté. Na rozdíl od automatizovaných testů však může být časově náročné a náchylné k lidským chybám.

Příklad ručního testování

Příkladem ručního testování je proces kontroly webové stránky. Tester může nejprve ověřit, že jsou přítomny všechny očekávané prvky, jako jsou nadpisy, obrázky a formuláře. Poté by s těmito prvky interagovali, vyplňovali pole formuláře, procházeli rozevíracími nabídkami a klikali na tlačítka a odkazy.

Testovali by, zda se všechny tyto prvky chovají tak, jak bylo zamýšleno v různých prohlížečích a zařízeních. Ruční tester by se měl zaměřit na potvrzení, že všechny chyby ověření jsou zobrazeny podle očekávání při odeslání formuláře, a potvrdit, že se při správném vyplnění formuláře zobrazí zpráva o úspěchu.

Testování automatizace

Navzdory hodnotě ručního testování si vzestup moderních vývojových metod vyžádal efektivnější metodu testování — testování automatizace. Jedná se především o vytváření testovacích skriptů a použití jiného softwaru k provádění testovacích úkolů. Tester však musí skripty neustále aktualizovat, aby odrážel změny v testovaném softwaru.

Zde jsou některé z výhod testování automatizace:

  • Rychlost: Automatizované testy lze provádět rychle a opakovaně, takže jsou ideální pro agilní prostředí nebo prostředí DevOps.
  • Účinnost: Automatizace umožňuje provádět více testů než ruční testování.
  • Vyhýbá se lidským chybám: Automatizované testy provádějí při každém provedení přesně stejnou operaci, což eliminuje možnost lidské chyby.
  • Široké pokrytí: Automatizované testování může pokrývat širší škálu testů a scénářů, což je výhodné pro cokoli od testování zátěže po regresní testy.

Příklad testování automatizace

Zvažte svou oblíbenou platformu pro online nakupování, ať už je to Amazon, eBay nebo místní web elektronického obchodování. Představte si, že pokaždé, když je přidána nová funkce, řekněme nová platební metoda, vývojáři softwaru musí zajistit, aby tento doplněk neporušil žádnou již existující funkci webu. Ruční provedení může být docela únavné a časově náročné. Zde je místo, kde automatizované testování zasahuje, aby zachránilo den.

Pomocí automatizačních nástrojů mohou vývojáři psát skripty pro novou funkci, v tomto případě proces platby zahrnující novou platební metodu. Jakmile jsou tyto skripty připraveny, jsou provedeny, což zahrnuje simulaci akcí, jako je kliknutí na tlačítka, vyplnění platebních údajů a dokončení nákupu.

Pokud vše půjde hladce, funkce projde testem. Ale pokud dojde k náhlému zastavení nebo neočekávanému výsledku, existuje problém, který vyžaduje pozornost. Celý tento proces, který by mohl trvat hodiny, pokud by byl proveden ručně, mohl být efektivně dokončen během několika minut díky testování automatizace.

Testování AI

Další na řadě je testování AI, jedna z novějších forem testování umožňovaných technologickým pokrokem. Testování umělé inteligence se drží zavedeného životního cyklu testování softwaru, ale staví na něm zavedením umělé inteligence, strojového učení, zpracování přirozeného jazyka a počítačového vidění ke zlepšení testovacího procesu

Ukázalo se, že tento typ testu QA přináší spoustu výhod, jako například:

  • Účinnost: Díky učení vzorců a používání prediktivní analýzy dokáže AI efektivně identifikovat a provádět potřebné testy, což zvyšuje celkovou produktivitu testerů.
  • Přesnost: U AI lze vyloučit nepřesnosti, ke kterým dochází v důsledku lidské chyby.
  • Inteligentní detekce chyb: AI může také pomoci najít chyby v systému přesněji a rychleji než ruční metody.

Příklad testování AI

Vezměme si například webovou stránku elektronického obchodu. Stránka má stovky produktových stránek, a každá stránka má různé komponenty - obrázek produktu, podrobnosti o ceně, popis produktu, recenze zákazníků, a tlačítko „Koupit nyní“. Díky tradičním testovacím metodám může zajištění funkčnosti a vizuální integrity každé komponenty na všech stránkách produktu trvat věčně.

Nyní, vložte do rovnice testovací nástroj poháněný umělou inteligencí. Nástroj používá algoritmus strojového učení (ML) k „učení“ struktury webu. Poté prochází každou stránkou produktu, stejně jako člověk, identifikuje a testuje každou komponentu. Pokud pole popisu nového produktu zůstane prázdné nebo pokud tlačítko „Koupit nyní“ nefunguje, identifikuje umělá inteligence tyto problémy během navigace a označí je ke kontrole.

Funkční testování

Funkční testování je soubor testů prováděných za účelem potvrzení, že funkčnost systému funguje podle očekávání ve srovnání se specifikací softwarových požadavků. Základním principem funkčního testování je „Co systém dělá„Spíše než“Jak to dělá„.

Zde je přehled důležitých bodů o funkčním testování:

  • Posuzuje každou funkci softwarové aplikace poskytnutím vhodného vstupu a ověřením výstupu podle funkčních požadavků.
  • Jedná se o formu testování v černé skříňce, což znamená, že vnitřní logika testovaného systému není testerovi známa.
  • Funkční testování může probíhat na všech úrovních testování - jednotkové, integrační, systémové a akceptační testování.

Příklad funkčního testování

Vezměme si další hypotetický scénář, abychom vysvětlili, jak funkční testování funguje. Představte si, že existuje webový portál pro rezervace cest. Zde jsou některé klíčové funkce, které mohou být podrobeny funkčnímu testování:

  • Registrace nových uživatelů: Když uživatel klikne na tlačítko „Zaregistrovat se“, měl by být navigován do registračního formuláře. Po vyplnění a odeslání formuláře, měli by obdržet potvrzovací e-mail a jejich data by měla být bezpečně uložena v databázi.
  • Funkce vyhledávání: Když uživatel do vyhledávacího pole zadá název města a stiskne „Hledat“, měly by se zobrazit všechny relevantní možnosti.
  • Rezervace: Jakmile si uživatel vybere svůj preferovaný let a vyplní potřebné údaje, kliknutím na tlačítko „Rezervujte nyní“ by se měla zobrazit potvrzovací zpráva, odečíst částku z preferovaného způsobu platby a odeslat potvrzení rezervace e-mailem.

Během fáze funkčního testování budou vytvořeny testovací případy pro efektivní ověření každé z těchto funkcí. Cokoli, co se odchyluje od očekávaných výsledků, by bylo zaznamenáno a sděleno vývojovému týmu k opravě. To je krása a podstata funkčního testování - zajišťuje, že každá část vaší aplikace funguje tak, jak bylo zamýšleno.

Vizuální testování

Vizuální testování je činnost zajišťující kvalitu, jejímž cílem je zajistit, aby se grafické uživatelské rozhraní (GUI) zobrazovalo uživatelům správně. Pomáhá ověřit, že každý prvek GUI je na svém místě, má správný tvar, velikost a barvu a má správný text.

Jedinečným aspektem vizuálního testování je porovnávání snímků grafického uživatelského rozhraní napříč různými kombinacemi platforma-zařízení-prohlížeč, aby se ověřila jeho odezva a konzistence.

Příklad vizuálního testování

Představte si, že jste vytvořili novou aplikaci pro online nakupování. Během fáze vizuálního testování zkontrolujete všechny prvky, například:

  • Načítají se obrázky uvedených produktů správně ve všech rozlišeních?
  • Je rozložení informací o produktu (název, cena, popis atd.) konzistentní na každé stránce produktu?
  • Je tlačítko nákupu na stránce pokladny ve vhodné a uživatelsky přívětivé poloze?
  • Jsou všechna písma konzistentní v celé aplikaci?
  • Jsou barvy textu dostatečně kontrastní, aby byly čitelné?

Zajištění shody všech těchto vizuálních aspektů s vaším původním designem pomáhá poskytnout příjemnější a intuitivnější uživatelský zážitek.

Testování výkonu

V technologickém světě je běžné rčení: „Výkon je klíčový.“ Každý uživatel vyžaduje software, který poskytuje okamžité reakce bez pomalosti. Zde přichází do obrazu testování výkonu.

Jedná se o proces testování softwaru používaný k testování rychlosti, doby odezvy, stability, spolehlivosti, škálovatelnosti a využití zdrojů softwarové aplikace při konkrétní pracovní zátěži. V tomto smyslu můžeme mluvit o:

  • Testování zátěže: Tento test kontroluje, jak se systém chová při normálním a vysokém zatížení, a pomáhá identifikovat maximální provozní kapacitu aplikace.
  • Zátěžové testování: Tento test kontroluje robustnost a zpracování chyb při extrémních úlohách a pomáhá identifikovat bod zlomu aplikace.
  • Vytrvalostní testování: Tato zkouška kontroluje, zda systém vydrží nepřetržité očekávané zatížení. Zdůrazňuje potenciální úniky paměti nebo zpomalení výkonu.
  • Testování špiček: Tento test kontroluje, zda software zvládne náhlé velké špičky zatížení od mnoha uživatelů.
  • Testování objemu: V databázi je uloženo velké množství dat, zatímco se hodnotí kapacita databáze a chování softwaru.

47% uživatelů očekává načtení webové stránky za dvě vteřiny nebo méně a 40% opouští web, jehož načtení trvá déle než tři sekundy. To ukazuje důležitost testování výkonu pro spokojenost a udržení uživatelů.

Příklad testování výkonu

Předpokládejme, že se online prodejce připravuje na prodej na Černý pátek. Očekávají výrazný nárůst provozu na svých webových stránkách během období prodeje. IT oddělení maloobchodníka se rozhodne provést testování výkonu, aby zajistilo, že jejich servery zvládnou předpokládaný nárůst uživatelů.

Tým vyvíjí testovací prostředí, které simuluje očekávaný počet souběžných uživatelů a spouští různé úkoly, jako je vyhledávání produktů, přidávání položek do košíku a odhlášení. Sledují dobu odezvy, chybovost, zatížení serveru a další relevantní metriky, aby posoudili, zda systém zvládne očekávaný provoz.

Testování výkonu odhalí, že doba načítání stránky se výrazně zvyšuje, jakmile simulovaní uživatelé překročí určitý počet. Vyzbrojené těmito informacemi může IT oddělení provést nezbytné úpravy ke zlepšení výkonu webových stránek před prodejní událostí, což potenciálně ušetří společnost před ztrátou prodeje v důsledku zpoždění webu nebo prostojů.

Regresní testování

Vývoj se nezastaví po uvedení produktu na trh. Neustálá vylepšení a opravy chyb mohou neúmyslně způsobit nové vady - často označované jako „softwarová regrese“. Zde vstupuje regresní testování. Jedná se o formu testování, která zajišťuje, že dříve vyvinutý a testovaný software po změnách nebo aktualizacích stále funguje stejným způsobem.

Při absenci regresního testování mohou náklady na chyby zjištěné v postprodukci být až 15krát více než pokud byly nalezeny během fáze návrhu, desetkrát více, než kdyby byly zaznamenány během fáze vývoje, a sedmkrát více, než kdyby byly rozpoznány během fáze testování.

Příklad regresního testování

Zvažte online rezervační platformu. Když je zavedena nová funkce, jako je kontrolní systém, může to potenciálně ovlivnit funkčnost stávajících funkcí, jako jsou přihlášení k účtu, rezervační procesy nebo platební transakce.

Při regresním testování bychom znovu otestovali celý systém, abychom zajistili, že žádné dříve funkční aspekty nebyly negativně ovlivněny integrací nové funkce.

Postupný přístup k tomuto regresnímu testování by mohl být:

  1. Přihlaste se k účtu a ověřte jeho úspěšnou činnost
  2. Pokuste se provést rezervaci a systematicky proveďte každý krok, abyste ověřili funkčnost
  3. Proveďte platební transakci a potvrďte její úspěšné dokončení
  4. Zanechte recenzi na rezervovanou službu a potvrďte provoz nové funkce
  5. Nakonec zopakujte všechny tyto úkoly v různých kombinacích, abyste zajistili soudržnost celého systému

Prostřednictvím těchto kroků můžeme zjistit, zda nový kontrolní systém neúmyslně narušil jiné segmenty platformy, což zajistí, že aplikace zůstane spolehlivá a efektivní pro koncové uživatele.

Testování kompatibility

Jak název napovídá, testování kompatibility hodnotí kompatibilitu softwarové aplikace v různých prostředích - operačních systémech, prohlížečích, databázích, hardwaru, sítích atd. Toto testování zajišťuje, že software funguje tak, jak bylo zamýšleno v různých prostředích bez jakýchkoliv problémů.

V této souvislosti můžeme hovořit o:

  • Testování kompatibility hardwaru: Kontroluje kompatibilitu softwaru s různými konfiguracemi hardwaru.
  • Testování kompatibility operačních systémů/prohlížečů: Testuje kompatibilitu softwaru s různými operačními systémy a prohlížeči.
  • Testování kompatibility softwaru: Ověřuje kompatibilitu softwaru s jinými značkami softwaru.

Příklady testování kompatibility

Představte si, že jste vyvinuli aplikaci pro editaci videa. Funkčnost je úžasná! Uživatelé mohou stříhat a spojovat videa, přidávat zvukové stopy, vkládat texty a další. Můžete však zaručit, že bude fungovat stejně bezchybně na iMacu jako na počítači se systémem Windows nebo počítači s Linuxem? Musíte také zvážit různé verze každého operačního systému a případně různé prohlížeče, pokud se jedná o webovou aplikaci. Zde vstupuje do hry testování kompatibility.

V takovém případě váš QA tým provede řadu testů na různých operačních systémech, například Windows 7, Windows 10, OSX Mojave, Linux Ubuntu atd. Tým bude hledat nesrovnalosti v tom, jak aplikace funguje v každém systému. Vyzkoušejí různé prohlížeče, jako jsou Chrome, Firefox, Safari a Edge. Budou zkoumat, jak rozložení a funkčnost aplikace drží na různých rozlišeních obrazovky, a také to otestují na různých zařízeních, jako jsou notebooky, tablety a smartphony.

Po dokončení testování budete mít podrobnou zprávu o kompatibilitě vaší aplikace s různými systémy. To je zásadní, protože vaši uživatelé budou v podstatě pocházet z různých prostředí, pomocí jiného hardwaru, softwaru a zařízení. Chcete všem poskytnout hladký uživatelský zážitek. Ujistěte se, že vaše aplikace je kompatibilní s jejich systémem, je prvním krokem k dosažení tohoto cíle.

Testování přístupnosti

Na inkluzivitě záleží a digitální platformy nejsou výjimkou. Testování přístupnosti je nedílnou součástí testování softwaru, které zajišťuje, že software nebo aplikaci mohou používat osoby se zdravotním postižením, jako jsou poruchy zraku, sluchové postižení a další tělesná postižení.

To znamená, že QA testeři mohou testovat:

  • Přístupnost vize: To znamená, že software mohou používat uživatelé se zrakovým postižením. Lze použít techniky, jako je zvětšení obrazovky, použití Braillova písma a vysoce kontrastní uživatelské rozhraní.
  • Přístupnost sluchu: Ujistěte se, že zvukové informace jsou poskytovány také ve vizuální nebo hmatové formě pro ty, kteří mohou mít sluchové postižení.
  • Dostupnost mobility: Co nejjednodušší vstup pro lidi s omezenou pohybovou schopností.

Téměř Jeden z pěti lidí v USA mají zdravotní postižení. To podtrhuje důležitost testování přístupnosti při tom, aby byl software použitelný pro všechny bez jakékoli formy diskriminace.

Příklad testování přístupnosti

Řekněme, že pracujete na zpravodajském webu. Mezi klíčové prvky, které musíte zvážit, patří:

  • Barevný kontrast: Jsou barvy textu a pozadí rozlišitelné? Lidé s barevnou slepotou nebo slabým zrakem budou potřebovat silný kontrast ke čtení obsahu.
  • Přístupnost klávesnice: Mohou návštěvníci spravovat všechny funkce webových stránek pouze pomocí klávesnice? To je zásadní pro ty, kteří nemohou používat myš kvůli fyzickým podmínkám.
  • Jasný text a vizuální obsah: Je text snadno srozumitelný? Mají všechny obrázky titulky? Lidé s kognitivním postižením mohou tyto úvahy potřebovat.
  • Použití Role ARIA: Tyto role pomáhají čtečkám obrazovky interpretovat obsah webu pro osoby se zrakovým postižením.

Tyto akce tvoří podstatu testování přístupnosti v tomto scénáři a zajišťují, že web je otevřen všem, bez ohledu na jejich fyzické schopnosti. Na podporu tohoto procesu, nástroje jako VLNA nebo Sekera může přijít vhod.

Testování kouře a testování zdravého rozumu

Testování kouře a testování duševního zdraví jsou dva důležité typy metodik testování QA implementovaných do klíčových fází životního cyklu vývoje softwaru. Implementace těchto testovacích metod zajišťuje stabilnější, spolehlivější produkt, lepší spokojenost zákazníků a nakonec úspěšné spuštění softwaru.

V podstatě:

  • Kouřové zkoušky, také známé jako testování ověření sestavení - provádí se za účelem vyhodnocení, zda je nasazené sestavení stabilní a zda můžete provést podrobný test
  • Testování zdravého rozumu, také označované jako testování na úrovni povrchu - provádí se během fáze vydání, aby se zkontrolovaly drobné problémy a chyby.

Testování kouře & Příklady testování duševního zdraví

Jakmile zjistíte, že sestavení softwaru je stabilní, je čas na testování kouře. To by mohlo zahrnovat provedení řady testů, jako jsou:

  • Kontrola správného spuštění softwaru
  • Ověření, zda se prvky uživatelského rozhraní zobrazují podle očekávání
  • Testování základních funkcí, jako je ukládání a načítání
  • Testování zpracování chyb úmyslným vynucením některých chyb

Na druhou stranu, po obdržení menší aktualizace softwaru nebo opravy, která řeší konkrétní problémy, testeři provádějí testování duševního zdraví, aby:

  • Ověřte opravy příslušných chyb, které jste řešili aktualizací
  • Otestujte související funkce, abyste se ujistili, že aktualizace neúmyslně nenarušily vedlejší funkce nebo aspekty softwaru.
  • Proveďte krátké kontroly všech hlavních komponent softwaru, abyste ověřili jeho stabilitu.
  • Spusťte všechny neúspěšné testovací případy z předchozího sestavení

Testování bílé krabice a černé skříňky

Testování bílé krabice a černé skříňky tvoří dvě samostatné metodiky zaměřené na validaci softwaru. V podstatě:

Testování bílé krabice zaměřuje se na vnitřní fungování aplikace, podobně jako vidíme vnitřek bílého rámečku. Je založen na znalosti základní logiky kódu aplikace a zahrnuje testy, jako je pokrytí cesty, pokrytí příkazů a cyklomatická složitost. To zahrnuje:

  • Testování platnosti jednotlivých funkcí nebo metod v rámci kódu
  • Kontrola interního softwaru a práce s kódem
  • Zajištění fungování smyček, podmínek a příkazů podle očekávání

Testování černé skříňky dívá se na funkčnost aplikace, aniž by nahlédl do jejích vnitřních struktur nebo fungování, podobně jako vnitřek černé skříňky není viditelný. Tento přístup se zaměřuje na vstup a výstup bez ohledu na to, jak aplikace produkuje výstup. Mezi klíčové aspekty testování černé skříňky patří:

  • Porovnání výstupu systému s očekávaným výsledkem.
  • Zajistit, aby systém nebyl zranitelný vůči haváriím v důsledku neočekávaného vstupu.
  • Kontrola, zda se systém zotavuje z poruch podle očekávání.

Příklady testování bílé krabice a černé skříňky

Předpokládejme, že máme aplikaci, která vypočítá součet dvou čísel. Zde by testeři měli přístup k podkladovému kódu a věděli, že aplikace čte dva vstupy (čísla), sčítá je do kódu aplikace a poté dodá výstup (součet).

Pro testování by kontrolovali vnitřní operace aplikace, zkontrolovali, zda jsou vstupy správně přečteny, zda je operace sčítání správně implementována a zda výstup správně odráží součet vstupů. Mohou zadat sadu čísel (například 3 a 5), aby zjistili, zda je výstup aplikace skutečně 8, a proto ověří vnitřní fungování a zajistí, že každá součást funguje tak, jak bylo zamýšleno. Tento typ hlubokého ponoření do kódu aplikace je podstatou testování bílé krabice.

Naopak testování černé skříňky má jiný přístup. Namísto ponoření do složitých detailů kódování se testování černé skříňky dívá na software z pohledu koncového uživatele.

Například v aplikaci kalkulačky se tester QA může zaměřit pouze na to, pokud aplikace správně zobrazí 8 jako součet 3 a 5. Neobtěžovali by se tím, co se děje v zákulisí - jak se čtou vstupy nebo jak se vypočítává součet. Jediné, na čem testeru záleží, je, zda je konečný výstup - v tomto případě součet - správný nebo ne. A pokud ne, je to příznak pro vývojový tým, aby se do problému ponořil a vyřešil.

Testování různých aut

Aplikace pod testováním, někdy zkráceně AUT, zahrnuje použití výše uvedených testovacích metodik na různé aplikace.

V této souvislosti můžeme hovořit o:

  • Testování webových aplikací: Důraz je kladen na výkon, použitelnost a zabezpečení, aby bylo zajištěno, že operace na straně serveru fungují dobře.
  • Testování desktopových aplikací: Zkontrolujte funkčnost, použitelnost a konzistenci aplikace na ploše.
  • Testování mobilních aplikací: Ověřte funkčnost, použitelnost a konzistenci aplikace na různých mobilních zařízeních.

Typy testování QA: Klíčové poznatky

Všechny tyto QA testy jsou zásadní pro optimální vývoj softwaru. Od ručního testování až po automatizované integrace pomáhají identifikovat potenciální problémy v rané fázi procesu, zkracují dobu vývoje a náklady a zároveň zajišťují efektivní a vysoce kvalitní produkt.

FAQs

Proč je testování QA důležité?

Testování kvality je zásadní, protože ověřuje funkčnost, design a použitelnost softwarového produktu, aby bylo zajištěno, že splňuje nastíněná kritéria a spolehlivě splňuje potřeby uživatelů. Snižuje riziko uvolnění nestandardních nebo vadných produktů, chrání pověst společnosti a šetří náklady spojené s stahováním nebo opravami produktů. Ještě důležitější je, že zajišťuje uspokojivý uživatelský zážitek, přispívá k udržení a loajalitě uživatelů.

Která metoda testování je nejvýhodnější?

Volba testovací metody závisí na konkrétních potřebách softwaru a fázi jeho vývoje. Automatizační testování však nabízí rychlost a neustálé používání bez lidských chyb, takže je preferován pro pravidelné a opakující se testovací úkoly. Ruční testování je však stále nezbytné pro případy vyžadující lidský dotek a logické myšlení, jako je uživatelské rozhraní a průzkumné testování.

READ MORE ON OUR BLOG
Discover similar posts
Co je lepší pro rok 2022: Kotlin nebo Java?

Pravděpodobně jste dostali náznak z dnešního názvu blogu. V dnešním článku se podíváme na základní rozdíly mezi Kotlinem a Javou. Všechna naše srovnání budou založena na Javě vs. Kotlinu. Vývoj aplikací pro Android se stal běžným způsobem růstu každé společnosti, velké i malé. nicméně, programovací jazyk použitý k vytvoření aplikace je nejdůležitějším aspektem vývoje aplikací pro Android, který by mohl mít dopad na vaše podnikání.

Read More
Návratnost investic digitální transformace: Podrobný průvodce měřením a maximalizací vašich digitálních investic

Ve světě, který se topí v datech, není získávání smysluplných poznatků zrovna procházkou v parku. Pravděpodobně jste slyšeli, že digitální transformace stojí za investici, ale přiznejme si to - mluvit je levné. Skutečné kouzlo nastane, když můžete kvantifikovat dopad těchto digitálních iniciativ. Zde přichází na řadu ROI digitální transformace.

Read More
2025 Strategické technologické trendy: Průvodce pro CIO k orientaci v budoucnosti

Na dnešním rychle se vyvíjejícím trhu práce roste trend směrem k přijímání pracovníků založených na dovednostech, což klade větší důraz na praktické schopnosti uchazeče než na tradiční kvalifikace, jako jsou tituly nebo tituly. Tento posun zásadně mění způsob, jakým společnosti přistupují k náboru, což má za následek dynamičtější a rozmanitější pracovní sílu.

Read More