Testování softwaru. 10. dubna Bořek Zelinka

Podobné dokumenty
Zátěžové testy aplikací

End-to-end testování. 26. dubna Bořek Zelinka

Testování software. Jaroslav Žáček

A7B36SI2 Tematický okruh SI08 Revidoval: Martin Kvetko

Testování Java EE aplikací Petr Adámek

PŘÍLOHA C Požadavky na Dokumentaci

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

Vývoj řízený testy Test Driven Development

Náklady na odstranění chyby stoupají, v čím pozdější fázi životního cyklu aplikace je chyba nalezena.

Náklady na odstranění chyby stoupají, v čím pozdější fázi životního cyklu aplikace je chyba nalezena.

1 Úvod 1.1 Vlastnosti programového vybavení (SW)

Obsah. Úvod 9 Poděkování 10 Co je obsahem této knihy 10 Pro koho je tato kniha určena 11 Zpětná vazba od čtenářů 11 Errata 11

TECHNICKÉ POŽADAVKY NA NÁVRH, IMPLEMENTACI, PROVOZ, ÚDRŽBU A ROZVOJ INFORMAČNÍHO SYSTÉMU

Testing as a Service. Přístupné, flexibilní a cenově výhodné řešení pro ověření kvality softwaru. Kompletní portfolio služeb testování softwaru

Proces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda

Obsah. Základní pojmy, zkratky Předpisy a literatura přehled Přístup k validacím počítačových systémů URS Validace Předpisy a literatura

Metodiky pro automatické testování webové aplikace. Ondřej Melkes, Martin Komenda

Jak být online a ušetřit? Ing. Ondřej Helar

1.1 Zátěžové testování

Komunikace mezi businessem a IT

Výzva k podání nabídek, na kterou se nevztahuje zadávací řízení dle zákona č. 137/2006 Sb.

CobiT. Control Objectives for Information and related Technology. Teplá u Mariánských Lázní, 6. října 2004

TREND POPIS ODPOVĚDNOSTI PRACOVNÍKA MANAŽER VÝVOJE

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

Integrační modul REX. pro napojení elektronické spisové služby e-spis LITE k informačnímu systému základních registrů

Odbor informatiky a provozu informačních technologií

PENETRAČNÍ TESTY CYBER SECURITY

Seznámení s přípravou platformy pro zajištění služeb dodávaní dokumentů včetně MVS: ZÍSKEJ

Příloha č. 2 ke smlouvě. Rozsah a podmínky provozní podpory

Jak vytvořit správné Zadání IS

Řešení pro správu logů, shodu a bezpečnost ve státní správě a samosprávě. Ing. Martin Pavlica Corpus Solutions a.s. divize Security Expert

Program vyhodnocení rizik a stavu pro službu Active Directory a Microsoft Online Services

Seznámení s přípravou platformy pro zajištění služeb dodávaní dokumentů včetně MVS: ZÍSKEJ

Technická specifikace předmětu plnění:

INFORMAČNÍ SYSTÉMY , Ing. Jiří Mráz

SOFTWAROVÉ INŽENÝRSTVÍ 1

Testování software. Jaroslav Žáček

Cíle a měřitelné parametry budování a provozu egc. Příloha č. 1 Souhrnné analytické zprávy

Konvence testování navazujících evidencí Metodický popis testování a evidence testů navazující evidence Verze: 2.0 Datum:

SPECIFIKA CERTIFIKACE PODLE ČSN EN ISO 9001:2001 V ORGANIZACÍCH, KTERÉ SE ZABÝVAJÍ VÝVOJEM SOFTWARE

Seznámení s přípravou platformy pro zajištění služeb dodávaní dokumentů včetně MVS: ZÍSKEJ - I

5 Požadavky a jejich specifikace

Úvod do validace počítačových systémů Ing. Miroslav Mík. Obsah

X36SIN: Softwarové inženýrství. Životní cyklus a plánování

Indexace pro souborová uložiště a Vyhledávací centrum

Testování SW produktů. Jiří Sochor, Jaroslav Ráček 1

Specializace Návrhář software na základě analýzy vytváří návrh softwarových aplikací ve formě schémat a diagramů.

