Quality assurance a testovací nástroje v praxi. Bohumír Zoubek bohumir.zoubek@profinit.eu http://www.profinit.cz



Podobné dokumenty
Quality assurance a testování

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

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

Agenda. Docházka Návrat k minulému praktickému cvičení Zápočtové práce. Dokumentace. Dotazy, přání, stížnosti. Co, jak a proč dokumentovat

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

Software Quality Assurance. Tomáš Krátký, Bohumír Zoubek

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

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

Specifikace. Odevzdání do

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

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

Testování prakticky Otakar Ertl 17. ledna 2018

Analýza a Návrh. Analýza

Vývoj řízený testy Test Driven Development

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

Testování software. Jaroslav Žáček

Statická analýza kódu - za kód bez chyb

Zátěžové testy aplikací

Automatické testování GUI

Dotazy na event #E256

Co by měl umět dobrý vývojář. Petr Adámek Home Credit International a.s.

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

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

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

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

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

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

Řízení kvality SW produktů Jiří Sochor, Jaroslav Ráček 1

Maintenance. Tomáš Krátký, Bohumír Zoubek

Testování software. Jaroslav Žáček

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

Agenda. Opakování Manuální testování Automatické testování Antipatterns Testování testů Pokud zbyde čas. Užitečné nástroje

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

Java/QE Akademie - Osnova

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

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

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

Jak testovat software v praxi

CASE. Jaroslav Žáček

Účel, použití, analýza rizik Milan Turinský Únor 2018

Procesní dokumentace Process Management. Pavel Čejka

CASE nástroje. Jaroslav Žáček

Custom Code Management. Přechod na S/4HANA

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

Analýza a design na reálném projektu. Richard Michalský

Nástroje pro vývoj software

Joelův test. 12 kroků k lepšímu programování. Jaroslav Šnajdr

Zvýšení kvality IA s využitím nových technologií: Představení řešení IDEA - SymSure pro CCM

MBI - technologická realizace modelu

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

Jak efektivně testovat IB. Otakar Ertl

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

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

Jak na testování?

Implementace a využití automatizovaného testování. Staňková Gabriela Home Credit International a.s. 4.listopadu, 2009

Analýza a design na reálném projektu. Richard Michalský

Agenda. Opakování Manuální testování Automatické testování Antipatterns Testování testů Pokud zbyde čas. Užitečné nástroje

Petr Náhlovský, Servodata a.s. Michal Oškera, AUKRO s.r.o. IT PROJEKT ROKU 2017

Zrychlete dodávky nových mobilních služeb k Vašim zákazníkům

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í

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

Testování software. Co projektový manažer může očekávat od test manažera a co test manažer očekává od projektového manažera Praha, 7.3.

Honeywell & Masarykova univerzita v Brně

A7B36SI2 Tematický okruh SI08 Revidoval: Martin Kvetko

Telelogic Focal Point využití pro řízení a optimalizaci projektového portfolia Verze 1.0

KIV/ASWI 2007/2008 Techniky zajištění kvality software. Kvalita software Techniky včasné detekce

INSTALACE PRODUKTU ONTOPIA KNOWLEDGE SUITE

Snadný a efektivní přístup k informacím

Zuzana Šochová MFF Modelování a realizace softwarových projektů

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

Praktické zkušenosti s Azure DevOps

Server-side technologie pro webové aplikace

Odhady, nabídky, měření a historie

JAVA Unit testing Java, zimní semestr

Nasazení nových modulů McAfee Seminář CIV (nejen) pro lokální správce

Benefity při práci se systémem konsolidovaných pacientských dat. Ing. Ladislav Pálka, MBA C SYSTEM CZ a.s.

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

Ope p r e a r čn č í s ys y té t m é y y Windo d w o s Stručný přehled

Účel, použití, analýza rizik Milan Turinský Únor 2019

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

1. SYSTÉMOVÉ POŽADAVKY / DOPORUČENÁ KONFIGURACE HW A SW Databázový server Webový server Stanice pro servisní modul...

Testování aplikací I a II

27/11/2017. Business analýza a sběr požadavků. Dotazy na event #G865

Instalace produktu Ontopia. ver (open-source verze)

2013 IBM Corporation

Selenium, Emma, Checkstyle. Jiří Mach

Kvalita procesu vývoje SW. Jaroslav Žáček

Teorie systémů TES 7. Výrobní informační systémy

VOIPEX Pavel Píštěk, strategie a nové Sdílet projek ts y práv, I né PEX inf a.s orm. ace se správnými lidmi ve správný čas

A to vše díky lidem, kteří Red Hat utváří svým nadšením a svými nápady. Přidáte se do našeho brněnského týmu i Vy?

Automatizace testování

programátor vs. vývojář

Nový uživatelský zážitek. Aleš Kučera ISSS 2015

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

Podnikový informační systém SAP

SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server.

Vývojové prostředí, maintenance

Je právní systém opravdu pro právníky? Jan Kracík

Video ve státní správě

Transkript:

