Metodologie testování softwaru: Modely QA

⚡ Chytré shrnutí

Metodologie testování softwaru definuje strategie a typy testování používané k ověření, zda aplikace splňuje očekávání klienta. Vodopádové, iterativní, agilní a extrémní programování ovlivňují, kdy testování začíná a jak se vrací zpětná vazba.

  • 🎯 Základní definice: Strategie a typy testů, které ověřují testovanou aplikaci oproti očekáváním klienta, každá s vlastním cílem a výstupy.
  • 🪜 Vodopád: Fáze probíhají striktně v určitém pořadí, takže plánování testů začíná brzy, ale provádění čeká na dokončený návrh.
  • 🔁 Iterativní: Velký projekt se rozdělí na části, z nichž každá prochází vodopádovým cyklem, přičemž po každé iteraci je testován celý systém.
  • Agilní: Krátké inkrementální cykly upřednostňují reakci na změny před rozsáhlým plánováním, přičemž každé vydání je důkladně testováno.
  • 👥 Extrémní programování: Velmi krátké cykly s párovými programátory a vývojem řízeným testy, kde se test píše před kódem.
  • 🧭 Faktory výběru: O vhodné metodologii rozhoduje povaha projektu, požadavky klienta a harmonogram.
  • ???? Základní informace o nastavení: Realistické plánování, definované výstupy, dohodnutý přístup k testování a transparentní reporting.

Metodiky testování softwaru

Co je metodika testování softwaru?

Metodika testování softwaru je definována jako strategie a typy testování používané k potvrzení, že testovaná aplikace splňuje očekávání klienta. Testovací metodiky zahrnují funkční a nefunkční testování pro ověření AUT. Příklady metodologií testování jsou Testování jednotek, Testování integrace, Testování systému, Testování výkonu atd. Každá metodika testování má definovaný cíl testu, testovací strategii a výstupy.

Hodnocení: Vzhledem k tomu, že testování softwaru je nedílnou součástí jakékoli vývojové metodologie, mnoho společností používá termín Development Methodologies & Testing Methodologies hovorově. Proto by Metodiky testování mohly také odkazovat na modely Waterfall, Agile a další modely QA oproti výše uvedené definici metodologií testování. Diskuse o různých typech testování nepřináší čtenářům přidanou hodnotu. Proto budeme diskutovat o různých modelech vývoje.

Metodika testování vs. typ testování vs. strategie testování

Výše uvedená poznámka naznačuje skutečnou nejednoznačnost v oboru. Tři termíny se v konverzaci používají zaměnitelně, ale v projektovém dokumentu znamenají různé věci a jejich záměna vede k testovacím plánům, které odpovídají na nesprávnou otázku.

Období Otázka to odpovídá Rozhodnuto podle Příklady
Metodika testování Kdy a jak zapadá testování do vývojového cyklu? Použitý model vývoje Vodopádové, iterativní, agilní, extrémní programování
Typ testování Který aspekt produktu je ověřován? Krytí rizik a požadavků Jednotka, integrace, systém, výkon, bezpečnost
Úroveň testování Do jaké hloubky je software zkoumán? Pozice v hierarchii sestavení Komponenta, integrace, systém, přijetí
Testovací strategie Jaký je náš organizační přístup ke kvalitě? Vedení QA se vztahuje na všechny projekty Založené na riziku, automatizace na prvním místě, posun doleva
Testovací plán Co přesně bude tento projekt testovat, kdy a kým? Manažer testování, specifický pro projekt Rozsah, harmonogram, zdroje, vstupní a výstupní kritéria

Užitečné pravidlo: metodologie udává rytmus, typ určuje cíl a testovací plán zaznamenává závazek. Následující části se zabývají metodikami.

Model vodopádu

Model vodopádu

Co je to?

v vodopád model, pokrok ve vývoji softwaru v různých fázích, jako je analýza požadavků, návrh atd. postupně.

V tomto modelu začíná další fáze až po dokončení dřívější fáze.

Jaký je přístup k testování?

První fází vodopádového modelu je fáze požadavků, ve které jsou všechny požadavky projektu kompletně definovány před zahájením testování. Během této fáze testovací tým probere rozsah testování, testovací strategii a navrhne podrobný plán testování.

Teprve po dokončení návrhu softwaru tým přejde k provádění testovacích případů, aby se zajistilo, že se vyvinutý software bude chovat podle očekávání.

V této metodice postupuje testovací tým do další fáze až po dokončení předchozí fáze.

