ZKS Flashcards

(21 cards)

1
Q

Co je to V-model?

A

Model vývoje softwaru, kde každá fáze životního cyklu má odpovídající fázi testování. Testování probíhá paralelně s vývojem a důraz je kladen na včasné odhalení chyb.

Příklad: V-model spojuje fázi návrhu požadavků s akceptačním testováním, fázi návrhu systému s integračním testováním a fázi návrhu detailů s unit testováním.

Requirements -> UAT
System design -> System testing
Architecture design -> Integration Testing
Implementation -> Unit Testing

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Co je to W-model?

A

Model vývoje softwaru, který zdůrazňuje testování jako kontinuální proces během celého životního cyklu vývoje. Pro každou fázi vývoje existuje odpovídající fáze testování a testy jsou propojeny s jednotlivými vývojovými aktivitami.

Staticke a regresne testovanie

requirements -> static analysis
system design -> static analysis
architecture design -> static analysis
implementation -> unit testing
build software -> integration testing
build system -> system testing
install system -> UAT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Co je statické testování a jakou má roli ve W-modelu?

A

Statické testování je metoda testování, která nezahrnuje spuštění kódu, ale kontroluje artefakty jako dokumenty, požadavky, návrhy a kód. Ve W-modelu hraje klíčovou roli v raných fázích vývoje pro odhalení chyb ještě před implementací.

Příklad: Při validaci požadavků tester provádí revizi dokumentace, aby zajistil, že požadavky jsou úplné, srozumitelné a konzistentní.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Jaké jsou jednotlivé metody statického testování?

A

Revize – systematické procházení artefaktů týmem za účelem nalezení chyb.

Inspekce – formální proces vedený moderátorem, zaměřený na detailní kontrolu artefaktů.

Procházení (Walkthrough) – méně formální diskuze, kde autor představuje dokument ostatním.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Co je princip Model Based Testing (MBT)?

A

MBT je přístup k testování, který využívá modely reprezentující požadavky, chování nebo strukturu systému k automatickému generování testovacích případů. Model slouží jako základ pro ověření funkčnosti systému.

Příklad: Tester vytvořil stavový UML diagram pro popis uživatelských přechodů v aplikaci a pomocí něj vygeneroval testovací případy pro ověření všech možných scénářů.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

jaké jsou výhody a nevýhody MBT oproti manuálnímu testování?

A

MBT využívá modely k automatickému generování testovacích případů, zatímco manuální testování vyžaduje ruční tvorbu a provádění testů bez automatizace.

Výhody MBT:

Automatická generace testů šetří čas a úsilí.
Zajišťuje lepší pokrytí testů díky systematickému modelování.
Snadná údržba testů při změně požadavků.
Nevýhody MBT:

Vyžaduje čas a znalosti pro vytvoření modelů.
Nevhodné pro menší projekty s nízkou složitostí.
Vyšší počáteční náklady na nástroje a školení.
Příklad: MBT umožňuje rychlé generování testů pro různé scénáře platebního systému, zatímco manuální testování vyžaduje detailní psaní každého testovacího scénáře zvlášť.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Jaké modely mohou být použity v Model Based Testing (MBT)?

A

Stavové diagramy – modelují přechody mezi stavy systému.

Tok dat (Data Flow) – zobrazují pohyb dat mezi komponentami.

Modely případů užití (Use Case Models) – popisují interakce mezi uživatelem a systémem.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Jak souvisí Model Based Testing (MBT) s automatizací testů?

A

MBT je úzce propojené s testovací automatizací, protože modely slouží k automatickému generování testovacích případů, které lze přímo spustit v automatizačních nástrojích. To snižuje potřebu ručního vytváření a provádění testů.

Příklad: Pomocí MBT nástroje byl vytvořen stavový model pro e-shop. Tento model automaticky vygeneroval testovací případy, které byly následně spuštěny v automatizačním nástroji Selenium.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Jaké jsou hlavní principy automatizace testů a ekonomika?

A