Quality assurance a testovací nástroje v praxi Bohumír Zoubek bohumir.zoubek@profinit.eu http://www.profinit.cz

Quality Assurance

QA obsah Kvalita proč, co, kde? DMAIC model Plánování Validace a verifikace Měření a historie projektu Komplexní pohled na QA v organizaci Poznatky z praxe Doporučená literatura

Co je cílem? Ukázat proč je řízení kvality důležité Ukázat možné způsoby, jak zvýšit kvalitu SW Pragmaticky Efektivně Nezkresleně Ukázat, jak funguje projekt ve firmě, která si na skutečné (nikoli papírové) kvalitě velmi zakládá.

Stručný úvod do tématu

Proč kvalita? Čtvrtá planeta sluneční soustavy Druhá nejmenší Má dva měsíce

Mars Polar Lander 3.1.1999 Mys Canaveral 3.12.1999 vstup do atmosféry

Plán přistání a realita 40 metrů na povrchem vypnuty motory Volný pád Víc se neví

Pravděpodobná příčina Falešný signál od jedné nohy vyhodnocen jako informace o tom, že modul přistál. Chyba identifikována na 1 řádku kódu Cena mise 327,6 mil. USD (celý Mars Surveyor 98)

Víc? Mars Climate Orbiter (MCO) metric/imperial (náklady viz MPL) Ariane 5 64 floating point -> 16 bit signed integer (7 billion USD/10 let vývoje) Procesor Pentium chybný algoritmus dělení

Obsah Stručný přehled tématu Proč kvalita Jak na kvalitu Kvalita a softwarový proces Poznatky z praxe Goodies templates, checklists Doporučená literatura

Proč kvalita? Údaj Hodnota Chybovost (počet chyb na 1000 SLOC) 2 Produktivita (počet řádků kódu na 1MD) 14-17 Poznámka průměr v IT odvětví je 7 průměr v IT odvětví (COCOMO) je 4 Softwarový proces Rozsah projektů pragmaticky definovaný a dodržovaný 50-5000 MD Průměrná velikost týmu 4 Průměrná délka projektů měsíce obrat (mil. Kč) 250 200 150 100 50 135 170 230 počet změstnanců 70 60 50 40 30 20 10 36 49 62 0 2004 2005 2006 0 2004 2005 2006 rok rok

Kde je kvalita?

Quality Assurance vs. Validace & Verifikace vs. Testing

DMAIC model

Plánování

Plán QA Je nutné plánovat jednotlivé aspekty QA Definice procesů Plán testů Plán přezkoumání a revizí Je nutné plánovat minimálně na úrovni Organizace (firmy) Projektu Jedince

Jak vybrat správný postup?

Minimální nároky Pragmatické a efektivní Základ firemního procesu Projekt se vůči nim vymezuje

Validace, Verifikace

Verifikace & Validace Am I building the product right? Am I building the right product? V&V je realizováno pomocí Testování (unit, integrační, ) Review, Inspekce, Walkthroughs,

Přezkoumání přezkoumání projektu přezkoumání nabídky přezkoumání designu přezkoumání kódu

Testování

Cíle Testování je součástí procesu vývoje. Testování je snadné. Testování je rychlé. Testování je automatizované. Testování je důkladné.

Typologie testů Unit testy Integrační testy Systémové testy Funkční Výkonové Uživatelské akceptační testy Regresní testy

V - model Business case Product verification review Requirements User acceptance tests review Functional design System, integration tests review Design & Coding review Unit tests, code analysis

Statická analýza kódu Analýza zdrojového kódu SW bez jeho spuštění Dokáže najít velké množství opakujících se problémů Používání synchronizačních primitiv Manipulace s I/O resources Problémy v dizajnu Dodržování konvencí v kódu (jména, styl, ) Nástroje dostupné pro mnoho platforem

Testy v kontextu projektu Smoke testing, Continuous Integration Vývojová platforma Pravidelný commit SCM Pravidelný build Integrační platforma Lokální vývoj Povinná sada testů (krátké a rychlé) Všechny automatické testy Regresní testy (automatické a manuální) Výkonové a jiné nefunkční testy, manuální testy dodávka Testovací platforma

Měření, historie Sledovat vlastní vývoj Srovnání s předchozími výsledky Povinnost vytvořit historii projektu Pragmatický cenový model Základní metriky size, time, effort, quality Pragmatická evidence Sybis, Bugzilla, SVN/CVS,

Big picture

Pohled na proces vývoje v organizaci

Poznatky z praxe QA je nutné naplánovat Proces musí být pragmatický Bez měření se nelze zlepšovat O kvalitě je nutné uvažovat na všech úrovních od organizace až po jedince Přezkoumání je efektivní (a mnohdy jediný) způsob zajištění kvality