Lekce 9 - Migrace dat

Rozvoj a údržba systémů

Jak testovat software v praxi. aneb šetříme svůj vlastní čas

Ročníkový projekt. Jaroslav Žáček

UniSPIS Oboustranné rozhraní RŽP na e-spis

2013 IBM Corporation

Institut elektronických aplikací, s.r.o. Stránka 1 z 7. AVEPOP - Automatický Výdej a Evidence Pracovních a Ochranných Prostředků

Seminární práce Vývoj informačního systému. Manažerská informatika 2 Ing. Miroslav Lorenc

Projekt č. TA

Doporučeno pro předpokládané využití serveru pro zpracování 2000 dokumentů měsíčně. HW: 3GHz procesor, 2 jádra, 8GB RAM

Agenda. Smysl teoretických cvičení Klasifikace Obecná pravidla Bugzilla Klasické problémy Poznámky k jednotlivým pojmům Antipatterns Testování testů

WORKFLOW. Procesní přístup. Základ perspektivního úspěšného podnikového řízení. Funkčnířízení založené na dělbě práce

Metodická pomůcka pro specifikaci dočasných opatření. doc. Ing. Pavel Šenovský, Ph.D. Ing. Pavlína Ježková

Tovek Server. Tovek Server nabízí následující základní a servisní funkce: Bezpečnost Statistiky Locale

Konvence testování navazujících evidencí

Technica Solutions. Půjčovna nářadí. Úvodní studie pro Q&X Trading

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY

Testování operačního systému Windows Phone 8

5 Požadavky a jejich specifikace

Identifikátor materiálu: ICT-3-16

KATALOG SLUŽEB NÁSLEDNÉ PODPORY

Národní infrastruktura pro elektronické zadávání veřejných zakázek (NIPEZ)

Kvalita SW produktů. Jiří Sochor, Jaroslav Ráček 1

A7B36SI2 Tematický okruh SI11 Revidoval: Martin Kvetko

Komunikační strategie a plán rozvoje portálu portal.gov.cz

Lovci, kupci. a sběrači. s tabletem. 24. května Alois Filip

VIZE INFORMATIKY V PRAZE

Ing. Pavel Reich, PA Consulting Group 31. října 2001

Osnova studie proveditelnosti pro projekt zakládání a rozvoje klastrů

Sjednocení dohledových systémů a CMDB

Hodnotící kritéria programu RRC/07/2015

BI-TIS Případová studie

3 Inženýrství systémů založených na počítačích (Computer-based System Engineering)

Protokol o atestačním řízení

3 Inženýrství systémů založených na počítačích (Computer-based System Engineering)

Připravte se na konjunkturu se systémem řízení údržby SGM. SGM moderní nástroj pro řízení údržby nejen výrobních zařízení

Informační systémy veřejné správy (ISVS)

Infor Performance management. Jakub Urbášek

Technická specifikace soutěžených služeb

Mobilní aplikace ve světě ERP. Asseco Solutions, a.s. a Simac Technik ČR, a.s.

Hardening ICT platforem: teorie nebo praxe. Pavel Hejduk ČEZ ICT Services, a. s.

14 Úvod do plánování projektu Řízení projektu

Obsah. Zpracoval:

RIA k transpozici směrnice o platebních službách na vnitřním trhu


Informační systém pro vedení ţivnostenského rejstříku IS RŢP

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

Management rizik v životním cyklu produktu

Vytvoření bootovatelného média

INTERNÍ TECHNICKÝ STANDARD ITS

Odpov di na dotazy uchaze k ve ejné zakázce. 20/ Rámcová smlouva o vývoji a údržb aplika ního programového vybavení EDS, EXK a DAP

Metodika ověřování zařízení pro odbavovací a informační systémy ve veřejné osobní dopravě

Výčet strategií a cílů, na jejichž plnění se projektový okruh podílí: Strategický rámec rozvoje veřejné správy České republiky pro období

Transkript:

Testování softwaru 10. dubna 2013 Bořek Zelinka

Agenda Definice testování Testování v rámci vývoje softwaru Základní rozdělení testů Představení testovacích technik Testovací strategie Copyright Unicorn Systems 2