Hlavními principy automatizace testů jsou opakovatelnost, efektivita a spolehlivost. Automatizace umožňuje rychlé a konzistentní vykonávání testů, zejména u regresních testů, a snižuje lidské chyby. Ekonomika zahrnuje náklady na nástroje, školení a údržbu automatizovaných testů ve srovnání s úsporami času a náklady na manuální testování.

Příklad: Investice do nástrojů pro automatizaci testů a jejich údržbu jsou zpočátku vyšší, ale s rostoucími testovacími cykly a stabilitou systému vedou k dlouhodobým úsporám času a nákladů.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Na jakých úrovních mohou být testy automatizovány?

A

Jednotkové testy (Unit Tests) – testování jednotlivých funkcí nebo metod v kódu.

Integrační testy (Integration Tests) – testování interakcí mezi různými moduly nebo komponentami.

Systémové testy (System Tests) – testování celkového chování aplikace jako celku.

Akceptační testy (Acceptance Tests) – ověření, zda systém splňuje požadavky a očekávání uživatele.

Regresní testy (Regression Tests) – testování, zda změny v kódu neovlivnily stávající funkčnost.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Jaké jsou hlavní přístupy a technologie, které mohou být použity v automatizaci testů?

A

Skriptování testů – použití jazyků jako Python, Java, nebo JavaScript k psaní testovacích skriptů pro různé typy testů.

Testovací nástroje – nástroje jako Selenium pro automatizaci webových aplikací, Appium pro mobilní aplikace, JUnit pro jednotkové testy.

Klient-server automatizace – testování interakce mezi klientskými aplikacemi a serverovými API pomocí nástrojů jako Postman nebo RestAssured.

Záznam a přehrávání – nástroje jako Selenium IDE nebo Playwrightpro záznam a automatické přehrávání testovacích scénářů.

Model Based Testing (MBT) – použití modelů k automatickému generování testů, které lze následně automatizovat.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Co je to ekvivalenční třída(equivalence class)?

A

Ekvivalenční třída je technika pro rozdělení vstupních dat do skupin, kde všechny hodnoty v rámci jedné třídy by měly být zpracovány stejně. Cílem je minimalizovat počet testů tím, že se otestuje pouze jedna hodnota z každé třídy.

Příklad: Pokud máme pole pro zadání věku, ekvivalenční třídy mohou být: věk < 18, věk mezi 18 a 65, a věk > 65. Stačí otestovat jednu hodnotu z každé třídy, například 20, 40 a 70.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Co jsou to hranicové hodnoty (boundary values)?

A

Hranicové hodnoty (boundary values) jsou technika testování, která se zaměřuje na testování hodnot na hranicích platných vstupů, protože chyby se často vyskytují právě na těchto mezích.

Příklad: Pro věkový rozsah 18–65 let budou hranicové hodnoty (boundary values) 17, 18, 65 a 66, protože jsou těsně před a po povoleném rozsahu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Jaký je princip testování kombinatorní interakce (Combinatorial Interaction Testing)?

A

Testování kombinatorní interakce (Combinatorial Interaction Testing) je technika, která se zaměřuje na testování všech možných kombinací hodnot pro různé vstupní parametry, obvykle pro malé kombinace, aby se pokryly všechny interakce mezi parametry.

Příklad: Pokud máme tři parametry (A, B, C) s hodnotami (1, 2) pro každý, kombinatorní testování by zahrnovalo testování všech možných kombinací těchto hodnot, tedy (1,1,1), (1,1,2), (1,2,1), (2,1,1) atd.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Co je to efekt kombinatorní exploze (combinatorial explosion)?

A

Efekt kombinatorní exploze (combinatorial explosion) nastává, když počet možných kombinací vstupních parametrů roste exponenciálně, což vede k extrémnímu nárůstu počtu testovacích případů a výraznému zvýšení nároků na čas a zdroje.

Příklad: Pokud máme 10 parametrů, každý s 5 možnými hodnotami, počet kombinací je 5^10 (neboli 9,765,625), což může být nerealistické na manuální testování nebo běžné automatizované testování.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Jak efektivně snížit kombinace vstupních dat?