Doporučená literatura Little Book of Testing Volume I, Volume II, Software Program Managers Network James A. Whittaker, What Is Software Testing? And Why Is It So Hard?, IEEE Software, vol. 17, no. 1, pp. 70-79, 79, Jan/Feb., 2000 ESA SOFTWARE ENGINEERING STANDARDS, ESA PSS-05-0 Issue 2, February 1991. SOFTWARE ASSURANCE GUIDEBOOK, NASA-GB-A201 Overcoming the NAH Syndrome for Inspection Deployment. ICSE 1998 Sanders, J. et al. Software Quality: A Framework for Success in Software Development and Support. Addison-Wesley. 1995

Testovací nástroje

Agenda Typologie testů vs. dostupné nástroje Koncept Continuous Integration Udržovatelnost testů Volně dostupné nástroje TestNG, Findbugs, PMD, Selenium, AutoIt jmeter,

Typologie testů vs. nástroje

Typologie testů Unit testy Přezkoumání kódu Statická analýza kódu Integrační testy Systémové testy Funkční Výkonové

Kde nám pomáhají nástroje? Příprava testovacího prostředí Vytvoření testovacích scénářů Naplánování testů Testování Exekuce testů Vyhodnocení testů, reporting

Continuous Integration

Testy v kontextu projektu Smoke testing, Continuous Integration Vývojová platforma Pravidelný commit SCM Pravidelný build Integrační platforma Lokální vývoj Povinná sada testů (krátké a rychlé) Všechny automatické testy Regresní testy (automatické a manuální) Výkonové a jiné nefunkční testy, manuální testy dodávka Testovací platforma

Volně ě dostupné nástroje

Tlustý / tenký klient Liší se hlavně při systémových testech Funkční testy (GUI) Výkonové testy Bez výrazného rozdílu Unit a integrační testy Statická analýza kódu

Nástroje bez rozdílu Unit a integrační testy junit, TestNG, jmock, EasyMock, DbUnit, Statická analýza kódu Findbugs, PMD, FxCop, Continuous Integration CruiseControl, Hudson, Team Foundation Server,

Nástroje tenký klient Funkční testy Selenium, jwebunit, Watij, Výkonové testy JMeter, Dieseltest, Komplexní řešení HP Test Suite, Rational Test Suite,

Nástroje tlustý klient Quick Test Professional Rational Functional Tester AppPerfect Functional Tester GUI Automation White AutoIt

Příklad č. 1 TestNG

Ukázka TestNG Framework pro tvorbu (nejen) unit testů Velmi dobrá podpora pro integrační testy Vysoká granularita spouštění testů test methods groups tests suites Závislosti mezi metodami, skupinami Parametry testů Definice timeout

Ukázka TestNG

Příklad č. 2 Findbugs, PMD

Ukázka PMD / CPD Statická analýza kódu Detekce potenciálních problémů (PMD) Možné chyby Mrtvý kód (nepoužívané metody, proměnné, ) Neoptimální / příliš komplikovaný kód Velké množství pravidel / kontrol Pouze zdrojové soubory (Java, JSP, JSF), ne JAR Velmi dobrá detekce duplicit v kódu (CPD) Konzolová aplikace, CPD má GUI Integrace s Ant, Maven,

Ukázka PMD / CPD Seznam pravidel PMD Příklad konfiguračního ního souboru Příklad PMD reportu Příklad CPD

Ukázka Findbugs Konkurence PDM Podobná pravidla / kontroly Bez detekce duplicit Umí bytecode (schopnost kontroly JAR) Integrace s Ant, Maven, Konzole, GUI

Ukázka Findbugs Příklad GUI Příklad reportu

Příklad č. 3 Selenium

Ukázka Selenium Funkční ní testování web aplikací Testy lze psát v mnoha jazycích (Java, C#, ) Lze využít Selenium IDE Podpora řady prohlížečů (Firefox, IE, Opera, ) Integrace s junit, TestNG, nunit, Testy jako Javascript v prohlížeči Omezeno možnostmi Javascriptu Opravdu testuje aplikaci v prohlížeči, nesimuluje

Ukázka Selenium

Příklad č. 4 AutoIt

Ukázka AutoIt AutoIt skripty + data Aplikace Test report

Příklad č. 5 jmeter

Ukázka jmeter Výkonové testování (nejen) web aplikací Opensource nástroj Specializované IDE (Swing desktop aplikace) Lze spustit i konzolově Ne moc dobrá podpora pro Ant, lepší pro Maven Velmi široká paleta možností ( / ) HTTP(S), SOAP, JDBC, LDAP, JMS, Pokročilé statistiky, monitoring, vizualizace

Ukázka jmeter

Faktory TCO AT

Podstatné faktory TCO AT Faktor TCO % funkčního pokrytí systému Míra automatizace testů Architektura AT Zakomponování AT do vývoje Vnímání symbiózy aplikace a AT Built-to-test aplikace

Shrnutí Různé typy testů, různé nástroje všechny jsou nutné, doplňují se Lze automatizovat (s rozmyslem ) OpenSource nástroje dostatečně kvalitní Podstatný je design podpora pro testy (na všech úrovních) velmi pomáhá DI a TDD

Diskuse

Diskuse Komentáře Otázky Připomínky Upřesnění Poznámky