Testování software. Jaroslav Žáček

Podobné dokumenty
Testování software. Jaroslav Žáček

Vývoj řízený testy Test Driven Development

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

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

Základy programovaní 3 - Java. Unit testy. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 26.,27.

A7B36SI2 Tematický okruh SI08 Revidoval: Martin Kvetko

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

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

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

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

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

Jak testovat software v praxi

Modelování požadavků

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

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

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

Informační systémy ve strojírenství

Manažerská informatika - projektové řízení

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

Životní cyklus vývoje SW. Jaroslav Žáček

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Citace článku. Alena Buchalcevová, Jan Kučera. Katedra informačních technologií VŠE Praha nám. W.Churchilla 4, Praha 3

Aplikační Dokumentace Standardy ICT MPSV

Nástroje pro průběžnou integraci a testování

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

JAVA Unit testing Java, zimní semestr

Aplikační standard - Dokumentace ICT Standardy MPSV MPSV

Zátěžové testy aplikací

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

Jakub Čermák Microsoft Student Partner

Hodnocení metodik vývoje informačních systémů z pohledu testování

Specifikace požadavků, UC. Jaroslav Žáček

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

XINF1. Jaroslav Žáček

Specifikace. Odevzdání do

Návrh IS - UML. Jaroslav Žáček

Quality assurance a testovací nástroje v praxi. Bohumír Zoubek bohumir.zoubek@profinit.eu

Návrh IS - UML. Jaroslav Žáček

UML a jeho použití v procesu vývoje. Jaroslav Žáček jaroslav.zacek@osu.cz

Nebojte se přiznat, že potřebujete SQA

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy

Anywhere - IT-break. Milan Lempera UnitTest.cz

TÉMATICKÝ OKRUH Softwarové inženýrství

Webové služby DPD. Verze

Y13ANW ÚVOD DO WEBOVÝCH METODIK. Ing. Martin Molhanec, CSc.

2012 ET NETERA a.s. Wicket přehled technologie Martin Strejc

Využití chemie v procesu testování webových aplikací vytvořených pomocí technologií PHP a Java

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

Řízení reálných projektů, agilní metodiky

Význam měřm. Mgr. Anna Borovcová doc. Ing. Alena Buchalcevová, Ph.D. VŠE Praha

Project management. Příprava projektu Zahájení High level plánování. Vykonávání Detailní plánování Vykonávání Řízení a monitorování

RUP - Disciplíny. Jaroslav Žáček jaroslav.zacek@osu.cz

SRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek

Doplňování chybějících hodnot v kategoriálních datech 2.00

12 Zajištění kvality programového vybavení

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

Informační systémy. Jaroslav Žáček

CASE. Jaroslav Žáček

IS pro podporu BOZP na FIT ČVUT