A

Kombinatorní testování (Combinatorial Testing) – testování pouze malých kombinací parametrů (např. 2-way nebo 3-way kombinace) místo testování všech možných kombinací.

Ekvivalenční třídy (Equivalence Classes) – rozdělení vstupů na třídy, kde všechny hodnoty v rámci jedné třídy mají stejný efekt na výstup.

Hranicové hodnoty (Boundary Values) – testování hodnot na hranicích vstupních rozsahů.

Předpoklady a předběžné analýzy – odstranění nepravděpodobných nebo nerelevantních kombinací na základě znalosti aplikace.

17
Q

Jaký je princip pairwise (2-way) a N-way testování?

A

Pairwise (2-way) testování je technika, která testuje všechny možné kombinace dvou parametrů, což pomáhá pokrýt většinu interakcí mezi parametry s menším počtem testů.

N-way testování rozšiřuje pairwise testování na více parametrů (např. 3-way, 4-way atd.), což zahrnuje kombinace až N parametrů, což poskytuje větší pokrytí, ale s vyššími nároky na testy.

18
Q

Jaký je princip path-based testování?

A

Path-based testování je technika testování, která se zaměřuje na pokrytí různých cest, kterými může program projít během svého vykonávání, aby se zajistilo, že všechny možné cesty jsou otestovány. Tento přístup se často používá k testování podmínek, větvení a cyklů v aplikaci.

Příklad: V aplikaci, která obsahuje rozhodovací podmínky, jako je „if“ nebo „switch“, path-based testování zajistí, že všechny možné větve (například pravdivé a nepravdivé podmínky) jsou testovány, aby se ověřilo správné chování programu.

19
Q

Jaká je formální definice modelu systému?

A

Model systému je abstraktní reprezentace systému, která popisuje jeho strukturu, chování nebo funkce, často za účelem analýzy, návrhu nebo testování. Může být reprezentován různými způsoby, například pomocí diagramů, rovnic nebo formálních jazyků.

Příklad: V modelu systému pro správu bankovních účtů mohou být definovány třídy pro účty, transakce a uživatele, spolu s jejich vzájemnými vztahy a chováním (např. jak se provádí vklady nebo výběry).

20
Q

Jaká jsou kritéria pokrytí testů (test coverage criteria)?

A

Kritéria pokrytí testů jsou metody měření toho, jak dobře testy pokrývají různé aspekty kódu. Některá z těchto kritérií zahrnují:

Pokrytí uzlů (Node Coverage) – testy, které pokrývají každý uzel v grafu (každý bod vykonání v programu).

Pokrytí hran (Edge Coverage) – testy, které pokrývají každou hranu mezi uzly, což znamená testování každého přechodu mezi dvěma body.

Pokrytí párů hran (Edge-Pair Coverage) – testy, které pokrývají všechny možné páry hran, což umožňuje testování interakcí mezi dvěma po sobě jdoucími přechody.

Pokrytí hlavních cest (Prime-Path Coverage) – testy, které pokrývají všechny možné hlavní cesty, což jsou nejdelší možné cesty mezi uzly, které neprocházejí žádným uzlem více než jednou.

21
Q

Jak je prioritizace procesních/ pracovních aktivit modelována a zpracovávána při generování testovacích případů?

A

Prioritizace procesních nebo pracovních aktivit při generování testovacích případů se modeluje na základě důležitosti a rizika jednotlivých aktivit v rámci pracovního postupu. Činnosti s vyššími riziky nebo kritickým významem pro správnou funkčnost systému jsou testovány dříve, což zajišťuje efektivní pokrytí klíčových částí systému.

Příklad: V testování e-commerce aplikace může být prioritizována testování platby a registrace uživatele (kritické procesy), zatímco testování kontaktního formuláře nebo reklamních bannerů může mít nižší prioritu, protože má menší dopad na hlavní funkce aplikace.