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.

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
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
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
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í
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ě –
- Přidat Testovací případ do testovací sady k ověření nové funkcionality, která teprve musí být vyvinuta
- 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
- Napište nějaký kód pro implementaci funkce/funkce
- 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.




