ANALÝZA A PROJEKTOVÁNÍ SYSTÉMŮ Testování SW Roman Danel VŠB–TU Ostrava Hornicko-geologická fakulta Institut ekonomiky a systémů řízení.

Slides:



Advertisements
Podobné prezentace
Sedm základních nástrojů managementu jakosti
Advertisements

Harmonogram implementace IS v běžné praxi - informatika ZMVS.
Integrovaný systém kvality v dalším profesním vzdělávání KVALITA V DALŠÍM VZDĚLÁVÁNÍ Liberec,
Projektové řízení Modul č.1.
Přednáška č. 5 Proces návrhu databáze
HISTORICKÝ VÝVOJ 1900 Výrobková normalizace, vojenský průmysl
METODOLOGIE PROJEKTOVÁNÍ NÁVRH IS PRO TECH. PROCESY Roman Danel VŠB – TU Ostrava HGF Institut ekonomiky a systémů řízení.
Architektura IS.
LABORANT Analytická štúdia. Dátový model Funkčný model Sekvenčný diagram Diagram spolupráce Dynamický model.
Podpora výuky a tvorby ER diagramu ve výukovém systému Barborka Petr Kopka VŠB – TU Ostrava, 2005.
Management kontinuity činností organizace
Aukro.cz – projektový management v e-commerce Tereza Kabrdová.
Auditorské postupy Činnosti před uzavřením smlouvy
Testování SW Filip Rubáček, 2013
13AMP 9. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled ADA ADA Java Java.
Požadavky na programy Programové Měřící Systémy Sběr datZpracováníPrezentace systémy – uzavřené (omezená množina funkcí, nelze jednoduchým způsobem rozšiřovat.
Plán testů Tým FelPay. Testování a kvalita obecně Přispívá ke správné funkci systému Přispívá ke správné funkci systému Snižuje finanční a časové ztráty.
Marie Borecká, Kristina Ficencová 6. kruh, 1. ročník VSRR
Tvorba dokumentů – kritéria Obsah a forma –aktuálnost a správnost informací, variabilní data, –forma adekvátní příjemci, estetika, –účelná struktura, členění.
Příručka jakosti Ing. Zdeněk Aleš, Ph.D.
Zavádění a údržba informačních systémů
Databázové systémy Přednáška č. 6 Proces návrhu databáze.
4. Lekce Dílčí procesy funkčního testování
Principy posuzování kvality software podle ČSN ISO/IEC Praha Ing
Operační systém (OS) ICT Informační a komunikační technologie.
Možnosti modelování požadavků na informační systém
Dokumentace systému managementu jakosti
Testování METODOLOGIE PROJEKTOVÁNÍ Roman Danel VŠB–TU Ostrava Hornicko-geologická fakulta Institut ekonomiky a systémů řízení.
T1: Základy práce s počítačem
Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou I NFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Ing. Jan Roubíček.
Multiplatformní, řídící systém elektronického vzdělávání pro školy eDoceo Multiplatformní, řídící systém elektronického vzdělávání pro školy Tomáš Hrdonka.
Dokumentace informačního systému
Ivo Novotný Jak vybrat dodavatele vzdělávání JAK SI SPRÁVNĚ VYBRAT... Dodavatele vzdělávání.
Přednáška č. 1 Proces návrhu databáze
NÁRODNÍ DIGITÁLNÍ ARCHIV
Nebezpečí webových aplikací Tomáš Strýček Invex Forum Brno
 P1 - Strategické plánování  P2 - Systém managementu jakosti a legislativy  P3 - Řízení informací  P4 – Audity.
Projekt z PA104 Richard Benkovský (139912, Jan Horák (143443, Miroslav Ligas (139542, Tomáš.
Proces řízení kvality projektu Jaromír Štůsek
Prof. Molnár1 Podnikové informační systémy Outsourcing IS/IT a ASP Prof. Ing. Zdeněk Molnár, CSc Ústav řízení a ekonomiky podniku
1 Řízení implementace IS a SS* Šablony. 2 Vzorové postupy.
Testování s TestComplete
2. Životní cyklus a procesy projektu
YOUR SYSTEM, spol. s r. o. Ing
BUDOVÁNÍ SYSTÉMŮ MANAGEMENTU
Projektový management Certifikace a normy Ing. Roman Danel, Ph.D. Institut ekonomiky a systémů řízení Hornicko–geologická fakulta VŠB-TU.
Detekce a odstraňování chyb Vývoj informačních systémů.
Moderní personalistika DS 2009/ Hlavní úkoly moderní personalistiky   Zařazení správného člověka na správné místo (a ve správný čas)
Metodika řízení projektů
Základní problémy realizace eLearningového systému Roman Malo Ústav informatiky PEF MZLU v Brně.
Alternativní ovládání PC a okolí Nature Inspired Technologies Group Dept. of Cybernetics FEE CTU in Prague.
aneb Assessment Centre a Development Centre
PRINCeGON – metodika řízení projektů Ministerstva vnitra
Vypracováno kolektivem autorů České společnosti pro technickou normalizaci Úřad pro technickou normalizaci, metrologii a státní zkušebnictví
Pracovní skupina Standardy Ing. Martin ZEMAN předseda pracovní skupiny NSeZ – neveřejná prezentace Emauzy,
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 2: Základní pojmy Bc. Radek Libovický.
Digitální učební materiál Název projektu: Inovace vzdělávání na SPŠ a VOŠ PísekČíslo projektu: CZ.1.07/1.5.00/ Škola: Střední průmyslová škola a.
Návrh uživatelského rozhraní. Volba akcí uživatele – Systém menu Formát ukládání a modifikace dat – Vstupní formuláře Způsob formulování dotazů – SQL,
Testování aplikací v Javě Petr Adámek IBA CZ, s.r.o. © 2010.
Vypracoval / Roman Málek
Návrh, požadavky, implementace
PROJEKT: Hodnocení průmyslových rizik
Systém managementu jakosti 3
Tradiční metodiky vývoje softwaru
Demoverze QI Informace pro partnery DCC
Tradiční metody vývoje softwaru
Návrh, požadavky, implementace
METODOLOGIE PROJEKTOVÁNÍ
Web Application Scanning
Otevřená data v České republice
Transkript prezentace:

ANALÝZA A PROJEKTOVÁNÍ SYSTÉMŮ Testování SW Roman Danel VŠB–TU Ostrava Hornicko-geologická fakulta Institut ekonomiky a systémů řízení

Literatura PATTON, R. Testování softwaru. Vyd. 1. Praha: Computer Press, 2002, xiv, 313 s. Programování. ISBN htm htm

Příklad chyby – Intel Pentium, 1994 ( / ) * – Sw chyba v čipu – , T. Nicely Náklady na odstranění chyby – náhrada prodaných čipů mil. USD

Další příklady chyb Y2K – problém přechodu přes rok 2000 – Např. nefugnoval přenos NFT v síti Decnet – Programy v COBOLu Mars (dva týmy – jeden používal anglické a druhý metrické jednotky) Přistávací modul na Marsu (1999) – kontrola bitu indikujícího vysunutí přistávací nohy Obranný raketový systém Patriot, 1991 – chyba v časování systémových hodin

„Paradox pesticidů“ Hmyz si časem na pesticidy zvykne a přestane být huben Stejný software testují stejní lidé – přestanou nacházet chyby, přestože tam jsou

Typy testů BLACK BOX – WHITE BOX STATICKÉ - DYNAMICKÉ

Testy specifikace - chyby Obsahuje kvantifikátory vždy, nikdy, každý, žádný, všichni… Snaha někam dotlačit – je nabíledni, určitě, evidentně… Seznam není úplný – a tak dále, například… Vágní specifikace – někdy, něco, obvykle, zpravidla, většinou… Nejednoznačné kvantifikátory - dobrý, laciný, malý, stabilní If - rozhodování bez specifikace else větve

Dynamické testování BLACK BOX Test-to-pass Test-to-fail

Grey Box Translucent box Omezená znalost interních datových a programových struktur za účelem navrhnutí vhodných testovacích scénářů, které se realizují na úrovni black box. Např. testy interface

Testování vstupů Test hraničních podmínek Test subhraničních podmínek – testování vnitřních omezení Test výchozích, prázdných, nevyplněných a nulových hodnot Test na zadání neplatných nebo nesmyslných údajů

Test stavů – logiky aplikace Testování souběhu (Race Condition) Test opakováním Stress test – nejhorší možné podmínky Zátěžové testy (Load Test) – velký počet uživatelů/přístupů/transakcí…

Testování konfigurace Test, zda SW běží se všemi možnými kombinacemi HW Lze využít publikované HW specifikace

Testování kompatibility Souběh s jiným SW? Backward compatibility? Forward compatibility? (bude kompatibilní s budoucími verzemi)

Unit testy Vývojář Byly použity vhodné algoritmy, návrhové vzory Ověření správnosti fungování dílčí části kódu Unit – jednotka – samostatně testovatelná část aplikace Stubs, mock object, fakes, … Scrum, TDD – unit testy se vytvářejí před kódem

Unit testy Unit testy se používají při regresním testování Refactoring V OOP je unit test většinou test metod třídy, ve strukturovaném modul, funkce… Parametrizované unit testy – pak lze automatizovaně generovat vstupy (např. QuickCheck) Základ pro Test-driven Development

Unit testy – příklad testu v Javě public class TestAdder { // can it add the positive numbers 1 and 1? public void testSumPositiveNumbersOneAndOne() { Adder adder = new AdderImpl(); assert(adder.add(1, 1) == 2); } // can it add the positive numbers 1 and 2? public void testSumPositiveNumbersOneAndTwo() { Adder adder = new AdderImpl(); assert(adder.add(1, 2) == 3); }

Kód pro příklad interface Adder { int add(int a, int b); } class AdderImpl implements Adder { int add(int a, int b) { return a + b; }

Testování multilanguage podpory Lokalizace aplikace Lokalizace dat UNICODE Doporučení: texty nedávat do kódu

Multilanguage - formátování měrné jednotky číselné údaje měna (symbol a jeho umístění) zobrazení datumu zobrazení času (12/24) kalendář (juliánský, gregoriánský, arabský…) adresy (např. tvar PSČ) telefonní čísla velikost papíru a obálek pro tisk

Test použitelnosti Ovládání Konzistence Flexibilita Dodržování standardů Podpora pro handicapované Soulad s dokumentací

Další typy testů Downgrade test – lze se vrátit k předchozí verzi? Test instalace Long term test – jak se chová systém běží-li delší dobu bez přerušení Akceptační testy Performance test (rychlost odpovědi) Security test – test bezpečnosti Recovery test – obnova po výpadku Smoke test („zahořovací“) Regresní testy

Automatizace testování Monitor Ovladač (např. skript nahrazující klávesnici) Maketa (Stub) Emulátor (např. tiskárny) Záznam maker Nástroje pro zátěžové testy Nástroje typu „hloupá opice“ - klikání Nástroje typu „polointeligentní opice“ – rozpozná nalezenou chybu Nástroje typu „inteligentní opice“ – ví, co dělá

Plánování testovacích případů (Test Case) Důvody: – Organizace testování – Opakovatelnost – Sledovatelnost – Dokazatelnost – Co dělat v případě, že testy neprobíhají podle očekávání Příprava, zahájení, provedení, ukončení testů

Životní cyklus chyby Otevřená Vyřešená Uzavřená Revize chyby Odložená

Alfa testy Testování aplikace reálnými uživateli Oproti beta testům se očekává, že aplikace ještě obsahuje závažné chyby

Beta testy Zapojení externích osob do testování – např. potenciální uživatelé Výhoda – lze otestovat i v HW kombinacích, které autor nemá k dispozici Nevýhoda – nemusí otestovat systematicky vše

Case Study Případové studie Jak problém řešili jiní

Důvody neopravení chyby Není na to dost času Ve skutečnosti do není chyba Oprava je příliš riskantní Oprava nestojí za to

Pravidelné ověřování SW Každodenní build – překlad všech součástí produktu Unit testy Smoke test

Certifikace - ISTQB Příklady: – State Coverage (pokrytí příkazů) – Brach/decision Coverage (pokrytí rozhodování) – Patch Coverage (pokrytí cest)

Normy ANSI/IEEE 829/1983 – Software Test Documentation Testovací plán – jak bude testování provedeno (včetně prostředí a konfigurací). – Kdo bude testovat – Co je předmětem testování – Jak dlouho bude testování probíhat – Jaké bude pokrytí testy, například: Jakou úroveň kvality vyžadujeme

Další normy IEEE 1008, norma for unit testing IEEE 1008 IEEE 1012, norma pro validace a verifikaci softwaru IEEE 1012 IEEE 1028, norma inspekci softwaru IEEE 1028 IEEE 1044, norma pro klasifikaci softwarových anomálií IEEE 1044 IEEE , návod pro klasifikaci softwarových anomálií IEEE IEEE 830, postup pro tvorbu dokumentu specifikace systémových požadavků IEEE 830 IEEE 730, norma pro plány zajištění kvality softwaru IEEE 730 IEEE 1061, norma pro softwarové metriky kvality a metodologii IEEE 1061 IEEE 12207, norma pro životní cyklus software a životní cyklus dat IEEE BS , slovník pojmů používaných v oboru testování softwaru BS BS , norma pro testování softwarových komponent BS

IEEE/EIA – Standard životních cyklů software – Vychází z Military-Standard-498 Vyvinulo Ministerstvo obrany USA – Procesy Primární procesy (požadavky, plán, vývoj, údržba) Procesy podpory (konfigurační management, dokumentace, řešení problémů, verifikace, validace) Organizační procesy (management, zlepšování, trénink)

Nástroje Abbot Eggplant FEST froglogic GUIdancer IBM Tester JFCUnit Jacareto ludwigsburg.de/mathematik/personal/spannagel/jacareto/ ludwigsburg.de/mathematik/personal/spannagel/jacareto/ jDiffChaser Jemmy Marathon Pounder qftest

shrnutí Proč je testování důležité? Typy testů Automatizace testování Alfa a beta testy Unit testy Normy