Testovací metoda. Testovací metoda. public class SimpleTest {

V Brně dne a

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

Návrh softwarových systémů - úvod, motivace

Testování SOA systémů v Oracle SOA Suite

Informační systémy. Jaroslav Žáček

Metodický pokyn k uvedení registru do produkčního provozu

Testování aplikací do náročného provozu

Jak efektivně testovat IB. Otakar Ertl

Návrh softwarových systémů - architektura softwarových systémů

CASE nástroje. Jaroslav Žáček

Vrstvy programového vybavení Klasifikace Systémové prostředky, ostatní SW Pořizování Využití

Architektura aplikace

Plán testů. Úvod. Jednotkové (unit) testování

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

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

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

UNICORN COLLEGE BAKALÁŘSKÁ PRÁCE

MOBILNÍ SKLADNÍK. Příručka k základnímu ovládání. Beta verze popisu produktu Aktualizace dokumentu: z 10

PŘÍLOHA C Požadavky na Dokumentaci

Dokumentace software

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

Bioadresář. Specifikace požadavků. Verze Datum Projektový tým Bc. Martin Ventruba Bc. Ondřej Veselý Bc. Stratos Zerdaloglu

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Objektová tvorba SW, Analýza požadavků 2006 UOMO 53

Prototypy a testování

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

EXTRAKT z technické normy ISO

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

Bakalářská práce Tereza Heinová

Vývoj aplikací řízený testy. Miroslav Beneš

Uvažujete o změně automatizovaného knihovního systému?

Testování použitelnosti co to obnáší

Databáze s tisíci uložených procedur. Pavel Bláhovec, DiS pavel@blahovec.cz

Virtuální ověřování výroby Robotika Process Simulate Virtual Commissioning Virtuelle Inbetriebnahme

Obsah přednášky. Vývoj aplikací řízený testy. Extrémní programování (XP) Požadavky na nástroje pro XP. Testování aplikací

Vysoká škola ekonomická v Praze

8 Třídy, objekty, metody, předávání argumentů metod

Bakalářská práce Automatizace testování webových projektů

Příloha č. 3. Charta projektu plné znění (pro jiné OSS než MŠMT)

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Transkript:

Testování software Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/

Testování Obsáhlá disciplína, existuje spoustu pohledů Problém při nastavení míry kvality Kvalita: Schopnost objektu být použit. Použit jak? Použít kým? Chyba: Vlastnost objektu, která snižuje jeho kvalitu.

Testování R. Patton: Cílem softwarového testera je vyhledávat chyby, vyhledat je co nejdříve a zajistit jejich nápravu. Testování: Disciplína, která ověřuje kvalitu objektu tak, že hledá chyby.

Základní členění testování Black box White box

Kdy je vhodné testovat? Ve všech fázích vývojového procesu? Všechno, nebo jen určité části aplikace? Testuje se i po dokončení vývoje? Testujeme již dříve otestované? Když se změní požadavky, co se stane se stávajícími testy?

Metodiky vývoje a testování

Metodiky vývoje a testování

Metodiky vývoje a testování

Metodiky vývoje a testování

Testování v průběhu vývoje

Testované oblasti

Testování a funkční požadavky Dle FURPS Funkcionality Usability Reliability Dle ISO/IEC 12207 Hardwarové požadavky Softwarové požadavky Ostatní požadavky Performace Supportability Každé dělení má svůj účel, který slouží jiným typům testování

Typy testů

Typy testů - spouštění Manuální testy prováděny lidmi (interakce se systémem/gui) vizuální kontrola kontrola lokalizace typicky testy použitelnosti Automatizované testy množina programového kódu a dat ověřují získaná data oproti očekávaným hodnotám

Typy testů - spouštění

Testovací případ (Test Case) Formalizmus Množina podmínek a hodnot, které určují, zda se software chová správně. základní jednotka testování vychází z Use Case, nejlépe ze scénáře je definován atributy (specifikace vstupů a výstupů, požadavky na prostředí, jednoznačný identifikátor, popis testované oblasti) Testovací scénář je množina testovacích případů slučujících je do logic- kého sledu tak, aby bylo možné je provést a dávaly takto smysl.

Test Case

Formalizmus Testovací skript instrukce pro vykonávání testů vykonávány automatizovaně nebo manuálně Plán testů identifikuje strategie a zdroje, které budou při testování využity Vyhodnocení testů souhrnná analýza výsledků, vytvořena alespoň jednou v rámci každé iterace

Základní vlastnosti TC Atomicita - má pouze jeden možný výsledek (prošel/neprošel). Srozumitelnost - je možné jej testovat bez dalších nezbytných vysvětlení (v případě manuálních testů) Jednoznačnost - detailně a jednoznačně popisuje prováděný test. Jedinečnost - neexistují duplicitní testovací případy

Nejčastěji používané testy Testování jednotek (Unit Testing) nejmenší část systému výsledek činnosti jednoho programátora V C++ nebo v Javě je to třída, v C funkce Integrační testy ověřuje vzájemnou spolupráci jednotek v rámci většího celku (subsystému, komponenty)

Nejčastěji používané testy Testy systému projevují se na nejvyšší úrovni integrace testují bezpečnost, spolehlivost, dostupnost, záloha, obnova ze zálohy Akceptační testy stanovuje zákazník posouzení, zda systém odpovídá potřebám uživatelů (pilotní testování, alfa verze, beta verze)

Unitové testování Píší ho programátoři pro programátory. Testuje malou specifickou oblast zdrojového kódu (metodu, atribut, objekt). Výhody použití: přehlednější kód, lepší architektura důvěra v kód (dělá to co to má dělat) usnadnění zavádění změn do aplikace

Příklad - kalkulačka

Příklad - účet

Příklad - prázdné pole

Nástroje xunit Vytvořil Kent Beck (původně SUnit) JUnit - testovací framework pro jazyk Java NUnit - klon JUnit pro platformu.net, funkčně identický PHPUnit - napsán v PHP, inspirován SUnit Kompletní list na http://en.wikipedia.org/wiki/list_of_unit_testing_frameworks

Metody pro realizaci testování fail(string Zpráva) - kontrola dosažitelnosti určité části kódu asserttrue(boolean) assertequals(expected, actual) assertnull(object) - testuje null (objekt, atribut) assertnotnull(object) assertsame (expected, actual) - kontrola reference na objekt assertnotsame(expected, actual)

NUnit - výstup

Konvence nebo anotace? Konvence - jméno třídy a metod musí mít shodný prefix nepřehledné, se vzrůstající komplexností hůře udržitelné každý framework může mít vlastní definované konvence Anotace - nahrazují jmenné konvence nutná podpora frameworku, správná verze Javy

Anotace @Test - označuje testovanou třídu @Before - metoda spuštěná před každým testem (poskytnutí vstupních dat) @After - metoda spuštěná po skončení každého testu (uvolnění paměti) @BeforeClass - metoda spuštěná před prvním testem (připojení do DB) @AfterClass - metoda spuštěná po skončení testování (zavření spojení do DB)

Tradiční přístup

Lepší přístup