VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INTELIGENTNÍCH SYSTÉMŮ

FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INTELLIGENT SYSTEMS

NÁVRH A IMPLEMENTACE TESTOVACÍHO SYSTÉMU NA ARCHITEKTUŘE GRID

DIPLOMOVÁ PRÁCE MASTER’S THESIS

AUTOR PRÁCE Bc. FILIP HUBÍK AUTHOR

BRNO 2013 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INTELIGENTNÍCH SYSTÉMŮ

FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INTELLIGENT SYSTEMS

NÁVRH A IMPLEMENTACE TESTOVACÍHO SYSTÉMU NA ARCHITEKTUŘE GRID DESIGN AND IMPLEMENT GRID TESTING SYSTEM

DIPLOMOVÁ PRÁCE MASTER’S THESIS

AUTOR PRÁCE Bc. FILIP HUBÍK AUTHOR

VEDOUCÍ PRÁCE Ing. RADEK KOČÍ, Ph.D. SUPERVISOR

VEDOUCÍ PRÁCE Z RED HAT JIŘÍ PECHANEC SUPERVISOR

BRNO 2013

Abstrakt Tento diplomový projekt se zabývá problematikou paralelizace sestavování a testovaní apli- kací tvořených v jazyce Java. Navrhuje software, který s využitím metod postupné inte- grace, paralelizace a distribuce výpočetně náročných úloh na architekturu grid napomáhá ke zrychlení vývoje softwarových produktů a automatizaci částí jejich vývojového cyklu.

Abstract This project addresses parallelization of building and testing projects written i Java progra- mming language. It proposes software that uses methods of continual integration, paralle- lization and distribution of computationally intensive tasks to grid architecture. Suggested software helps to accelerate the development of software product and automation of its parts.

Klíčová slova grid Hudson Java Red Hat open source MapReduce Maven TestNG Junit Infi- nispan GridGain Classloader JVM javac paralelizace testování compilace distribuce SwitchYard ModeShape

Keywords grid Jenkins Hudson Java Red Hat open source MapReduce Maven TestNG Junit Infi- nispan GridGain Apache Hadoop Classloader JVM javac parallelization testing compiling distribution SwitchYard ModeShape

Citace Filip Hubík: Návrh a implementace testovacího systému na architektuře GRID, diplomová práce, Brno, FIT VUT v Brně, 2013 Návrh a implementace testovacího systému na ar- chitektuře GRID

Prohlášení Prohlašuji, že jsem tuto diplomovou práci vypracoval samostatně pod vedením pánů Ing. Radka Kočího, Ph.D., zástupce FIT VUT Brno a Jiřího Pechance, zástupce firmy Red Hat

...... Filip Hubík 21. května 2013

Poděkování Oběma vedoucím děkuji za konzultace a pomoc při vedení a vypracování práce. Díky také společnosti Red Hat za hardware zapůjčený pro testování.

c Filip Hubík, 2013. Tato práce vznikla jako školní dílo na Vysokém učení technickém v Brně, Fakultě informa- čních technologií. Práce je chráněna autorským zákonem a její užití bez udělení oprávnění autorem je nezákonné, s výjimkou zákonem definovaných případů. Obsah

1 Úvod 4 1.1 Cíle práce...... 5 1.2 Obsah práce...... 5

2 Prostředky jazyka Java6 2.1 Základní charakteristika a struktura jazyka...... 6 2.2 Nejdůležitější součásti architektury jazyka...... 7 2.2.1 Statická kompilace...... 7 2.2.2 JVM...... 8 2.3 Framework Maven a modularita...... 9 2.3.1 Struktura modulu a závislosti...... 11 2.3.2 Multimodulární projekty...... 12 2.3.3 Předpoklady pro modularitu...... 13 2.3.4 Definice pojmů...... 14 2.3.5 Paralelizace kompilace a testování modulů s Maven...... 16 2.4 Další implementace modularity...... 17 2.4.1 OSGi...... 17 2.4.2 Jigsaw...... 18 2.5 Frameworky Junit a TestNG...... 19 2.5.1 Kategorizace a balíky testů...... 20

3 Architektura grid 23 3.1 Open source implementace grid architektury...... 24 3.2 Globus Toolkit...... 24 3.3 Apache Hadoop...... 26 3.4 GridGain...... 28 3.5 Infinispan.