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.
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ů:
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.
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!
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:
Přírůstkový přístup můžete provádět různými způsoby:
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ě.
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.
Řekněme, že testujete aplikaci pro online nakupování. Koncové testování v tomto případě by zahrnovalo:
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.
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ří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.
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:
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.
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:
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í 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í:
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í:
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í 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ř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:
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.
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:
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ř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ů.
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í.
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:
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.
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:
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.
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:
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.
Řekněme, že pracujete na zpravodajském webu. Mezi klíčové prvky, které musíte zvážit, patří:
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í 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ě:
Jakmile zjistíte, že sestavení softwaru je stabilní, je čas na testování kouře. To by mohlo zahrnovat provedení řady testů, jako jsou:
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:
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í č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ří:
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.
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:
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.
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ů.
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í.
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 MoreVe 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 MoreNa 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