Výhody Nevýhody
Tento softwarový inženýrský model je velmi jednoduchý na plánování a správu. Projekty, kde jsou požadavky jasně definovány a předem stanoveny, lze tedy snadno testovat pomocí vodopádového modelu. V modelu vodopádu můžete začít s další fází až po dokončení předchozí fáze. Proto tento model nemůže pojmout neplánované události a nejistotu.
Tato metodika není vhodná pro projekty, kde se požadavky často mění.

Iterativní vývoj

Iterativní vývoj

Co je to?

V tomto modelu je velký projekt rozdělen na menší části a každá část je podrobena několika iteracím vodopádového modelu. Na konci iterace je vyvinut nový modul nebo je vylepšen stávající modul. Tento modul je integrován do softwarové architektury a celý systém je testován jako celek.

Jaký je testovací přístup?

Jakmile je iterace dokončena, celý systém je podroben testování. Zpětná vazba z testování je okamžitě k dispozici a je začleněna do dalšího cyklu. Čas potřebný pro testování v následné iteraci lze zkrátit na základě zkušeností získaných z minulých iterací.

Výhody Nevýhody
Hlavní výhodou iterativního vývoje je, že na konci každého cyklu je okamžitě k dispozici testovací zpětná vazba. Tento model výrazně zvyšuje komunikační režii, protože na konci každého cyklu musí být poskytnuta zpětná vazba o výsledcích, úsilí atd.

Agilní metodologie

Agilní metodika

Co je to?

Tradiční metodiky vývoje softwaru fungují na předpokladu, že požadavky na software zůstávají v průběhu projektu konstantní. S rostoucí složitostí však požadavky procházejí četnými změnami a neustále se vyvíjejí. Sám zákazník si občas není jistý, co chce. I když iterativní model řeší tento problém, je stále založen na modelu vodopádu.

V agilní metodice je software vyvíjen v přírůstkových, rychlých cyklech. Důraz je kladen spíše na interakce mezi zákazníky, vývojáři a klienty než na procesy a nástroje. Agilní metodika se zaměřuje spíše na reakci na změny než na rozsáhlé plánování.

Jaký je přístup k testování?

V metodách agilního vývoje se používá přírůstkové testování, a proto je každé vydání projektu důkladně testováno. To zajišťuje, že všechny chyby v systému budou opraveny před dalším vydáním.

Výhody Nevýhody
V projektu je možné kdykoli provést změny, aby byly splněny požadavky. Neustálá interakce s klientem znamená zvýšený časový tlak na všechny zúčastněné strany včetně samotného klienta, vývojových a testovacích týmů softwaru.
Toto přírůstkové testování minimalizuje rizika.

Extrémní programování

Extrémní programování

Co je to?

Extrémní programování je typ agilní metodologie, která věří v krátké vývojové cykly. Projekt je rozdělen na jednoduché inženýrské úkoly. Programátoři nakódují jednoduchý software a dostanou se zpět k zákazníkovi pro zpětnou vazbu. RevZobrazovací body od zákazníka jsou začleněny a vývojáři pokračují v dalším úkolu.

V extrémním programování vývojáři obvykle pracují ve dvojicích.

Extrémní programování se používá v místech, kde se neustále mění požadavky zákazníků.

Jaký je přístup k testování?

Extrémní programování následuje vývoj řízený testem, který je popsán následovně –

  1. Přidat Testovací případ do testovací sady k ověření nové funkcionality, která teprve musí být vyvinuta
  2. Spusťte všechny testy a je zřejmé, že nový přidaný testovací případ musí selhat, protože funkce ještě není nakódována
  3. Napište nějaký kód pro implementaci funkce/funkce
  4. Spusťte znovu testovací sadu. Tentokrát by měl nový testovací případ projít, protože byl funkčně zakódován
Výhody Nevýhody
Zákazníci, kteří mají na mysli vágní návrh softwaru, by mohli využít extrémní programování. Setkání mezi týmem vývoje softwaru a klienty zvyšují časové nároky.
Nepřetržité testování a nepřetržitá integrace malých verzí zajišťují, že softwarový kód je dodáván ve vysoké kvalitě

V-model a spirální model

U většiny projektů se objevují další dva modely, které doplňují celkový obraz, protože každý z nich řeší slabinu vodopádového přístupu jiným způsobem.

