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.2012
Agenda Představení přednášejících Známé pravdy, mýty a omyly o testování Testování vs. řízení kvality Význam testování Test manažer Charakteristika zdrojů Dodávky mezi PM a TM Harmonogram testů Ekonomika testování Best practices Role kvality v projektu
Miroslav Borský 7 let v IT 6 let sales konzultant pro Borland Implementace technologií pro Funkční a zátěžové testy Test management Definování a správu požadavků (KB, RB, ČEZ, Telefónica O2 BS) Process assesment a procesní konzultace Školení pro zákazníky Semináře pro veřejnost
Jiří Otta 18 let v IT 15 let v SAP ČR 12 let projektový manager 2 roky vedení Project Management Office Od r. 2012 freelance konzultant Zkušenosti Vedení projektů implementace SAP ve více než 20 organizacích Provoz SAP Test Manager na řadě projektů Certifikace PMP Konzultant a lektor SAP Solution Manager (aplikace obsahující nástroje pro testování)
David Polášek 18 let v IT Posledních 7 let v bankách (KB, RB, ČSOB) Na straně dodavatele i zákazníka Data management Project management Migrace Testování Architektura Nyní konzultant za Trask Solutions
Marcel Veselka 8 let v IT a testování software Tester a Test manažer pro oblast finance Česká spořitelna, Slovenská sporiteľňa, 5 rokov Raiffeisenbank, 3 roky Člen CaSTB (ISTQB) Občasný amatér v programování (stopar.sk, autostop.sk/.cz, mojeletenky.sk) Aktuálne Test manager na projektu Everest
Milan Zajíc 20 let v IT v různorodých rolích Projekt manažer Manažer testovacího týmu Trask
Testování software Testování byla vždy důležitá disciplína... V posledních letech začíná být i atraktivní Začíná se standardizovat (ISO/IEEE)
Známé pravdy o testování Testování zjišťuje zda SW obsahuje chyby Nelze otestovat vše Optimalizační úloha minimální úsilí, max. pokrytí Nelze najít všechny chyby Chyba nalezená v testech je levnější než chyba nalezená v produkci Není důkazem, že SW je bez chyb Obecně: čím dříve je chyba nalezena, tím je její oprava levnější Obecně neplatí, že automatizace testů nahradí manuální testy, zvýší počet nalezených chyb sníží počet testerů
Mýty a omyly o testování Testera může dělat každý (zvlášť pokud se jinde neuplatní) Testeři kontrolují práci po programátorech Testování je vždy drahé Automatizované testy řeší vše Testovaní řeší chyby Testování muže začít až po dodání aplikace
Testing vs. Řízení kvality testing is investigation conducted to provide stakeholders with information about the quality of the product or service under test 1 Quality is the degree to which a set of inherent characteristics fulfill requirements 2 Quality Management Quality Planning Quality Control Testování Testování Quality Assurance Testování je jedním z nástrojů řízení kvality Je nutno definovat charakteristiky a požadavky na ně Testování plně integrováno do projektu (plánování, provádění, monitorování, uzavření projektu) Aplikují se na něj postupy řízení kvality (např. Cost of Quality) 1Exploratory Testing, Cem Kaner, Florida Institute of Technology 2PMBOK Guide
Význam testování SW Ověření shody se zadáním Odhalení defektů před reálným používáním Minimalizace rizika selhání v produkci Jeden z nástrojů ověření zralosti produktu
Profese test manažera Definice nebo revize testovací strategie Plánování a koordinace přípravy testování Definice a plánování managementu incidentů Realizace testů Monitorování výsledků testování a kontrola výstupních kriterií Zabezpečení konfiguračního managementu pro výstupy testování za účelem sledovatelnosti Zavedení vhodných metrik pro měření postupu (progressu) testování a hodnocení kvality testování a produktu Definování míry a způsobu automatizace testů Výběr nástrojů pro testování Rozhodování o implementaci testovacího prostředí Reportování výsledků testování
Profese test manažera Znalosti Test manažera Znalosti testování Přehled v projektovém manažmentu Přehled z oblasti analýzy a designu Přehled v programování a technologiích Přehled v IT architektuře Certifikace ISTQB ISEB jako doplněk (intermediate) TMap NEXT Test Manager American Society for Quality Software Quality Engineer Certification
Typologie test manažerů Test manažer je vždy zdrojem projektu, tj. v rámci projektu je podřízen projektovému manažerovi Obvykle ale vstupuje do jejich vztahu ještě jeho pozice v rámci organizace a projektového portfolia Typy test manažerů Projektový podřízený přímo PM jeho cíle se shodují s cíli projektu Programový ne nutně podřízený PM jeho cíle se řídí programovými prioritami Liniový vlastní KPI Outsourcovaný musí plnit KPI zadavatele a své firmy
Charakteristika zdrojů Role Tester Tester developer (automatizace) Test analytik Test koordinátor / test manažer Technické zdroje Testovací prostředí a data Testovací nástroje Řízení testů Řízení defektů Automatizace Simulace Reporting a dashboardy Monitoring
Dodávky mezi PM a TM Příklad PM stabilní design dostupnost podpory akceptační kritéria lidské zdroje vybavení týmu oba TM plán projektu plán testů testovací scénáře akceptační protokol testy metodika a proces monitoring testů vyškolený test. tým motivační systém testovací testovací data prostředí
Harmonogram testů Rozdělení projektu na jednotlivé části, přiřazení kritičnosti, stanovení míry otestování Naplánování jednotlivých etap testování v závislosti na stupni kompletnosti aplikace Unit testy Funkční testy Integrační testy Zátěžové testy UAT testy Regresní testy Existuje celá škála dalších testů Pro každý test vybere TM vhodnou metodu Whitebox vs. Blackbox Procházení cest vs. Monte Carlo metody Manuální vs. Automatizované GUI vs. Protokol vs. Kód vs. Dokumentace
Entry / Exit kritéria testů Pro každou sadu testů TM stanoví v Test plánu exaktní kritéria, za kterých sadu zahájíme a (úspěšně) ukončíme Entry kritéria (příklady) Exit kritéria (příklady) Definovaný stav vývoje aplikace Připravenost skriptů Ukončení předchozích testů Proškolení testeři Otestovaný definovaný počet testů (testováno dle priority testů) Pro jednotlivé kategorie chyb (předem definované) jejich počet nepřekročí stanovenou hodnotu V případě neúspěšnosti testů opakování sady testů nebo její části
Ekonomika testování Testování se postupně stává, jako ostatně i další části procesu vývoje SW, něčím, co zákazníci nepovažují za svůj CORE business a co je pro ně rutinním výkonem. Který ovšem jejich CORE business podmiňuje. Testování projekty zdražuje. Je to nutné? Jak hodnotit výkon testování a jeho přínos. Je to vůbec možné?
Ekonomika testování Spočítejte si dopady rizik. Metoda protažení brokovou hlavní. Obecné pravidlo pro opravy defektu je 1:10:100.
Ekonomika testování Než začnete investovat do testů, najděte ty testy, které opravdu potřebujete. I netestovat může být ekonomické. Jen vědět kde je to možné zariskovat.
Best practices Co jsem se naučil jako test manažer Nesnažit se vymyslet kolo Standardizace Pře-použitelnost (šablony, testovací scénáře, atd.) Stabilita Nedovolte testerům nacházet chyby Kvalitní analýza, design a programování Integrace systému začíná integrací teamu Přístup k testování ovlivňuje velikost projektu Fáze, procesy, nástroje, organizace Testování nikdy neskončí Je ho třeba umět stopnout Závažné chyby (Sev A) neblokují go-live ale... Nekvalita si na vás počká Ignorace kvalitativních parametrů může prodloužit další fázi (AKA technical debt )
Kvalita v projektu Budování a kontrola kvality Budování kvality Návrh Vývoj Přístup ke všem zúčastněným stranám Metodika návrhu Přístup ke specifikaci Metodika vývoje Kvalita procesu Kontrola kvality Kontrola specifikace Testování Kvalita produktu
Klíč k úspěchu Vzájemné pochopení a vstřícný přístup Pro projektové manažery Nelze otestovat vše, alokujte si čas a zdroje na stabilizaci po každé fázi testu Testing testuje, neopravuje Kvalita testovacího týmu je stejně důležitá jako u ostatních týmů Dovolte TM poučit se z chyb úspora se může projevit už v tomto projektu Pro test manažery Navrhujte alternativní postupy zkracující, zlevňující a zkvalitňující fázi testování Spolupracujte na znovupoužitelnosti dodávek (z analýzy, do provozu)
Zaujalo vás téma? Organizace International Software Testing Qualification Board (http://www.istqb.org) Czech and Slovak Testing Board (http://www.castb.org) Weby http://www.satisfice.com/blog/ http://www.stickyminds.com/ http://en.wikipedia.org/wiki/software_testing http://www.softwaretestingstandard.org/ SW Testing Primer: http://www.nickjenkins.net/prose/ http://testovanisoftwaru.cz/automatizovane-testovani/ http://www.guru99.com/software-testing.html http://testovanisoftwaru.blogspot.cz http://www.swtestovani.cz
Děkujeme Miroslav Borský miroslav.borsky@borland.cz Jiří Otta jiri@otta.eu David Polášek dpolasek@trask.cz Marcel Veselka marcel.veselka@gmail.com Milan Zajíc milan.zajic@trask.cz
Standardizace profese testování Standardy ISO/IEC 29119 Software Testing IEEE 829-2008 Standard for Software and System Test Documentation IEEE 1008, a standard for unit testing IEEE 1012, a standard for Software Verification and Validation IEEE 1028, a standard for software inspections IEEE 1044, a standard for the classification of software anomalies IEEE 1044-1, a guide to the classification of software anomalies IEEE 830, a guide for developing system requirements specifications IEEE 730, a standard for software quality assurance plans IEEE 1061, a standard for software quality metrics and methodology IEEE 12207, a standard for software life cycle processes and life cycle data BS 7925-1, a vocabulary of terms used in software testing BS 7925-2, a standard for software component testing
Standardizace profese testování Metodiky ISO/IEC 29119 Software Testing Všeobecná TMap NEXT (Test management approach) Součást celkovýho SDLC (specifika implementace) Maturity modely a techniky zlepšování procesu testování TMMi (CMMi) IDEAL STEP TPI Next