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

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

Testování software. Jaroslav Žáček

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

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

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

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

CASE. Jaroslav Žáček

CASE nástroje. Jaroslav Žáček

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

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

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

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

Specifikace. Odevzdání do

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

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

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

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

A7B36SI2 Tematický okruh SI08 Revidoval: Martin Kvetko

Vývoj řízený testy Test Driven Development

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

LINUX - INSTALACE & KONFIGURACE

Smysl metodiky IS/IT. Koncentrovaná zkušenost Checklist na nic nezapomeneme

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

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

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

Testování, ladění a dokumentace programů

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

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

Testování software. Jaroslav Žáček

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

Analýza a Návrh. Analýza

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

Získání OTZ pro LPZ 2009

Michal Podzimek

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

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Příloha 1 Specifikace předmětu plnění

Hodnoticí standard. Programátor (kód: M) Odborná způsobilost. Platnost standardu. Skupina oborů: Informatické obory (kód: 18)

PŘÍLOHA C Požadavky na Dokumentaci

SOFTWAROVÉ INŽENÝRSTVÍ 1

Softwarové komponenty a Internet

Novell Identity Management. Jaromír Látal Datron, a.s.

Řízení SW projektů. Lekce 3. Projektové procesy a znalostní oblasti. přednáška pro studenty FJFI ČVUT. zimní semestr 2012

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25

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

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

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

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

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

SW pro správu a řízení bezpečnosti

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

Příloha č. I: Schéma zapojení vývojové desky PVK-PRO

Projekt implementace OS Linux do výuky informačních technologií

1. VYMEZENÍ ODBORNÉ STÁŽE

Knot DNS Resolver. Modulární rekurzivní resolver. Karel Slaný

1. Webový server, instalace PHP a MySQL 13

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

Jak efektivně testovat IB. Otakar Ertl

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

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

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

1. VYMEZENÍ ODBORNÉ STÁŽE

Rezortní registry (ereg) a Jednotná technologická platforma rezortu zdravotnictví

MST - sběr dat pomocí mobilních terminálů on-line/off-line

Specifikace požadavků. POHODA Web Interface. Verze 1.0. Datum: Autor: Ondřej Šrámek

Automatizace testování

Nové jazykové brány do Caché. Daniel Kutáč

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

Jak testovat software v praxi

EXTRAKT z mezinárodní normy

RadioBase 3 Databázový subsystém pro správu dat vysílačů plošného pokrytí

Honeywell & Masarykova univerzita v Brně

Možnosti využití dat RÚIAN poskytovaných VDP pomocí webových služeb

Podpora skriptování v Audacity

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

ZEMĚMĚŘICKÝ ÚŘAD. Výzkum a vývoj programového aparátu pro generalizaci státního mapového díla. Ing. Přemysl JINDRÁK

UDS for ELO. Univerzální datové rozhraní. >> UDS - Universal Data Source

spolehlivé partnerství

2.2 Acronis True Image 19

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

Centrum kompetence automobilového průmyslu Josefa Božka - AutoSympo a Kolokvium Božek až , Roztoky -

- kvalitní dokumentace k SW je vyžadovaným STANDARDEM. vzájemná provázanost SW (IS) ve velkých společnostech. aktuální přehledná srozumitelná

ČÁST 1. Základy 32bitového programování ve Windows

Microsoft SharePoint Portal Server Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR

ČSOB: Upgrade systému Microsoft Dynamics CRM

Požadavky pro výběrová řízení TerraBus ESB/G2x

Projekt JetConf REST API pro vzdálenou správu

SAP SuccessFactors. Employee Central

JAVA Unit testing Java, zimní semestr

EXTRAKT z mezinárodní normy

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

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í

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

Testovací protokol USB Token Cryptomate

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

1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018

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

Transkript:

Testování aplikací do náročného provozu Zdeněk Češka zdenek.ceska@cs-soft.cz Václav Tůma vaclav.tuma@cs-soft.cz

Obsah O společnosti CS Soft a.s. Naše produkty Testování do náročného provozu Vyžadované normy Životní cyklus softwaru Úrovně testování Unitární testování Testování GUI Java aplikací 2

O společnosti CS Soft a.s. První československá soukromá společnost zaměřená na vývoj SW pro systémy řízení letového provozu Orientace na vysokou mírou bezpečnosti a plynulost Pár slov z historie 1988 založení společnosti 2006 sloučení se společností RADAS s.r.o. 2009 transformace na akciovou společnost Webové stránky www.cs-soft.cz E-mail info@cs-soft.cz Pracoviště K Letišti 10, Praha Mezírka 1, Brno Bendova 12, Plzeň 3

Naše produkty

Naše produkty Compass FDPS Komplexní systém zpracování dat z letového plánu Compass Easy Komplexní systém pro řízení letiště HiFi Simu Simulované prostředí pro letové dispečery JRADAR Aplet zobrazující radarovou situaci 5