V-Model. V-model, často nazývaný verifikace a validace, spáruje každou vývojovou fázi s odpovídající testovací fází, která je znázorněna jako dvě ramena písmene V. Požadavky se spojují s akceptačním testováním, návrh na vysoké úrovni se systémovým testováním, návrh na nízké úrovni s integračním testováním a kódování s jednotkovým testováním. Výhodou je, že návrh testů začíná paralelně s každou vývojovou fází, a nikoli až po kódování, takže nejednoznačné požadavky narazí osoba psající akceptační testy na měsíce předtím, než by mohla být chyba vytvořena. Jeho slabinou je zděděna z vodopádového modelu: model stále předpokládá, že požadavky jsou stabilní.

Spirální model. Spirála obklopuje iteraci explicitní analýzou rizik. Každý cyklus obsahuje čtyři aktivity: stanovení cílů, identifikaci a řešení rizik, vývoj a testování a následné plánování další iterace. Testování se proto soustředí tam, kde je riziko nejvyšší, spíše než aby se rozložilo rovnoměrně. Hodí se k velkým, drahým a dlouhodobým programům, jako je letecký průmysl nebo bankovní systémy, kde jsou náklady na pozdní objevení vysoké. U malého webového projektu jsou režie formální analýzy rizik v každém cyklu zřídka opodstatněné.

Oba modely se nacházejí mezi vodopádovou disciplínou a agilní reakcí. Pokud je frekvence uvolnění důležitější než kterýkoli z nich, devops Pipeline posouvá testování do kontinuální integrace, takže každý commit je ověřován automaticky.

Jakou softwarovou metodologii zvolit?

Existují tuny dostupných metodologií pro vývoj softwaru a jeho odpovídající testování. Každá testovací technika a metodika je navržena pro konkrétní účel a má své relativní výhody a nevýhody.

Výběr konkrétní metodiky závisí na mnoha faktorech, jako je povaha projektu, požadavky klienta, harmonogram projektu atd.

Z hlediska testování některé metodiky tlačí na testovací vstupy na začátku životního cyklu vývoje, zatímco jiné čekají, až bude připraven funkční model systému.

Jak nastavit metodiku testování softwaru?

Metodiky testování softwaru by neměly být nastaveny jen kvůli testování softwarového kódu. Měl by být zvážen celkový obraz a hlavní cíl projektu by měl být spokojen s metodikou testování. Podívejte se na tento seznam renomovaných poskytovatelé služeb testování softwaru kteří vám mohou pomoci vytvořit efektivní testovací strategie přizpůsobené cílům vašeho projektu.

Plánování

Realistické plánování je klíčem k implementaci úspěšné metodiky testování a harmonogram by měl odpovídat potřebám každého člena týmu.

Definované výstupy

Aby byli všichni členové týmu na stejné stránce, měly by být poskytnuty dobře definované výstupy. Výstupy by měly obsahovat přímý obsah bez jakýchkoli dvojznačností.

Testovací přístup

Jakmile je plánování dokončeno a definované výstupy jsou k dispozici, testovací tým by měl být schopen formulovat správný testovací přístup. Definiční dokumenty a schůzky vývojářů by měly týmu naznačit nejlepší testovací přístup, který lze pro projekt použít.

Hlášení

Transparentní reporting je velmi obtížné dosáhnout, ale tento krok určuje efektivitu testovacího přístupu použitého v projektu.

Nejčastější dotazy

Ano, a je to běžné. Regulované programy často provozují vodopádovou správu a řízení kolem agilních týmů, takže dokumentace uspokojuje auditory, zatímco vývoj udržuje krátké cykly zpětné vazby.

Přesunutí testovací aktivity na dřívější fázi životního cyklu, aby se chyby nacházely v požadavcích a designu, a ne až po napsání kódu. Vývoj řízený testy je posun vlevo, který je doveden k jeho logickému konci.

Umělá inteligence zkracuje zpětnovazební smyčku, místo aby model nahrazovala. Generované testovací případy, samoopravné lokátory a výběr založený na riziku umožňují krátkým agilním cyklům dosáhnout pokrytí, které dříve vyžadovalo dlouhou fázi.

Ano. Analýza dopadu testů mapuje změny kódu na testy, které je pokrývají, takže kanál spustí cílovou podmnožinu během několika minut namísto plné sady regresních testů přes noc.

Ano, ale lehčí. Agilní přístup upřednostňuje funkční software před komplexní dokumentací, nikoli před žádnou. Nezbytným důkazem zůstávají akceptační kritéria, automatizované testy a stručný testovací plán.

Shrňte tento příspěvek takto: