O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Java. Praktyczne narzędzia

Book Description

Dzięki tej książce poznasz 33 praktyczne narzędzia, które ułatwią Twoją pracę — narzędzia, które zwiększą niezawodność Twojego kodu, poprawią wydajność oraz zapewnią bezpieczeństwo Twoim plikom źródłowym.

Table of Contents

  1. Java. Praktyczne Narzędzia
  2. Dedykacja
  3. Słowo wstępne
  4. Przedmowa
    1. Jak podzielono tę książkę
      1. Narzędzia kompilujące
      2. Narzędzia kontroli wersji
      3. Testy jednostkowe
      4. Testy integracyjne, obciążeniowe i wydajnościowe
      5. Narzędzia pomiaru jakości
      6. Narzędzia generujące pomoc techniczną
      7. Systemy zarządzania błędami
      8. Narzędzia ciągłej integracji
    2. Kto powinien przeczytać tę książkę
    3. Czego nie znajdziemy w tej książce
    4. Współautorzy
    5. Korektorzy merytoryczni
    6. Konwencje
    7. Kod źródłowy
    8. O tytule
    9. Podziękowania
    10. Korzystanie z przykładowego kodu
  5. Wprowadzenie
  6. I. Narzędzia kompilujące
    1. 1. Przygotowywanie projektu z wykorzystaniem Anta
      1. 1.1. Rola narzędzia Ant w procesie kompilacji
      2. 1.2. Instalacja Anta
        1. Instalacja Anta na komputerze z systemem Unix
        2. Instalacja Anta w systemie Windows
        3. Inne przydatne zmienne środowiskowe: ANT_OPTS oraz ANT_ARGS
      3. 1.3. Płynne wprowadzenie w świat Anta
        1. Podstawowe terminy obowiązujące w świecie Anta
        2. Prosty plik kompilacji Anta
        3. Uruchamianie narzędzia Ant
        4. Zależności pomiędzy celami
        5. Dokumentowanie naszego projektu
      4. 1.4. Kompilowanie kodu Javy za pomocą Anta
      5. 1.5. Dostosowywanie skryptów kompilacji za pomocą właściwości
      6. 1.6. Przeprowadzanie testów jednostkowych za pomocą Anta
        1. Stosowanie w Ancie frameworku JUnit
        2. Przygotowanie procesu kompilacji do obsługi zautomatyzowanych testów
        3. Stosowanie zadania <junit>
        4. Wykonywanie wielu testów
        5. Wykonywanie testów na odrębnej wirtualnej maszynie Javy
        6. Generowanie raportów z testów w formacie HTML
        7. Stosowanie asercji w przypadkach testowych
      7. 1.7. Generowanie dokumentacji za pomocą narzędzia Javadoc
      8. 1.8. Pakowanie gotowej aplikacji
        1. Generowanie pliku JAR
        2. Generowanie plików WAR i EAR
      9. 1.9. Wdrażanie aplikacji
        1. Kopiowanie plików
        2. Pozostałe techniki wdrażania aplikacji
      10. 1.10. Automatyczne przygotowywanie środowiska dla uruchamianych skryptów kompilacji
      11. 1.11. Stosowanie zależności narzędzia Maven w Ancie wraz z zadaniami Mavena
        1. Zadanie Anta zaczerpnięte z Mavena 2.0
        2. Instalacja zadania Mavena w Ancie
        3. Deklarowanie i stosowanie zależności Mavena w Ancie
        4. Pakowanie zależności
        5. Wskazywanie własnych repozytoriów
        6. Wykorzystywanie istniejących plików POM Mavena
      12. 1.12. Stosowanie Anta w środowisku Eclipse
      13. 1.13. Stosowanie Anta w środowisku NetBeans
      14. 1.14. Modyfikowanie kodu XML-a za pomocą zadania XMLTask
        1. Przykłady
        2. Zadanie XMLTask i pliki DTD
        3. Wywoływanie celów Anta za pośrednictwem zadania XMLTask
        4. Inne ciekawe zabiegi
          1. Zmiana kodowania
          2. Operowanie na dokumentach z komentarzami
      15. 1.15. Konkluzja
    2. 2. Przygotowywanie projektu z wykorzystaniem Mavena 2
      1. 2.1. Rola narzędzia Maven w procesie kompilacji
      2. 2.2. Maven i Ant
      3. 2.3. Instalacja Mavena
        1. Instalacja Mavena na komputerze z systemem Unix
        2. Instalacja Mavena na komputerze z systemem Windows
      4. 2.4. Kompilacje deklaratywne i model obiektu projektu Mavena
        1. Wprowadzenie do deklaratywnego zarządzania kompilacją
        2. Kontekst i artefakt projektu
        3. Czytelny, zrozumiały dla użytkownika opis projektu
        4. Deklarowanie serwera ciągłej integracji
        5. Definiowanie szczegółów o zespole programistów
        6. Zarządzanie zależnościami
        7. Dostosowywanie procesu kompilacji do specyfiki projektu
        8. Przygotowywanie raportów
        9. Definiowanie profilów kompilacji
      5. 2.5. Zrozumieć cykl życia Mavena 2
      6. 2.6. Struktura katalogów Mavena
      7. 2.7. Konfigurowanie Mavena pod kątem naszego środowiska
        1. Korzystanie z serwera proxy
        2. Stosowanie lokalnego serwera lustrzanego
        3. Zmiana położenia pamięci podręcznej Mavena
        4. Definiowanie dowolnych zmiennych opisujących środowisko robocze
      8. 2.8. Zarządzanie zależnościami w Mavenie 2
        1. Deklarowanie zależności
        2. Zarządzanie zależnościami przechodnimi
        3. Zasięg zależności
        4. Obsługa zależności zastrzeżonych (komercyjnych)
        5. Dostosowywanie zależności do potrzeb projektu za pośrednictwem właściwości
      9. 2.9. Poszukiwanie zależności za pośrednictwem witryny Maven Repository
      10. 2.10. Dziedziczenie i agregacja projektów
      11. 2.11. Tworzenie szablonu projektu za pomocą tzw. archetypów
      12. 2.12. Kompilacja kodu
      13. 2.13. Testowanie kodu
      14. 2.14. Pakowanie i wdrażanie naszej aplikacji
      15. 2.15. Wdrażanie aplikacji z wykorzystaniem narzędzia Cargo
      16. 2.16. Stosowanie Mavena w środowisku Eclipse
      17. 2.17. Stosowanie Mavena w środowisku NetBeans
      18. 2.18. Dostosowywanie procesu kompilacji do specyficznych potrzeb projektu za pomocą własnych modułów rozszerzeń
        1. Tworzenie modułu rozszerzenia
        2. Modyfikowanie cyklu życia
        3. Zaglądanie do wnętrza Mavena
        4. Korzystanie z komponentów kontenera Plexus
      19. 2.19. Konfigurowanie repozytorium korporacyjnego za pomocą narzędzia Archiva
        1. Instalacja narzędzia Archiva
        2. Konfiguracja repozytoriów w narzędziu Archiva
        3. Zarządzanie użytkownikami
        4. Przeglądanie repozytorium
        5. Uruchamianie narzędzia Archiva na innym porcie
        6. Mechanizmy pośredniczące w dostępie do zdalnych repozytoriów
        7. Konfigurowanie zdalnych repozytoriów
        8. Konfigurowanie narzędzia Archiva pracującego za serwerem proxy
        9. Stosowanie narzędzia Archiva z narzędziem Maven
        10. Ręczne wdrażanie plików w repozytorium narzędzia Archiva
      20. 2.20. Konfigurowanie repozytorium korporacyjnego z wykorzystaniem narzędzia Artifactory
        1. Konfiguracja repozytorium Mavena za pomocą narzędzia Artifactory
          1. Struktura katalogów narzędzia Artifactory
          2. Wdrażanie na serwerze Tomcat 6
          3. Konfiguracja repozytoriów Mavena
        2. Konfiguracja sposobu korzystania z nowego repozytorium przez narzędzie Maven
          1. Konfiguracja Mavena za pośrednictwem pliku pom.xml danego projektu
          2. Konfiguracja Mavena za pośrednictwem pliku settings.xml
          3. Kompilacja projektu z wykorzystaniem nowego repozytorium Mavena
        3. Instalacja artefaktów w repozytorium
          1. Instalacja artefaktów z wykorzystaniem interfejsu użytkownika WWW
          2. Instalacja artefaktów za pomocą poleceń Mavena
        4. Uruchamianie narzędzia Artifactory za pośrednictwem serwera proxy
        5. Dodawanie innych zdalnych repozytoriów
        6. Sporządzanie kopii zapasowej repozytorium
      21. 2.21. Stosowanie narzędzia Ant w Mavenie
        1. Korzystanie z istniejących plików build.xml
        2. Osadzanie kodu Anta w pliku POM
        3. Zależności zewnętrzne
        4. Tworzenie modułów rozszerzeń Anta
        5. Korzystanie z Mavena w Ancie
        6. Generowanie skryptu Anta za pomocą pliku POM
      22. 2.22. Archetypy zaawansowane
        1. Tworzenie własnych archetypów
      23. 2.23. Stosowanie podzespołów
        1. Tworzenie podzespołów
        2. Deskryptory wbudowane
        3. Podzespoły z profilami
  7. II. Narzędzia kontroli wersji
    1. 3. Kontrola wersji z wykorzystaniem systemu CVS
      1. 3.1. Wprowadzenie do systemu CVS
      2. 3.2. Konfigurowanie repozytorium systemu CVS
      3. 3.3. Tworzenie nowego projektu w systemie CVS
      4. 3.4. Wypożyczanie projektu
      5. 3.5. Praca na plikach — aktualizowanie i zatwierdzanie plików z kodem źródłowym
      6. 3.6. Blokowanie repozytorium
      7. 3.7. Praca z mechanizmem zastępowania słów kluczowych
      8. 3.8. Praca z plikami binarnymi
      9. 3.9. Znaczniki systemu CVS
      10. 3.10. Tworzenie odgałęzień w systemie CVS
      11. 3.11. Scalanie zmian z odgałęzienia
      12. 3.12. Przeglądanie historii zmian
      13. 3.13. Wycofywanie zmian
      14. 3.14. Stosowanie CVS-a w systemie Windows
    2. 4. Kontrola wersji z wykorzystaniem systemu Subversion
      1. 4.1. Wprowadzenie do systemu Subversion
        1. Numery rewizji i aktualizacje atomowe
        2. Szybkie tworzenie odgałęzień i przypisywanie znaczników
        3. Lekkie transakcje sieciowe
        4. Obsługa plików binarnych
      2. 4.2. Instalacja systemu Subversion
      3. 4.3. Typy repozytoriów systemu Subversion
      4. 4.4. Konfigurowanie repozytorium systemu Subversion
      5. 4.5. Tworzenie nowego projektu w systemie Subversion
      6. 4.6. Wypożyczanie kopii roboczej
      7. 4.7. Importowanie istniejących plików do repozytorium systemu Subversion
      8. 4.8. Zrozumieć adresy URL repozytorium systemu Subversion
      9. 4.9. Praca z plikami
        1. Aktualizowanie katalogu roboczego
        2. Praca na kopii lokalnej
        3. Zatwierdzanie efektów pracy
      10. 4.10. Sprawdzanie bieżącej sytuacji — polecenie status
      11. 4.11. Rozwiązywanie konfliktów
      12. 4.12. Stosowanie znaczników, odgałęzień i operacji scalania
      13. 4.13. Przywracanie poprzedniej rewizji
      14. 4.14. Blokowanie dostępu do plików binarnych
      15. 4.15. Zdejmowanie i przechwytywanie blokad
      16. 4.16. Udostępnianie zablokowanych plików tylko do odczytu za pomocą właściwości svn:needs-lock
      17. 4.17. Stosowanie właściwości
        1. Zachowywanie flagi wykonywalności za pomocą właściwości svn:executable
        2. Wymuszanie typu pliku za pomocą właściwości
        3. Wymuszanie na systemie Subversion ignorowania plików za pomocą właściwości svn:ignore
        4. Obsługa znaków końca wiersza różnych systemów operacyjnych za pomocą właściwości svn:eol-style
      18. 4.18. Historia zmian w systemie Subversion — rejestrowanie zdarzeń i określanie odpowiedzialności za zmiany
      19. 4.19. Konfigurowanie serwera systemu Subversion z wykorzystaniem serwera svnserve
      20. 4.20. Konfigurowanie bezpiecznego serwera svnserve
      21. 4.21. Konfigurowanie serwera Subversion z obsługą protokołu WebDAV/DeltaV
      22. 4.22. Konfigurowanie bezpiecznego serwera WebDAV/DeltaV
      23. 4.23. Dostosowywanie działania systemu Subversion za pomocą skryptów przechwytujących
      24. 4.24. Instalacja systemu Subversion w formie usługi systemu operacyjnego Windows
      25. 4.25. Sporządzanie kopii zapasowej i przywracanie repozytorium systemu Subversion
      26. 4.26. Stosowanie systemu Subversion w środowisku Eclipse
        1. Instalacja modułu rozszerzenia Subclipse
        2. Definiowanie repozytorium
        3. Dodawanie nowego projektu do repozytorium
        4. Tworzenie projektu na podstawie istniejącego repozytorium systemu Subversion
        5. Praca z plikami
        6. Śledzenie zmian
        7. Tworzenie i scalanie odgałęzień
      27. 4.27. Stosowanie systemu Subversion w środowisku NetBeans
        1. Instalacja mechanizmu obsługi systemu Subversion
        2. Tworzenie projektów z wykorzystaniem systemu Subversion
        3. Praca z plikami
        4. Śledzenie zmian
        5. Tworzenie i scalanie odgałęzień
      28. 4.28. Stosowanie systemu Subversion w systemie operacyjnym Windows
        1. Stosowanie klienta TortoiseSVN w Eksploratorze Windows
        2. Importowanie nowego projektu do repozytorium systemu Subversion
        3. Uzyskiwanie kopii roboczej
        4. Zatwierdzanie zmian za pośrednictwem narzędzia TortoiseSVN
        5. Aktualizowanie kopii roboczej
        6. Przeglądanie zawartości repozytorium
      29. 4.29. Śledzenie usterek i kontrola zmian
      30. 4.30. Stosowanie systemu Subversion w Ancie
        1. Instalacja zadania <svn>
        2. Wypożyczanie projektu
        3. Aktualizacja kodu na podstawie zawartości repozytorium
        4. Eksportowanie struktury katalogów
        5. Tworzenie nowego znacznika
      31. 4.31. Konkluzja
  8. III. Ciągła integracja
    1. 5. Konfigurowanie serwera ciągłej integracji za pomocą narzędzia Continuum
      1. 5.1. Wprowadzenie do narzędzia Continuum
      2. 5.2. Instalacja serwera narzędzia Continuum
      3. 5.3. Ręczne uruchamianie i zatrzymywanie serwera
      4. 5.4. Sprawdzanie stanu serwera
      5. 5.5. Uruchamianie serwera narzędzia Continuum w trybie ze szczegółowymi komunikatami
      6. 5.6. Dodawanie grupy projektów
      7. 5.7. Dodawanie projektu Mavena
      8. 5.8. Dodawanie projektu Anta
      9. 5.9. Dodawanie projektu kompilowanego za pomocą skryptu powłoki
      10. 5.10. Zarządzanie kompilacjami projektu
      11. 5.11. Zarządzanie użytkownikami
      12. 5.12. Konfigurowanie mechanizmów powiadomień
      13. 5.13. Konfigurowanie planowanych kompilacji
      14. 5.14. Diagnozowanie procesu kompilacji
      15. 5.15. Konfigurowanie serwera poczty elektronicznej narzędzia Continuum
      16. 5.16. Konfigurowanie portów witryny internetowej serwera Continuum
      17. 5.17. Automatyczne generowanie witryny Mavena za pomocą narzędzia Continuum
      18. 5.18. Konfigurowanie zadania ręcznej kompilacji
      19. 5.19. Konkluzja
    2. 6. Konfigurowanie serwera ciągłej integracji za pomocą narzędzia CruiseControl
      1. 6.1. Wprowadzenie do narzędzia CruiseControl
      2. 6.2. Instalacja narzędzia CruiseControl
      3. 6.3. Konfigurowanie projektu Anta
      4. 6.4. Powiadamianie członków zespołu za pomocą mechanizmów publikujących
      5. 6.5. Konfigurowanie projektu Mavena 2 w narzędziu CruiseControl
      6. 6.6. Panel administracyjny narzędzia CruiseControl
      7. 6.7. Dodatkowe narzędzia
        1. Narzędzie konfiguracyjne CruiseControl
        2. Integracja z przeglądarką Firefox i klientem Thunderbird
      8. 6.8. Konkluzja
    3. 7. LuntBuild — serwer ciągłej integracji z interfejsem WWW
      1. 7.1. Wprowadzenie do narzędzia LuntBuild
      2. 7.2. Instalowanie narzędzia LuntBuild
      3. 7.3. Konfigurowanie serwera LuntBuild
      4. 7.4. Dodawanie projektu
        1. Konfigurowanie podstawowych ustawień projektu
        2. Adaptery VCS
        3. Skrypty kompilacji
        4. Harmonogramowanie
        5. Odwzorowywanie logowania
      5. 7.5. Wykorzystywanie zmiennych projektowych do numerowania wersji
      6. 7.6. Diagnostyka wyników kompilacji
      7. 7.7. Stosowanie narzędzia LuntBuild w środowisku Eclipse
      8. 7.8. Raportowanie w systemie LuntBuild o pokryciu testami z wykorzystaniem narzędzia Cobertura
        1. Wprowadzenie
        2. Rozszerzanie narzędzia LuntBuild za pomocą punktów rozszerzeń
        3. Tworzenie rozszerzenia narzędzia LuntBuild o funkcjonalność systemu Cobertura
        4. Korzystanie z naszego rozszerzenia
        5. Uruchamianie narzędzia Cobertura za pomocą Anta
      9. 7.9. Integrowanie narzędzia LuntBuild z Mavenem
        1. Wprowadzenie
        2. Rozszerzanie Mavena o mechanizm obsługi narzędzia LuntBuild
          1. Konfigurowanie projektu
          2. Tworzenie klasy Mojo
          3. Integracja klasy Mojo z Mavenem
        3. Konfiguracja narzędzia LuntBuild
      10. 7.10. Konkluzja
    4. 8. Ciągła integracja z wykorzystaniem narzędzia Hudson
      1. 8.1. Wprowadzenie do narzędzia Hudson
      2. 8.2. Instalacja narzędzia Hudson
      3. 8.3. Zarządzanie katalogiem domowym Hudsona
      4. 8.4. Instalacja aktualizacji
      5. 8.5. Konfigurowanie Hudsona
      6. 8.6. Dodawanie nowego zadania kompilacji
        1. Konfigurowanie dowolnego projektu
        2. Konfigurowanie projektu Mavena
      7. 8.7. Organizowanie zadań
      8. 8.8. Monitorowanie kompilacji
      9. 8.9. Przeglądanie i awansowanie wybranych kompilacji
      10. 8.10. Zarządzanie użytkownikami
      11. 8.11. Uwierzytelnianie i bezpieczeństwo
      12. 8.12. Przeglądanie zmian
      13. 8.13. Moduły rozszerzeń Hudsona
      14. 8.14. Śledzenie wyników testów
      15. 8.15. Śledzenie mierników kodu źródłowego
      16. 8.16. Raportowanie o pokryciu kodu
    5. 9. Konfigurowanie platformy natychmiastowej komunikacji za pomocą serwera Openfire
      1. 9.1. Natychmiastowa komunikacja w projekcie informatycznym
      2. 9.2. Instalacja serwera Openfire
      3. 9.3. Konfigurowanie użytkowników i kont użytkowników serwera Openfire
      4. 9.4. Uwierzytelnianie użytkowników z wykorzystaniem zewnętrznej bazy danych
      5. 9.5. Uwierzytelnianie użytkowników na serwerze POP3
      6. 9.6. Organizowanie wirtualnych spotkań zespołu z wykorzystaniem czatu grupowego
      7. 9.7. Rozszerzanie funkcjonalności serwera Openfire za pomocą modułów rozszerzeń
      8. 9.8. Stosowanie serwera Openfire z systemem Continuum
      9. 9.9. Stosowanie serwera Openfire z systemem CruiseControl
      10. 9.10. Stosowanie serwera Openfire z narzędziem LuntBuild
      11. 9.11. Wysyłanie komunikatów Jabbera z poziomu aplikacji Javy za pośrednictwem interfejsu API Smack
      12. 9.12. Wykrywanie obecności interfejsu API Smack
      13. 9.13. Otrzymywanie wiadomości z wykorzystaniem interfejsu API Smack
  9. IV. Testy jednostkowe
    1. 10. Testowanie kodu z wykorzystaniem frameworku JUnit
      1. 10.1. Frameworki JUnit 3.8 i JUnit 4
      2. 10.2. Testowanie jednostkowe z wykorzystaniem frameworku JUnit 4
      3. 10.3. Konfigurowanie i optymalizacja przypadków testów jednostkowych
      4. 10.4. Proste testy wydajności z wykorzystaniem limitów czasowych
      5. 10.5. Prosta weryfikacja występowania wyjątków
      6. 10.6. Stosowanie testów sparametryzowanych
      7. 10.7. Stosowanie metody assertThat() i biblioteki Hamcrest
      8. 10.8. Teorie we frameworku JUnit 4
      9. 10.9. Stosowanie frameworku JUnit 4 w projektach Mavena 2
      10. 10.10. Stosowanie frameworku JUnit 4 w projektach Anta
      11. 10.11. Selektywne wykonywanie testów frameworku JUnit 4 w Ancie
        1. Wykonywanie pojedynczych testów
        2. Warunkowe wykonywanie testów
      12. 10.12. Testy integracyjne
      13. 10.13. Korzystanie z frameworku JUnit 4 w środowisku Eclipse
    2. 11. Testowanie nowej generacji z wykorzystaniem frameworku TestNG
      1. 11.1. Wprowadzenie do frameworku TestNG
      2. 11.2. Tworzenie prostych testów jednostkowych za pomocą frameworku TestNG
      3. 11.3. Definiowanie pakietów testów frameworku TestNG
      4. 11.4. Moduł rozszerzenia frameworku TestNG dla środowiska Eclipse
        1. 11.4.1. Instalacja modułu rozszerzenia TestNG
        2. 11.4.2. Wykonywanie testów frameworku TestNG
      5. 11.5. Stosowanie frameworku TestNG w Ancie
      6. 11.6. Korzystanie z frameworku TestNG w Mavenie 2
      7. 11.7. Zarządzanie cyklem życia testów
      8. 11.8. Stosowanie grup testów
      9. 11.9. Zarządzanie zależnościami
      10. 11.10. Testowanie równoległe
      11. 11.11. Parametry testów i testowanie sterowane danymi
      12. 11.12. Weryfikacja wyjątków
      13. 11.13. Obsługa błędów częściowych
      14. 11.14. Ponowne wykonywanie testów zakończonych niepowodzeniem
    3. 12. Maksymalizacja pokrycia testami za pomocą narzędzia Cobertura
      1. 12.1. Pokrycie testami
      2. 12.2. Uruchamianie narzędzia Cobertura za pośrednictwem Anta
      3. 12.3. Weryfikacja pokrycia kodu testami frameworku TestNG
      4. 12.4. Interpretacja raportu narzędzia Cobertura
      5. 12.5. Wymuszanie dużego pokrycia kodu
      6. 12.6. Generowanie raportów narzędzia Cobertura w Mavenie
      7. 12.7. Integracja testów pokrycia kodu z procesem kompilacji Mavena
      8. 12.8. Badanie pokrycia kodu w środowisku Eclipse
      9. 12.9. Konkluzja
  10. V. Testy integracyjne, funkcjonalne, obciążeniowe i wydajnościowe
    1. 13. Testowanie aplikacji frameworku Struts z wykorzystaniem frameworku StrutsTestCase
      1. 13.1. Wprowadzenie
      2. 13.2. Testowanie aplikacji frameworku Struts
      3. 13.3. Wprowadzenie do frameworku StrutsTestCase
      4. 13.4. Testy obiektów zastępczych z wykorzystaniem frameworku StrutsTestCase
      5. 13.5. Testowanie mechanizmów obsługi błędów w aplikacji frameworku Struts
      6. 13.6. Dostosowywanie środowiska testowego
      7. 13.7. Testy wydajnościowe pierwszego stopnia
      8. 13.8. Konkluzja
    2. 14. Testy integracyjne baz danych z wykorzystaniem frameworku DbUnit
      1. 14.1. Wprowadzenie
      2. 14.2. Przegląd
        1. Cele frameworku DbUnit
        2. Konfigurowanie frameworku DbUnit
        3. Uruchamianie frameworku DbUnit
      3. 14.3. Struktura frameworku DbUnit
        1. Klasa DatabaseTestCase
        2. Interfejs IDatabaseConnection
        3. Interfejs IDataSet
        4. Interfejs ITable
        5. Interfejs ITableMetaData
      4. 14.4. Przykładowa aplikacja
      5. 14.5. Wypełnianie bazy danych
        1. Weryfikacja przez odczytanie pojedynczego wiersza
        2. Weryfikacja przez odczytanie wielu wierszy
        3. Stosowanie wartości NULL przez pominięcie
        4. Stosowanie wartości NULL za pomocą wyrażeń DTD
      6. 14.6. Weryfikacja bazy danych
        1. Weryfikacja skutków operacji UPDATE
        2. Weryfikacja skutków operacji DELETE
        3. Weryfikacja skutków operacji INSERT (z pominięciem klucza)
        4. Weryfikacja skutków operacji INSERT (z uwzględnieniem klucza)
      7. 14.7. Zastępowanie wartości
        1. Zastępowanie wartości NULL z wykorzystaniem klasy ReplacementDataSet
        2. Zastępowanie wartości NULL za pomocą klasy ValueReplacer
        3. Zastępowanie zawartości kolumny image za pomocą klasy ValueReplacer
      8. 14.8. Alternatywne formaty zbiorów danych
        1. Stosowanie zbiorów danych w formacie XLS
        2. Stosowanie zbiorów danych w formacie CSV
        3. Stosowanie formatu InlineDataSet
      9. 14.9. Obsługa niestandardowych testów danych
        1. Korzystanie z typu danych INTERVALDS
      10. 14.10. Pozostałe zastosowania
        1. Wstrzykiwanie infrastruktury testowej
        2. Stosowanie techniki wycofywania transakcji
        3. Testowanie procedur składowanych
        4. Testowanie perspektyw
        5. Eksportowanie zbioru danych za pośrednictwem Anta
        6. Importowanie zbioru danych za pośrednictwem Anta
    3. 15. Testy wydajnościowe z wykorzystaniem frameworku JUnitPerf
      1. 15.1. Wprowadzenie do frameworku JUnitPerf
      2. 15.2. Badanie wydajności za pomocą klasy TimedTest
      3. 15.3. Symulowanie obciążenia za pomocą klasy LoadTest
      4. 15.4. Przeprowadzanie testów wydajnościowych, które nie gwarantują bezpieczeństwa przetwarzania wielowątkowego
      5. 15.5. Oddzielanie testów wydajnościowych od testów jednostkowych w Ancie
      6. 15.6. Oddzielanie testów wydajnościowych od testów jednostkowych w Mavenie
    4. 16. Wykonywanie testów obciążeniowych i wydajnościowych za pomocą narzędzia JMeter
      1. 16.1. Wprowadzenie
      2. 16.2. Instalacja narzędzia JMeter
      3. 16.3. Testowanie prostej aplikacji internetowej
        1. Przygotowywanie grupy wątków
        2. Tworzenie harmonogramu testów
        3. Ustawianie elementów konfiguracyjnych żądań protokołu HTTP
        4. Dodawanie żądania protokołu HTTP
      4. 16.4. Projektowanie struktury naszego przypadku testowego
      5. 16.5. Rejestrowanie i wyświetlanie wyników testu
        1. Wizualizacja wyników testów wydajnościowych za pomocą elementu nasłuchującego Graph Results
        2. Uzyskiwanie dodatkowych szczegółów za pośrednictwem elementu nasłuchującego View Results Tree
        3. Uzyskiwanie podsumowania wyników testów
      6. 16.6. Rejestrowanie przypadku testowego za pomocą serwera proxy narzędzia JMeter
      7. 16.7. Testowanie z wykorzystaniem zmiennych
      8. 16.8. Testowanie na wielu komputerach
    5. 17. Testowanie usług sieciowych za pomocą narzędzia SoapUI
      1. 17.1. Wprowadzenie
      2. 17.2. Wprowadzenie do narzędzia SoapUI
        1. Testowanie usług sieciowych
        2. Wytwarzanie usług sieciowych
        3. Kiedy korzystać z narzędzia SoapUI
      3. 17.3. Instalacja narzędzia SoapUI
      4. 17.4. Instalacja lokalnej usługi sieciowej
      5. 17.5. Testowanie usług sieciowych za pomocą narzędzia SoapUI
      6. 17.6. Przeprowadzanie testów obciążeniowych za pomocą narzędzia SoapUI
      7. 17.7. Uruchamianie narzędzia SoapUI z poziomu wiersza poleceń
      8. 17.8. Uruchamianie narzędzia SoapUI za pośrednictwem Anta
      9. 17.9. Uruchamianie narzędzia SoapUI za pośrednictwem Mavena
      10. 17.10. Testy ciągłe
      11. 17.11. Konkluzja
    6. 18. Profilowanie i monitorowanie aplikacji Javy za pomocą narzędzi pakietu Sun JDK
      1. 18.1. Narzędzia profilujące i monitorujące pakietu Sun JDK
      2. 18.2. Nawiązywanie połączenia z aplikacją Javy i monitorowanie jej działania za pomocą narzędzia JConsole
      3. 18.3. Monitorowanie zdalnej aplikacji na serwerze Tomcat za pomocą narzędzia JConsole
      4. 18.4. Wykrywanie i identyfikacja wycieków pamięci za pomocą narzędzi pakietu JDK
      5. 18.5. Diagnozowanie wycieków pamięci z wykorzystaniem zrzutów sterty oraz narzędzi jmap i jhat
      6. 18.6. Wykrywanie zakleszczeń
    7. 19. Profilowanie aplikacji Javy w środowisku Eclipse
      1. 19.1. Profilowanie aplikacji z poziomu środowiska IDE
      2. 19.2. Platforma TPTP środowiska Eclipse
      3. 19.3. Instalacja platformy TPTP
      4. 19.4. Platformy TPTP i Java 6
      5. 19.5. Podstawowe techniki profilowania z wykorzystaniem platformy TPTP
      6. 19.6. Ocena użycia pamięci na podstawie wyników podstawowej analizy pamięci
      7. 19.7. Analiza czasu wykonywania
      8. 19.8. Wyświetlanie statystyk pokrycia
      9. 19.9. Stosowanie filtrów zawężających uzyskiwane wyniki
      10. 19.10. Profilowanie aplikacji internetowej
      11. 19.11. Konkluzja
    8. 20. Testowanie interfejsów użytkownika
      1. 20.1. Wprowadzenie
      2. 20.2. Testowanie aplikacji internetowej za pomocą narzędzia Selenium
        1. Wprowadzenie
        2. Korzystanie ze środowiska wytwarzania Selenium
        3. Pisanie skryptów testowych narzędzia Selenium
          1. Wprowadzenie do języka Selenese
          2. Odwoływanie się do obiektów na stronie internetowej
          3. Stosowanie zmiennych
          4. Stosowanie asercji
        4. Wykonywanie pakietów testów narzędzia Selenium za pomocą platformy Selenium Core
        5. Pisanie testów frameworku JUnit z wykorzystaniem skryptów narzędzia Selenium
        6. Stosowanie narzędzia Selenium w Ancie
        7. Stosowanie narzędzia Selenium w Mavenie
      3. 20.3. Testowanie graficznych interfejsów Swinga za pomocą narzędzia FEST
        1. Wprowadzenie
        2. Testowanie graficznych interfejsów użytkownika
        3. Wprowadzenie do narzędzia FEST
        4. Testowanie graficznych interfejsów użytkownika z wykorzystaniem biblioteki FEST
        5. Śledzenie okien z wykorzystaniem biblioteki FEST
        6. Weryfikacja błędów testów
        7. Testowanie odziedziczonych aplikacji
        8. Jak tworzyć łatwe do testowania interfejsy GUI
      4. 20.4. Konkluzja
  11. VI. Narzędzia pomiaru jakości
    1. 21. Wykrywanie i wymuszanie standardów kodowania za pomocą narzędzia Checkstyle
      1. 21.1. Wymuszanie standardów kodowania za pomocą narzędzia Checkstyle
      2. 21.2. Stosowanie narzędzia Checkstyle w środowisku Eclipse
      3. 21.3. Modyfikowanie reguł narzędzia Checkstyle w środowisku Eclipse
      4. 21.4. Dostosowywanie reguł narzędzia Checkstyle z wykorzystaniem plików konfiguracyjnych w formacie XML
      5. 21.5. Dostosowywanie pracy narzędzia Checkstyle — reguły, bez których możemy sobie poradzić, i kilka reguł, z których warto korzystać
      6. 21.6. Stosowanie narzędzia Checkstyle do definiowania reguł dla nagłówków w kodzie źródłowym
      7. 21.7. Wstrzymywanie testów narzędzia Checkstyle
      8. 21.8. Korzystanie z narzędzia Checkstyle w Ancie
      9. 21.9. Korzystanie z narzędzia Checkstyle w Mavenie
    2. 22. Wstępne wykrywanie błędów za pomocą narzędzia PMD
      1. 22.1. Narzędzie PMD i statyczna analiza kodu
      2. 22.2. Korzystanie z narzędzia PMD w środowisku Eclipse
        1. 22.2.1. Instalacja modułu rozszerzenia narzędzia PMD
        2. Wykrywanie i wyświetlanie błędów
      3. 22.3. Konfiguracja reguł narzędzia PMD w środowisku Eclipse
      4. 22.4. Więcej o zbiorach reguł narzędzia PMD
      5. 22.5. Pisanie własnych zbiorów reguł narzędzia
      6. 22.6. Generowanie raportu narzędzia PMD w środowisku Eclipse
      7. 22.7. Wstrzymywanie reguł narzędzia PMD
      8. 22.8. Wykrywanie praktyki „wytnij i wklej” za pomocą narzędzia CPD
      9. 22.9. Stosowanie narzędzia PMD w Ancie
      10. 22.10. Stosowanie narzędzia PMD w Mavenie
    3. 23. Wstępne wykrywanie błędów za pomocą narzędzia FindBugs
      1. 23.1. FindBugs jako wyspecjalizowany zabójca błędów
      2. 23.2. Stosowanie narzędzia FindBugs w środowisku Eclipse
        1. Instalacja modułu rozszerzenia narzędzia FindBugs
        2. Wykrywanie i wyświetlanie błędów
      3. 23.3. Wybiórcze zawieszanie stosowania reguł za pomocą filtrów narzędzia FindBugs
      4. 23.4. Stosowanie adnotacji narzędzia FindBugs
      5. 23.5. Korzystanie z narzędzia FindBugs w Ancie
      6. 23.6. Korzystanie z narzędzia FindBugs w Mavenie
      7. 23.7. Konkluzja
    4. 24. Analiza wyników — półautomatyczne przeglądy kodu za pomocą narzędzia Jupiter
      1. 24.1. Wprowadzenie do Jupitera — narzędzia do przeglądania kodu w środowisku Eclipse
      2. 24.2. Instalacja narzędzia Jupiter w środowisku Eclipse
      3. 24.3. Zrozumieć proces przeglądów kodu narzędzia Jupiter
      4. 24.4. Prowadzenie przeglądów własnego kodu
      5. 24.5. Konfiguracja
      6. 24.6. Ustawianie domyślnych wartości konfiguracyjnych
      7. 24.7. Przeglądy indywidualne
      8. 24.8. Przeglądy zespołowe
      9. 24.9. Faza wprowadzania poprawek
      10. 24.10. Wewnętrzne działania Jupitera
      11. 24.11. Konkluzja
    5. 25. Koncentrujmy się na tym, co naprawdę ważne — narzędzie Mylyn
      1. 25.1. Wprowadzenie do narzędzia Mylyn
      2. 25.2. Instalacja rozszerzenia Mylyn
      3. 25.3. Śledzenie zadań i problemów
      4. 25.4. Korzystanie z repozytoriów zadań
      5. 25.5. Koncentrowanie się na wybranych zadaniach z wykorzystaniem mechanizmów zarządzania kontekstami
      6. 25.6. Korzystanie ze zbiorów zmian środowiska Eclipse
      7. 25.7. Współdzielenie kontekstu z pozostałymi programistami
      8. 25.8. Konkluzja
    6. 26. Monitorowanie statystyk kompilacji
      1. 26.1. Wprowadzenie
      2. 26.2. Narzędzie QALab
        1. Stosowanie narzędzia QALab w Ancie
        2. Stosowanie narzędzia QALab w Mavenie
      3. 26.3. Mierzenie ilości kodu źródłowego za pomocą modułu rozszerzenia StatSCM
      4. 26.4. Statystyki narzędzia StatSVN w Ancie
        1. Instalacja narzędzia StatSVN
        2. Wyodrębnianie plików dziennika systemu Subversion
        3. Generowanie raportów narzędzia StatSVN
  12. VII. Narzędzia do zarządzania problemami
    1. 27. Bugzilla
      1. 27.1. Wprowadzenie do narzędzia Bugzilla
      2. 27.2. Instalacja narzędzia Bugzilla
        1. Podstawowe wymagania systemowe
        2. Instalacja aplikacji Bugzilla
        3. Instalacja modułów Perla
        4. Instalacja aplikacji Bugzilla
        5. Konfigurowanie serwera WWW
      3. 27.3. Konfigurowanie środowiska narzędzia Bugzilla
      4. 27.4. Zarządzanie kontami użytkowników
      5. 27.5. Ograniczanie dostępu do bazy danych z wykorzystaniem grup użytkowników
      6. 27.6. Konfigurowanie produktu
      7. 27.7. Śledzenie postępu z wykorzystaniem tzw. kamieni milowych
      8. 27.8. Zarządzanie grupami produktów z wykorzystaniem klasyfikacji
      9. 27.9. Przeszukiwanie błędów
      10. 27.10. Tworzenie nowego błędu
      11. 27.11. Cykl życia błędu reprezentowanego w systemie Bugzilla
      12. 27.12. Tworzenie harmonogramu rozsyłania powiadomień (pojękiwania)
      13. 27.13. Dostosowywanie pól systemu Bugzilla do potrzeb konkretnego projektu
      14. 27.14. Konkluzja
    2. 28. Trac — lekkie zarządzanie projektami
      1. 28.1. Wprowadzenie do narzędzia Trac
      2. 28.2. Instalacja narzędzia Trac
      3. 28.3. Definiowanie projektu narzędzia Trac
      4. 28.4. Uruchamianie narzędzia Trac w formie autonomicznego serwera
      5. 28.5. Konfiguracja polecenia tracd jako usługi systemu Windows
      6. 28.6. Instalacja narzędzia Trac na serwerze Apache
      7. 28.7. Administrowanie witryną internetową Traca
      8. 28.8. Zarządzanie kontami użytkowników
      9. 28.9. Dostosowywanie witryny internetowej narzędzia Trac — korzystanie z funkcji witryn typu wiki
      10. 28.10. Stosowanie systemu zarządzania biletami Traca
        1. Tworzenie nowego biletu
        2. Cykl życia biletu Traca
      11. 28.11. Aktualizowanie błędów reprezentowanych w narzędziu Trac na podstawie zawartości repozytorium systemu Subversion
      12. 28.12. Modyfikowanie pól biletów Traca
      13. 28.13. Konfigurowanie powiadomień wysyłanych pocztą elektroniczną
      14. 28.14. Raportowanie z wykorzystaniem zapytań i raportów Traca
      15. 28.15. Zarządzanie postępami prac za pomocą map drogowych i diagramów linii czasu
        1. Kamienie milowe narzędzia Trac
        2. Widok linii czasu
      16. 28.16. Przeglądanie repozytorium z kodem źródłowym
      17. 28.17. Stosowanie kanałów RSS i formatu iCalendar
      18. 28.18. Dostosowywanie stron witryny wiki za pomocą skryptów Pythona
      19. 28.19. Konkluzja
  13. VIII. Narzędzia do dokumentacji technicznej
    1. 29. Komunikacja w ramach zespołu projektowego za pośrednictwem witryny Mavena 2
      1. 29.1. Witryna internetowa Mavena 2 jako narzędzie komunikacyjne
      2. 29.2. Konfigurowanie mechanizmu generowania witryny o projekcie Mavena
        1. Opisywanie projektu
        2. Odwołania do systemu śledzenia błędów
        3. System ciągłej integracji
        4. Zespół projektowy
        5. Listy dyskusyjne
        6. Repozytorium z kodem źródłowym
        7. Generowanie witryny
      3. 29.3. Włączanie do witryny Mavena raportów generowanych przez inne narzędzia
        1. Dokumentacja Javadoc
        2. Raporty o wynikach testów jednostkowych
        3. Raporty o pokryciu testami
        4. Raporty o wynikach analizy kodu
        5. Zarządzanie zmianami i konfiguracjami
      4. 29.4. Tworzenie dedykowanego projektu witryny Mavena
      5. 29.5. Definiowanie szkicu witryny
      6. 29.6. Architektura mechanizmu generującego witryny Mavena
        1. Doxia
        2. APT
        3. FML
        4. XDoc
      7. 29.7. Stosowanie fragmentów kodu
      8. 29.8. Modyfikowanie wyglądu i sposobu obsługi witryny Mavena
        1. Zmiana skór
        2. Tworzenie własnego stylu
        3. Modyfikowanie szablonów silnika Velocity
      9. 29.9. Udostępnianie witryny
    2. 30. Automatyczne generowanie dokumentacji technicznej
      1. 30.1. Wprowadzenie
      2. 30.2. Wizualizacja struktury bazy danych za pomocą narzędzia SchemaSpy
        1. Wprowadzenie
        2. Przegląd możliwości narzędzia SchemaSpy
        3. Instalacja narzędzia SchemaSpy
        4. Stosowanie narzędzia SchemaSpy
        5. Stosowanie narzędzia SchemaSpy w Ancie
        6. Stosowanie narzędzia SchemaSpy w Mavenie
      3. 30.3. Generowanie dokumentacji kodu źródłowego za pomocą Doxygena
        1. Wprowadzenie
        2. Raporty narzędzia Doxygen
        3. Instalacja narzędzia Doxygen
        4. Konfigurowanie Doxygena
        5. Uruchamianie narzędzia Doxygen z poziomu wiersza poleceń
        6. Stosowanie narzędzia Doxygen w Ancie
        7. Jak przygotować klasy Javy do przetwarzania przez narzędzie Doxygen
          1. Stosowanie krótkich opisów
          2. Listy
          3. Łącza i referencje
          4. Dokumentowanie pakietów
          5. Dokumentowanie strony domowej
      4. 30.4. Umieszczanie diagramów notacji UML w dokumentacji narzędzia Javadoc z wykorzystaniem narzędzia UmlGraph
        1. Stosowanie narzędzia UmlGraph w Ancie
        2. Stosowanie narzędzia UmlGraph w Mavenie
      5. 30.5. Konkluzja
  14. A. Bibliografia
  15. B. O autorze
  16. Indeks
  17. Kolofon
  18. Copyright