Compass FDPS Systém zpracování dat z letového plánu Udržuje informace o letových plánech Komunikuje s partnerskými systémy Výpočty přeletových časů Střednědobé plánování Časový výhled zatížení sektorů Podpora pro letové dispečery Usnadňuje práci s letem Zahrnuje fáze letu, přiblížení, přistání/odlet Generuje letové stripy (proužky), papírové či elektronické 6

Compass Easy Komplexní systém pro řízení letiště Zpracování radarových dat Multiradarové zobrazení Zobrazení dat letových plánů Zobrazení přehledové situace nebo finálního přiblížení letadel Zpracování letových plánů Vytváří databázi elektronických letových stripů Výměny koordinačních zpráv Zpracování aeronautických informací Meteorologické informace Detekce krátkodobých konfliktů (Safety Nets) Seznamy typů letišť a letadel Hlasový komunikační systém se záznamem nahrávek 7

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

Vyžadované normy IEEE/EIA 12207 Standard životních cyklů software Vychází z Military-Standard-498 Vyvinulo Ministerstvo obrany USA Procesy jsou definovány v širším pojetí 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) ISO 9001 Standard pro poskytování produktů, které splňují požadavky zákazníka a aplikovatelné předpisy 9

Životní cykly vývoje dle IEEE 12207 1. Analýza systémových požadavků 2. Architektonický design systému 3. Analýza softwarových požadavků 4. Architektonický design softwaru 5. Detailní design softwaru 6. Kódování softwaru a testování 7. Softwarová integrace 8. Kvalifikační testování softwaru 9. Systémová integrace 10. Kvalifikační testování systému 11. Instalace softwaru 12. Akceptační podpora softwaru Pro každou součást systému lze zpracovat nezávisle jiným týmem 10

Firemní tailoring IEEE/EIA 12207 Firemní tailoring slouží jako kuchařka postupů jak standard IEEE/EIA 12207 používat Na začátku projektu přizpůsobení daným požadavkům Při analýze, vývoji a testování vzniká řada dokumentů Project Management Plan Operational Concept Description System/Subsystem Specification Software Requirements Specification Software Design Description Interface Design Description Software Tests Description Software User Manual 11

Úrovně testování Úroveň unit Unitární testování Úroveň softwarových komponent Integrační testování SW komponent Kvalifikační testování SW komponent Úroveň systému Integrační testování systému Kvalifikační testování systému Úroveň akceptačního testování Pre-Factory Acceptance Tests (Pre-FAT) Factory Acceptance Tests (FAT) Site Acceptance Tests (SAT) Systém Softwarová komponenta A Softwarová komponenta B 12

Automatizované testování Pravidelné ověřování funkčnosti produktu 13 Každodenní překlad (Daily Build) Stažení z centrálního úložiště Překlad všech součástí produktu Spuštění unitárních testů Výstupem obvykle XML Zahořovací test (Smoke Test) Spuštění v korektně nastaveném prostředí Na vstupu modelová data z ověřovaných scénářů Testuje korektnost výstupu Reportování výsledků, v případě chyby zašle e-mail

Výhody tohoto přístupu Regresní testy vznikají implicitně Každý spouštěný test dané úrovně se stává dílkem do komplexního procesu testování Automatizované testování = snížení rizik při následné softwarové a systémové integraci Integrační a kvalifikační testy přímo vyžadují opakované regresní testování vůči specifikaci předchozích verzí Nedochází k narušení funkčnosti vnášením nových změn Vede k podstatnému snížení výskytu chyb ve finálních akceptačních testech 14

Unitární testování

Unitární testování Cílem je ověřit správnou funkčnost elementárních částí Testujeme určitou izolovanou unitu, ideálně každou nezávisle Testy musí být opakovatelné pro každé prostředí Nezávislost lze simulovat využitím mock objektů Testovaná unita označuje Modul, proceduru či funkci (procedurální programování) Třídu, metodu (objektové programování) Klíčovou součástí metodiky extrémní programování Test-driven development 16

Doporučené postupy Do testů zahrneme Všechny větve zpracování Speciální případy Testovací a ladící výpisy Z testů odstíníme Souborový systém Databázi Síť Oddělení testů od vlastního kódu Samostatný modul (procedurální programování) Samostatná třída (objektové programování) 17 Co činí naše testy čitelnými? Totéž, co činí veškerý kód čitelným: Jasnost, jednoduchost a schopnost se vyjádřit Martin, R.: Clean Code - A Handbook of Agile Software Craftsmanship

CUnit Framework Jednoduché použití Rozsáhlé možnosti podmínek Rozličné způsoby reportování výsledků Široká podpora platforem Linux, Windows, Mac, BSD, Solaris /* Function Min */ int min( int a, int b ) { return (a < b)? a : b; } /* Unit test Min */ void min_test( void ) { CU_ASSERT(min(1, 9) == 1); CU_ASSERT(min(5, 5) == 5); CU_ASSERT(min(3, -7) == -7); } 18

