+ All Categories
Home > Documents > Zajištení kvality programového vybavení -...

Zajištení kvality programového vybavení -...

Date post: 15-Jul-2020
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
22
Zajištění kvality programového vybavení - testování
Transcript
Page 1: Zajištení kvality programového vybavení - testováníecom.ef.jcu.cz/web2/download/teorie/11_zajisteni... · 4. Shlukování chyb – Jedna chyba na sebe „nabaluje“ další.

Zajištění kvality programového vybavení - testování

Page 2: Zajištení kvality programového vybavení - testováníecom.ef.jcu.cz/web2/download/teorie/11_zajisteni... · 4. Shlukování chyb – Jedna chyba na sebe „nabaluje“ další.

Základy testování

• Proč se to dělá? • Kvalita software • 100% testování není možné Různé pohledy: • Vývojářské testování (testy komponent, integrační, systémové …) • Akceptační – ověření funkce dle očekávání • Ohodnocení kvality • Provozní testování

Psychologie testování: • Záleží na stupni nezávislosti

Page 3: Zajištení kvality programového vybavení - testováníecom.ef.jcu.cz/web2/download/teorie/11_zajisteni... · 4. Shlukování chyb – Jedna chyba na sebe „nabaluje“ další.

7 principů testování

1. Ukazuje přítomnost chyb – Může ukázat na přítomnost chyb, neukazuje ale že žádné nejsou

2. Vyčerpávající testování je nemožné – Testování všech kombinací je nemožné (až na triviální případy)

3. Včasné testování – test.aktivity musejí v rámci živ.cyklu SW začít co nejdříve

4. Shlukování chyb – Jedna chyba na sebe „nabaluje“ další

5. Pesticidní paradox – Opakované testy nenaleznou nic – opakovat, revidovat

6. Testování je závislé na kontextu – Test. je vykonáváno odlišně v různých kontextech (banka X e-shop)

7. Falešná představa o neexistenci omylů – Nalezení a opravení chyb nepomůže, když je systém nepoužitelný

Page 4: Zajištení kvality programového vybavení - testováníecom.ef.jcu.cz/web2/download/teorie/11_zajisteni... · 4. Shlukování chyb – Jedna chyba na sebe „nabaluje“ další.

Úrovně testování

Testování komponent • Základ testování: Požadavky na komponenty, detailní návrh, kód • Objekty testování: Komponenty, programy, konverze dat, DB

moduly • Typicky se realizuje přístupem k testovanému kódu s pomocí unit

test frameworku • Chyby opravovány hned bez formálního řízení • Test driven development – vývoj v malých cyklech – test první Integrační testování • Základ testování: Návrh SW, Achitektura, Workflow, příklady použití • Objekty testování:Podsystémy,impl.databází, infrastruktura,

ozhranní • Ověřuje rozhranní mezi komponentami, interakce různých částí

Page 5: Zajištení kvality programového vybavení - testováníecom.ef.jcu.cz/web2/download/teorie/11_zajisteni... · 4. Shlukování chyb – Jedna chyba na sebe „nabaluje“ další.

Úrovně testování Systémové testování • Základ testování: Specifikace požadavků systému a SW, případy užití, funkcionální

specifikace, reporty a analýzy rizik • Objekty testování: Systémové, uživ. a operační manuály, konfig. systému a konfig.

Data • Chování celého systému / produktu • Testovací prostředí by mělo korespondovat s finálním – produkčním • Funkcionální i nefunkcionální požadavky Akceptační testování • Základ testování: Uživatelské a systémové požadavky, případy použití, byznys

procesy, reporty analýzy rizik • Objekty testování: Byznys procesy, provozní a údržbové procesy uživ.postupy,

formuláře, reporty, konfig. Data • Často realizované zákazníkem • Vyhodnocení připravenosti systému pro nasazení a používání

Page 6: Zajištení kvality programového vybavení - testováníecom.ef.jcu.cz/web2/download/teorie/11_zajisteni... · 4. Shlukování chyb – Jedna chyba na sebe „nabaluje“ další.

Typy testů – různé účely

• Funkcionální testování („co“ systém dělá) – Zkoumání externího chování SW (black box testing) – Založeny na funkcích a vlastnostech – Na všech úrovních testování

• Nefunkcionální testování („jak“ systém pracuje) – výkon, zátěžové testování, stres test., použitelnost, spolehlivost,

udržovatelnost, přenositelnost • Strukturální testování

– Zkoumání interní struktury systému (white box testing) – Měření pokrytí kódu, příkazů nebo rozhodování (stat.analýza) – Na všech úrovních ( architektura, byznys modely ..)

• Regresní testování – Opakované testování po modifikaci -> cíl je najít defekty zanesené

změnou

Page 7: Zajištení kvality programového vybavení - testováníecom.ef.jcu.cz/web2/download/teorie/11_zajisteni... · 4. Shlukování chyb – Jedna chyba na sebe „nabaluje“ další.

Proces vývoje testů

• Návrh testů na základě identifikace test.podmínek