Definice testování

Definice Definice testování se průběžně mění stejně, jako se mění programy a způsob jejich vývoje. Proces získání důvěry v to, že program nebo systém dělá to, co se od něj očekává. Hetzel 1973 Provozování programu nebo systému za účelem hledání chyb. Myers 1979 Jakákoliv aktivita zaměřená na vyhodnocení vlastností a schopností programu nebo systému a určení, zda odpovídají očekávaným výsledkům. Hetzel 1983 Testování je úsilí vyvinuté ke zjištění toho, zda systém pracuje tak, jak je popsáno v jeho návrhu. Zelinka 2007 Proces získávání informací o stavu a vlastnostech systému za účelem jejich dalšího zpracování. Copyright Unicorn Systems 4

Proces testování Testování je proces Má vlastní životní cyklus (posloupnost aktivit, které je potřeba provést) - KDY Má definované vstupy a výstupy z jednotlivých aktivit - CO Má definovanou odpovědnost rolí v rámci celého procesu - KDO Řídí se metodikou, která celý proces popisuje, existují všeobecně uznávané normy a standardy - JAK Copyright Unicorn Systems 5

Proč testovat? Ověření a předvedení funkčnosti softwaru Identifikace defektů a jejich předcházení Copyright Unicorn Systems 6

Součást vývoje softwaru

Cyklus vývoje softwaru Úvodní studie Základní myšlenka projektu Identifikace požadavků na nový systém Technický projekt Analýza požadavků Tvorba dokumentace pro jednotlivé součásti Konstrukce Programování jednotlivých součástí systému Integrace naprogramovaných součástí Zavedení Instalace nového systému do cílového prostředí Copyright Unicorn Systems 8

Testování je součástí vývoje Životní cyklus testování jako součást vývojového cyklu Copyright Unicorn Systems 9

Testovací cyklus Plánování testů Definice projektu, co kontrolovat a jak vyhodnocovat. Identifikace testovacích požadavků, strategie testování, zdrojů pro testy a příprava testovacího plánu. Analýza a příprava testů Návrh jednotlivých testů (test cases), které ověří, zda jsou požadavky na systém splněny. Identifikace a příprava potřebných testovacích dat. Provedení a vyhodnocení testů Provedení testů a zaznamenání jejich výsledků. Analýza výsledků a vyhodnocení, zda nedošlo k chybě. Sledování defektů Průběžná kontrola počtu defektů, jejich závažností a způsobů odstranění. Copyright Unicorn Systems 10

Typy a druhy testů

Způsoby rozdělení testů Testy lze rozdělit podle různých ukazatelů: Míra kontroly programového kódu Způsoby provádění testů Rozměry kvality, které testy ověřují Fáze vývoje informačního systému Copyright Unicorn Systems 12

Znalost kódu Testy lze dělit podlé míry znalosti testovaného kódu: White (glass) box Známe principy fungování testovaného softwaru. Známe strukturu programu, datový model, použitý kód. Příklad: Víme, že aplikace vezme na vstupu dvě čísla a na výstupu vrátí jejich součet. Black box Není třeba znát přesný princip fungování. Není třeba znát strukturu programu. Známe definované vstupy a očekávané definované výstupy. Vycházíme z požadavků na systém a ověřujeme, zda je software splňuje. Příklad: Aplikace vezme na vstupu dvojku a trojku a na výstupu vrátí pětku. Copyright Unicorn Systems 13

Způsob provádění Je možné odlišit testy podle toho, kdo/co testy provádí: Manuální testování Testování prováděné přímo testery. Jednotlivé testy jsou prováděny a vyhodnocovány manuálně. Tester podle připravených podkladů provede všechny potřebné kroky a zaznamená výsledek. Automatizované testování Testy prováděné prostřednictvím specializovaných softwarových nástrojů. Jednotlivé testy jsou připraveny a nahrány jako skripty do automatizovaných nástrojů. Lze provádět velké množství testů v krátkém čase. Copyright Unicorn Systems 14