Podmínky v CUnit Obvyklé asserty CU_ASSERT(expression) CU_ASSERT_EQUAL(actual, expected) CU_ASSERT_DOUBLE_EQUAL(actual, expected, granularity) CU_ASSERT_STRING_EQUAL(actual, expected) CU_ASSERT_PTR_NULL(value) CU_ASSERT_PTR_NOT_NULL(value) Každý má FATAL ekvivalent 19 CU_ASSERT_FATAL(expression) CU_ASSERT_EQUAL_FATAL(actual, expected)

Možnosti CUnit Unit testy lze seskupovat do sessions Vhodné dělení například dle modulů Režimy běhu Základní výstup do konzole Automatizovaný výstup do XML Interaktivní konzolový Interaktivní Curses (pouze Linux) 20

Ukázka unit testů Uživatelské funkce user_func.c Unit testy k jednotlivým funkcím a zavaděč unit_test.c 21

Základní konzolový režim CUnit - A Unit testing framework for C - Version 2.1-0 http://cunit.sourceforge.net/ Suite: Math Test Test: test of min()... passed Test: test of max()... passed Test: test of iseven()... passed Suite: String Test Test: test of tolowerstr()... passed Test: test of charcount()... FAILED 1. unit_test.c:72 - CU_ASSERT_EQUAL(charCount(NULL, 'a'),-1) --Run Summary: Type Total Ran Passed Failed suites 2 2 n/a 0 tests 5 5 4 1 asserts 18 18 17 1 22

Automatizovaný XML režim <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="..."?> <!DOCTYPE CUNIT_TEST_RUN_REPORT SYSTEM "..."> <CUNIT_TEST_RUN_REPORT>... <CUNIT_RUN_SUMMARY>... <CUNIT_RUN_SUMMARY_RECORD> <TYPE> Test Cases </TYPE> <TOTAL> 5 </TOTAL> <RUN> 5 </RUN> <SUCCEEDED> 4 </SUCCEEDED> <FAILED> 1 </FAILED> </CUNIT_RUN_SUMMARY_RECORD>... </CUNIT_RUN_SUMMARY>... </CUNIT_TEST_RUN_REPORT> 23

24 Interaktivní konzolový režim

25 Interaktivní Curses režim

Testování GUI Java aplikací

Testování GUI Obecné požadavky Test first Jednoduchá implementace Snadný refaktoring (rozšíření změny) Rychlá orientace ve výsledku / ladění testu 27

Testování GUI další požadavky Nezávislost na umístění komponent Pohodlné ladící výpisy Snadné psaní testů Aktuální, udržovaný nástroj 28

Přístupy k testování Record/Playback + Netřeba programovat kód + Rychlé vytvoření nástroje pro velké a dlouhé testy Změny v GUI způsobují problémy Často je potřeba aktualizovat nahrávky Určení zpožďujících faktorů, reakce... Programmatic + Změny GUI nezpůsobí problém + Podpora refaktoringu + Možnost reagovat na čas + Tuning testu Testér musí být programátor 29

Nástroje testování Abbot Eggplant FEST froglogic GUIdancer IBM Tester JFCUnit Jacareto jdiffchaser Jemmy Marathon Pounder qftest UISpec4J VNCPlay XEUS http://abbot.sourceforge.net http://www.redstonesoftware.com/ http://code.google.com/p/fest/ http://www.froglogic.com http://www.bredex.de/en/guidancer/ http://www.ibm.com/software/awdtools/tester/functional/ http://jfcunit.sourceforge.net http://www.ph-ludwigsburg.de/mathematik/personal/spannagel/jacareto/ http://jdiffchaser.sourceforge.net http://jemmy.netbeans.org http://marathonman.sourceforge.net http://pounder.sourceforge.net http://www.qfs.de/en/qftestjui/index.html http://www.uispec4j.org/ http://suif.stanford.edu/vncplay/ http://www.xeus-tool.com/ 30

JUnit Jednotkové testy pro jazyk Java (framework) Odělené testy od kódu dobrý (strukturovaný) kód => jednoduchý test Junit v3.8 (předek, metoda test) vs 4.x (anotace) Reporty, konfigurace 31

Co je UISpec4j Java Swing testing tool XP koncept (test first, refactor) Jednoduchý, rychlý, moderní nástroj. jen jeden jar navíc! 32

UISpec4j používání JUnit základ pro UISpec4j Adapter rozhraní testu a běžící aplikace Přístup na komponenty (gettery, findery, matchery) Vyvoláváme události (click vs. Trigger) Vyhodnocujeme události (Interceptory) 33

UISpec4j příklad http://www.uispec4j.org http://tech.groups.yahoo.com/group/uispec4j/ 34

Děkujeme za pozornost