• Specifikace testovacích případů • Specifikace testovacích procedur (pořadí činností

pro vykonání testu) • Snaha identifikovat test.podmínky (položka nebo

událost, která může být verifikována) • Sledovatelnost směrem od test.podmínek zpět ke

specifikacím a požadavkům -> účinná dopadová analýza a pokrytí

Page 8: Zajištení kvality programového vybavení - testováníecom.ef.jcu.cz/web2/download/teorie/11_zajisteni... · 4. Shlukování chyb – Jedna chyba na sebe „nabaluje“ další.

Specifikace test případu

• ID: identifikátor • Položky testu: stručný popis položek a vlastností, které

budou testovány • Specifikace vstupů: všechny vstupy (databáze. Soubory,

hodnoty z OS, atd.), specifikace vztahů mezi vstupy • Specifikace výstupů: všechny výstupy a vlastnosti (např

odezvy), definice přesných hodnot jednotlivých výstupů • Požadavky na prostředí: HW, SW, Ostatní (např. zaškolený

personál) • Speciální procedurální požadavky: omezení na

test.procedury (specifické nastavení atd.) • Mezipřípadové závislosti: seznam identifikátorů test.

Případů, které musí být vykonány před tímto případem

Page 9: Zajištení kvality programového vybavení - testováníecom.ef.jcu.cz/web2/download/teorie/11_zajisteni... · 4. Shlukování chyb – Jedna chyba na sebe „nabaluje“ další.

Kategorie technik návrhu testů

Cílem je identifikace test.podmínek, test. případů a test. dat Black-box testing • Založené na specifikaci – nic nevíme o vnitřní struktuře – vycházíme

z analýzy dokumentace testování • Funkcionální i nefunkcionální testování White-box testing • Založené na analýze struktury komponenty nebo systému • Používá se informace o tom, jak je SW vytvořen a z toho se odvozují

test. Případy • Rozsah pokrytí může být měřen pro existující test. Případy a další

test.případy se vytvoří pro zvýšení pokrytí

Page 10: Zajištení kvality programového vybavení - testováníecom.ef.jcu.cz/web2/download/teorie/11_zajisteni... · 4. Shlukování chyb – Jedna chyba na sebe „nabaluje“ další.

Techniky black-box testing Rozdělení ekvivalencí

– Vstupy rozděleny do skupin s očekávaným stejným chováním – Sekce ekvivalencí pro platná i neplatná data (mohou být nalezeny i pro výstupy,

vnitřní hodnoty, časově související hodnoty, parametry rozhraní) • Př.: Systém sledující délku hesla uživatele povoluje heslo min. 8 znaků a

max 64 znaků 1. Identifikujeme hraniční hodnoty 2. Určení sekcí platných i neplatných hodnot a očekávané výsledky testu 3. Vytvoření test. případu pro každou sekci

Page 11: Zajištení kvality programového vybavení - testováníecom.ef.jcu.cz/web2/download/teorie/11_zajisteni... · 4. Shlukování chyb – Jedna chyba na sebe „nabaluje“ další.

Techniky black-box testing

2. Analýza hraničních hodnot • •Chování na okraji rozdělení ekviv. může být nesprávné s

větší pravděpodobností, než chování uvnitř dané sekce

Rozšíření předchozího příkladu o testování na hranicích rozdělení

Page 12: Zajištení kvality programového vybavení - testováníecom.ef.jcu.cz/web2/download/teorie/11_zajisteni... · 4. Shlukování chyb – Jedna chyba na sebe „nabaluje“ další.

Techniky black-box testing

3. Testování rozhodovacích tabulek – Pro zachycení požadavků s logickými podmínkami

– Identifikování podmínky a činnosti systému

– Rozhodovací tab. obsahuje spouštěcí podmínky (často bool) pro všechny vstup. podmínky a výsledné činnosti pro každou kombinaci podmínek

– Každý sloupec odpovídá byznys pravidlu

– Standardem pokrytí je mít alespoň jeden test na každý sloupec v tabulce

Page 13: Zajištení kvality programového vybavení - testováníecom.ef.jcu.cz/web2/download/teorie/11_zajisteni... · 4. Shlukování chyb – Jedna chyba na sebe „nabaluje“ další.

Techniky black-box testing- příklad

• Systém musí rozhodnout, zda firma finančně přispěje svému zaměstnanci na důchodové spoření.Aby tak učinila, musí mít zaměstnanec založeno důchodové spoření a musí být ve firmě alespoň 3 měsíce.

Page 14: Zajištení kvality programového vybavení - testováníecom.ef.jcu.cz/web2/download/teorie/11_zajisteni... · 4. Shlukování chyb – Jedna chyba na sebe „nabaluje“ další.

Techniky black-box testing- příklad

• Transformace na testovací případy

Page 15: Zajištení kvality programového vybavení - testováníecom.ef.jcu.cz/web2/download/teorie/11_zajisteni... · 4. Shlukování chyb – Jedna chyba na sebe „nabaluje“ další.

Transformace na testovací případy

4. Testování přechodových stavů – Systém může dávat různou odpověď v závislosti na

aktuálních podmínkách nebo předcházející historii