Rozměry kvality Většinu základních vlastností softwaru lze zařadit pod některý ze základních rozměrů kvality FURPS: Functionality Funkčnost Usability Použitelnost Reliability Spolehlivost Performance Výkon Suportability Podporovatelnost Copyright Unicorn Systems 15

Rozměry kvality II. Testy lze rozdělit podle toho, jaký ze základních rozměrů kvality FURPS ověřují: Copyright Unicorn Systems 16

Funkční testování FUNCTIONALITY Do této kategorie spadají testy zaměřené na testování funkčních požadavků. Zejména: Functionality testing testy, zda jsou poskytovány funkčnosti uvedené v návrhu systému. Security testing ověření přístupových práv k funkčnostem, popř. datům. Volume testing testy stability a zachování všech funkčností při vysokém objemu dat v databázi. V případě, kdy test ověřuje výkon systému při zpracování velkých objemů dat, jde o test výkonnostní. Copyright Unicorn Systems 17

Testování použitelnosti USABILITY Mezi základní testy použitelnosti patří hlavně: Testy uživatelského rozhraní (GUI) Testy on-line nápovědy Testy školících materiálů Testy dokumentace Copyright Unicorn Systems 18

Testování spolehlivosti RELIABILITY Mezi testy spolehlivosti patří zejména kontroly zachování poskytovaných funkcí a vlastností systému. Integrity testing testy robustnosti systému (odolnosti proti selhání) po datové i funkční stránce. Structure testing typicky testy webových rozhraní (chybné odkazy, chybějící stránky, osamocené stránky...). Stress testing ověření stability a funkčnosti systému při nestandardních podmínkách (snížení operační paměti aplikačního serveru, omezené sdílení HW i SW prostředků. Copyright Unicorn Systems 19

Výkonnostní testování PERFORMANCE Výkonnostní testy jsou specifické svými nároky na testovaný systém. Obvykle je provádí specialisté. Performance profile měření odezev systému, nalézání výkonnostně slabých míst systému (tzv. "úzká hrdla"). Contention testing testy zachování funkčnosti systému při přístupu více uživatelů (popř. jiných systémů) ke sdíleným HW i SW prostředkům. Load testing testy chování a výkonu systému pod vysokou zátěží (vysoký počet současně pracujících uživatelů). Benchmark testing porovnání výkonnosti systémů na referenčním prostředí. Copyright Unicorn Systems 20

Testování podporovatelnosti SUPPORTABILITY Testování podporovatelnosti ověřuje jakou kvalitu údržby testovaný software podporuje. Configuration testing ověřuje, zda systém bude fungovat i na jiných přípustných HW / SW konfiguracích, než jaké jsou nastaveny v současném testovacím (popř. produkčním) prostředí. Instalation testing test korektní instalace na různé HW a SW konfigurace, testy kompletní instalace, updatů apod. Copyright Unicorn Systems 21

Fáze testů Z časového hlediska lze testy rozdělit do fází. Ne všechny testovací fáze probíhají v rámci testovacího týmu! Testovací úsilí je rozděleno mezi vývojový tým a tým testerů, případně další role. Copyright Unicorn Systems 22

Fáze testů II. Unit testy První fáze testování. Probíhá na straně vývojového týmu. Po dokončení části systému vývojář svou práci otestuje. Jde převážně o testy na zřejmé chyby v programu a dodržení domluvených konvencí. Assembly testy Ověření skutečnosti, že součásti dodané vývojovým týmem lze integrovat, tj. vytvořit funkční build aplikace. Smoke testy Ověřují stabilitu buildu. To je nutné především pro zajištění proveditelnosti následného hloubkového systémového testu. Eliminuje se tak riziko rozsáhlého selhání aplikace v době, kdy systém testuje větší počet testerů. Copyright Unicorn Systems 23

Fáze testů III. Systémové testy - Hloubkový test systému, při kterém se zpravidla provádějí téměř všechny typy testů (FURPS). Důležitou vlastností systémového testu je regresnost. Regresní test je test systému, který kromě nových funkčností testuje i všechny funkčnosti přidané dříve. Jediná cesta, jak se opravdu ujistit, že nebyly zaneseny nové chyby je testovat vše znovu. Uživatelské akceptační testy - Uživatelské akceptační testy jsou zaměřeny na testování standardních i méně standardních situací v systému. Testy provádí koncový uživatel na vlastním testovacím prostředí. Tím je do vysoké míry zaručena reálnost testovaných situací. Copyright Unicorn Systems 24

Techniky testování

Identifikace testovacích technik Každá testovací technika je definována základními prvky Testeři kdo testování provádí Pokrytí jaká část programu bude testována Potenciální problémy proč testujeme (jaká rizika se pokoušíme eliminovat) Aktivity jakým budeme testy provádět Vyhodnocení jak vyhodnotíme zda test prošel Testovací techniky se obvykle zaměřují na dva až tři prvky, jejichž kombinace pak danou techniku jasně určuje. Copyright Unicorn Systems 26

Výběr testovacích technik Jaká testovací technika je nejlepší? Každá má své klady a zápory. Neexistuje jediná správná cesta. Použití více technik může zlepšit pokrytí. Copyright Unicorn Systems 27

Testovací techniky V současnosti existuje více než 200 publikovaných technik testování. Některé se sice vzájemně překrývají (nebo vzájemně vylučují), lze však nalézt některé společné okruhy. Testování funkcí Ekvivalenční analýza Testování podle specifikace Testování na základě rizik Stress testování Regresní testování Volné testování Uživatelské testování Scénářové testování Stochastické testování Copyright Unicorn Systems 28

Testovací strategie

Volba testovací strategie Pro správnou volbu strategie je nutné: Identifikovat cíle a výstupy testovacího procesu. Určit vhodný způsob nasazení dostupných zdrojů. Definovat odpovídající rozsah a meze testování. Určit jak bude monitorován a vyhodnocován průběh testování. Copyright Unicorn Systems 30

Úkoly testovacího týmu Hlavními úkoly testovacích týmů bývá: Hledání chyb (od nejzávažnějších k nejméně závažným) Zhodnocení stavu vyvíjeného systému Tyto úkoly mohou stát v opozici Hledání veškerých chyb může způsobit, že nebude možné ve stanoveném čase zhodnotit všechny součásti systému. Ve snaze pokrýt testy veškeré součásti systému, můžeme přehlédnout závažné chyby, které bylo možné odhalit při důkladnějším (jinak zaměřeném) testování. Copyright Unicorn Systems 31

Obsah testovací strategie Testovací strategie musí popisovat metodiku testování použitou v rámci projektu. Stanovuje primární okruhy aktivit, odpovědnosti rolí, vstupní a výstupní kritéria testování. Cíle testování Fáze testování a jejich milníky Typy testů Role a jejich odpovědnosti Testovací prostředí a data Defekt tracking Přístup k test analýze Identifikace rizik a způsobů jak je eliminovat Copyright Unicorn Systems 32

Vývoj testovací strategie I. Jak se v průběhu projektu mění podmínky, za kterých probíhá testování, tak se průběžně mění i testovací strategie. Testovací strategie by měla vždy reflektovat aktuální podmínky projektu! Copyright Unicorn Systems 33

Vývoj testovací strategie II. Vývoj strategie vzhledem k aktuálnímu stavu projektu. Copyright Unicorn Systems 34

Vývoj testovací strategie III. Bez přizpůsobování v průběhu projektu se testovací strategie stane v krátké době neefektivní a výsledky testování nemají žádnou vypovídací hodnotu! Copyright Unicorn Systems 35

Vlastnosti testovací strategie Dobrá testovací strategie musí mít následující vlastnosti: Rozmanitá Různorodá kombinace typů testů a testovacích technik zajišťuje, že všechny kvalitativní dimenze systému budou ověřeny. Zaměřená na rizika Testování se soustředí na rizika a umožňuje vhodně identifikovat priority testů pro plánování. Specifická pro produkt Každý produkt se musí testovat jinak. Praktická Testovací aktivity musí být efektivní a jsou vybrány způsoby jak zajistit jednoduché a účinné testování v rámci daného rozpočtu. Obhájitelné Všechny testovací aktivity musí mít zdůvodnění proč jsou plánovány a prováděny tak, jak bylo navrženo. Copyright Unicorn Systems 36

Q&A