– Stavy musejí být samostatelné, identifikovatelné a musí jich být konečně množství

– Stavová tabulka

– Testy se navrhují pro pokrytí typických nebo všech stavů, s cílem vykonat každý přechod, testovat neplatné přechody stavů

– Hlavně pro embedded SW a technickou automatizaci

Page 16: Zajištení kvality programového vybavení - testováníecom.ef.jcu.cz/web2/download/teorie/11_zajisteni... · 4. Shlukování chyb – Jedna chyba na sebe „nabaluje“ další.

Techniky black-box testing

5. Testování případů užití – Odvozeny z use cases – Mohou být na abstraktní úrovni (úroveň obch.procesu

nebo systému) – Obvykle základní a alternativní scénáře – Užitečné pro akceptační testování – Pomůžou odhalit integrační defekty způsobené

interakcí komponent – Definovány z pohledu uživatele – ne systému –

popisují co uživatel vidí a co dělá

Page 17: Zajištení kvality programového vybavení - testováníecom.ef.jcu.cz/web2/download/teorie/11_zajisteni... · 4. Shlukování chyb – Jedna chyba na sebe „nabaluje“ další.

Techniky white-box testing

Založené na idetifikované struktuře SW nebo systému

Příklady: • Úroveň komponenty: struktura SW komponenty,

tj. příkazy, rozhodnutí nebo větve • Integrační úroveň: strom volání (moduly volají

další moduly) • Systémová úroveň: struktura menu, web.stránky,

byznys procesu

Page 18: Zajištení kvality programového vybavení - testováníecom.ef.jcu.cz/web2/download/teorie/11_zajisteni... · 4. Shlukování chyb – Jedna chyba na sebe „nabaluje“ další.

Výběr testovacích technik

• Typ systému • Regulační standardy • Zákaznické / smluvní požadavky • Úroveň rizika • Typ rizika • Cíl testování • Dostupná dokumentace • Znalosti testerů • Čas a rozpočet • Životní cyklus vývoje • Modely případu užití • Předcházející zkušenosti

Page 19: Zajištení kvality programového vybavení - testováníecom.ef.jcu.cz/web2/download/teorie/11_zajisteni... · 4. Shlukování chyb – Jedna chyba na sebe „nabaluje“ další.

Nástroje

1. Management testování – Rozhraní pro vykonáváníí testů, sledování defektů,řízení

požadavků, reportování 2. Management požadavků

– Popisy požadavků, trasování požadavků 3. Management incidentů

– Uchovávají a řídí záznamy o incidentech a požadavcích na změnu

4. Navržení testů – Z návrhových modelů, kódu, GUI nebo z požadavků

5. Příprava testovacích dat – Manipulace s DB, soubory nebo přenosy dat

Page 20: Zajištení kvality programového vybavení - testováníecom.ef.jcu.cz/web2/download/teorie/11_zajisteni... · 4. Shlukování chyb – Jedna chyba na sebe „nabaluje“ další.

Nástroje Statické testování 1. Nástroje pro statickou analýzu

– Nalezení chyb před dynamickým testováním, analýza struktur a závislostí 2. Modelovací nástroje

– Validace modelů SW (např. fyzický dat.model pro rel.DB) Vykonávání a zaznamenávání testů 1. Nástroje pro vykonávání testů

– Automatické vykonávání testů, reporting, konfigurace 2. FW pro Unit test

– Usnadňuje testování komponent simulováním prostředí, ve kterém bude běžet 3. Komparátory testů

– Rozdíly mezi soubory, databázemi nebo výsledky testování 4. Měření pokrytí

Page 21: Zajištení kvality programového vybavení - testováníecom.ef.jcu.cz/web2/download/teorie/11_zajisteni... · 4. Shlukování chyb – Jedna chyba na sebe „nabaluje“ další.

Nástroje Výkon a monitorování 1. Nástroje pro dynamickou analýzu

– Testování komponent, integrační testování 2. Testování výkonu / stres testování

– Simulace zátěže Vykonávání a zaznamenávání testů 1. Nástroje pro vykonávání testů

– Automatické vykonávání testů, reporting, konfigurace 2. FW pro Unit test

– Usnadňuje testování komponent simulováním prostředí, ve kterém bude běžet 3. Komparátory testů

– Rozdíly mezi soubory, databázemi nebo výsledky testování 4. Měření pokrytí

Page 22: Zajištení kvality programového vybavení - testováníecom.ef.jcu.cz/web2/download/teorie/11_zajisteni... · 4. Shlukování chyb – Jedna chyba na sebe „nabaluje“ další.

Unit testy • 1. Izolované

– Není potřeba stavět celý dům, když je potřeba testovat zvonek • 2. Opakovatelné

– Test musí být spustitelný pro každého, nezávisle na tom jaké má nastavení prostředí

• 3. Rychlé – Čas jsou peníze

• 4. Self documenting – Není potřeba popisovat jak komponenta pracuje, stačí se podívat na test

Nástroje: • JUnit (http://www.junit.org) • NUnit (http://www.nunit.org) • Test NG (http://testng.org)


Recommended