TFP - Podstawy testowania dla pragmatyków
Szkolenie przeznaczone jest dla tych wszystkich,
którzy chcą poznać arkana sztuki testowania i chcą, aby nabyta wiedza szybko
zaczęła przynosić wymierne efekty. Dlatego też szkolenie stanowi połączenie
skoncentrowanej teorii związanej z testowaniem (jeden dzień), wiedzy z zakresu
projektowania użytecznych aplikacji (metodyka User-Centered Design) oraz dwudniowych warsztatów praktycznych z obszarów
testów jednostkowych z elementami Test-Driven Development (TDD), testów integracyjnych i systemowych
Odbiorcy szkolenia:
Szkolenie przeznaczone jest dla testerów, programistów,
liderów projektu, analityków jakości. Uczestnicy powinni posiadać podstawową
wiedzę programistyczną. Bardzo przydatna jest umiejętność programowania w
dowolnym języku strukturalnym lub obiektowym (np. w języku Java,
C#, C++
).
Czas trwania:
4 dni
(zajęcia prowadzone są w formie wykładu połączonego z warsztatem).
Nabywane umiejętności:
-
Opanowanie podstawowej wiedzy z zakresu testowania
oprogramowania
-
Umiejętność doboru właściwego sposobu testowania
umożliwiającego szybkie i łatwe znajdowanie ważnych błędów
-
Zdolność do tworzenia efektywnej strategii testowania
-
Zapobieganie usterkom i awariom oprogramowania poprzez
włączenie testowania w proces wytwórczy
-
Poznanie metod pozyskiwania wymagań z zakresu użyteczności, a w
szczególności dokonania Analizy Kontekstu Użytkowania
(ang.
context of use analysis)
-
Zdolność do projektowania aplikacji z perspektywy użytkownika (
User-Centered
Design)
-
Umiejętność przeprowadzenia
testów użyteczności
-
Poznanie koncepcji
Test-Driven Development (TDD)
oraz sztuki pisania pragmatycznych testów jednostkowych
-
Biegłość w pisaniu testów z wykorzystaniem różnych narzedzi
-
Umiejętność optymalnego wykorzystywania obiektów typu Mock (zaślepka)
-
Sprawność w tworzeniu testów dla aplikacji o złożonej architekturze
Tematy ćwiczeń:
W celu
utrwalenia wiedzy nabywanej podczas szkolenia, uczestnicy wykonują szereg
ćwiczeń, obejmujących zakresem między innymi zagadnienia:
-
Analiza Kontekstu Użytkowania
(ang. context of use analysis)
-
Projektowanie ergonomicznego interfejsu użytkownika
-
Testy
jednostkowe
-
Tworzenie
obiektów
Mock
(zaślepka)
-
Testowanie warstwy dostępu do
danych (Testy DAO)
-
Testy w
kontenerze
-
Testy interfejsu użytkownika
aplikacji internetowej
Tematy zajęć:
Nowoczesne testowanie
-
Podstawy nowoczesnego
testowania
-
Terminologia
-
Definicja
testowania
-
Podstawy
procesu testowania
-
Kluczowe
tematy: zrozumienie ryzyka, modele testów i testowanie prewencyjne
-
Testowanie w różnych fazach
cyklu wytwarzania oprogramowania
-
Modele
procesu wytwarzania oprogramowania
-
Ekonomika
testowania
-
Planowanie
testowania
-
Testowanie
komponentów
-
Testowanie
integracyjne
-
Testowanie
systemu
-
Testowanie
właściwości
-
Testowanie
akceptacyjne
-
Testowanie
pielęgnacyjne
-
Planowanie testowania
-
Podstawy
planowania testowania
-
Zrozumienie
ryzyka i strategii testowania
-
Planowanie
testów
-
Generalne
zasady dobrego planowania
-
Wymiary
planowania testów - testy: akceptacyjne, systemowe, integracyjne,
modułowe
-
Wzorce Q-Patterns - problem ponownego użycia
testów
-
Testowanie wymagań
-
Sprawdzenie zgodności wymagań z celami
-
Walidacja zakresu wymagań poprzez sprawdzenie
kompletności scenariuszy
-
Testowania - analiza
-
Cele
testowania
-
Tworzenie
list określających obszary wymagające przetestowania
-
Analiza
wymagań
-
Analiza
wymagań projektowych
-
Testowanie
zmian i modyfikacji
-
Testowanie – projektowanie i
implementacja
-
Zrozumienie
architektury wspierającej testowalność
-
Podejmowanie
decyzji projektowych w obszarze testowania
-
Dokumentowanie
testowania: przypadki, dane, procedury projektowe
-
Wdrożenie
przypadków testowych z uwzględnieniem kolekcji danych testowych i
uwarunkowań środowiskowych
-
Szacowanie
procesu testowania: kiedy testowanie uznać za zakończone?
-
Wykonywanie testów i
raportowanie
-
Wykonywanie
testów
-
Śledzenie
i ocenianie rezultatów
-
Raportowanie
statusu: gdzie jesteśmy w procesie testowania?
-
Jaki
jest współczynnik ryzyka?
Sztuka tworzenia użytecznego
oprogramowania
-
Definicje użyteczności i
dziedziny pokrewne:
-
ergonomia
-
interakcja
człowiek-komputer
-
inżynieria
użyteczności
-
architektura
informacji
-
projektowanie
produktów
-
Użyteczność – zalecenia
-
Norma
ISO 9126-1
-
Odnośne dyrektywy Unii
Europejskiej
-
Heurystyki Jakoba Nielsena
-
Projektowanie oprogramowania z
perspektywy użytkownika
-
Planowanie
-
Pierwsze kroki
-
Planowanie użyteczności
-
Spotkanie inicjujące
-
Analiza kontekstu użytkownika
-
Analiza konkurencji
-
Analiza
-
Wywiady
-
Wywiady grupowe
-
Analiza zadań użytkownika
-
Obserwacja
-
Grupowanie informacji - technika sortowania
kart
-
Przypadki użycia
-
Profilowanie użytkowników – personalizacja
-
Projektowanie użytecznego
Graficznego Interfejsu Użytkownika
-
Przygotowanie i rozwijanie dokumentu „User-Interface Guidelines” (Podręcznik
projektowania interfejsu użytkownika) - zalecenia projektowe
-
Modelowanie
Interfejsu Użytkownika
-
Normy
-
Model
Przypadków Użycia
-
VOPC
- Widok Uczestniczących Klas - klasy graniczne
-
Tworzenie Scenorysów
(ang. storyboard)
-
Mapy nawigacyjne
-
Najczęściej popełniane
błędy w procesie projektowania GUI
-
Tworzenie prototypów
interfejsu użytkownika
-
Testowanie i ocena interfejsu użytkownika
-
Ocena heurystyczna
-
Inspekcje – listy kontrolne
-
Testy z udziałem użytkowników
-
Użyteczność jako skuteczny oręż walki konkurencyjnej
Pragmatyczny
tester – warsztaty
-
Wprowadzenie do testów
jednostkowych
-
Wprowadzenie do metodologii
„eXtreme Programming”
-
Wprowadzenie do Test-Driven
Development (TDD)
-
Continouos integration
(Ciągła integracja)
-
Testy jednostkowe
-
Fundamenty TDD i XP: Testy
jednostkowe, na przykładzie biblioteki JUnit
-
Budowa i cykl wykonania
testu
-
Najnowsze trendy: Adnotacje
w JUnit 4.0
-
Dobre praktyki przygotowania
testów JUnit
-
Przykłady i ćwiczenie
-
Obiekty Mock (Zaślepki)
-
Problemy stosowania TDD we
współczesnych projektach.
-
Wprowadzenie pojęcia zaślepki
(Mock Object)
-
Tworzenie programowalnych
zaślepek na przykładzie biblioteki EasyMock
-
Gotowe zaślepki popularnych
usług i frameworków
-
Biblioteka Mockrunner
-
Przykłady użycia biblioteki
Mockrunner dla JDBC, JNDI i Struts
-
Ćwiczenia
-
Testy warstwy dostępu do
danych (Testy DAO)
-
Problemy testowania warstwy
dostępu do danych.
-
Złożona integracja DAO z
używanym API (Jdbc/Hibernate)
-
Przygotowanie danych
testowych
-
Biblioteka DBUnit
-
Przykłady budowy testów
jednostkowych warstwy DAO z wykorzystaniem rzeczywistej bazy danych
wypełnianej danymi przy użyciu biblioteki DBUnit.
-
Ćwiczenie
-
Wykorzystanie HSQLDB i
wsparcia Spring
-
Utrzymywanie stałego stanu
bazy danych pomiędzy testami przy użyciu transakcji.
-
Przykłady testów DAO przy
użyciu lekkiej bazy danych.
-
Ćwiczenie
-
Testy w kontenerze
-
Wprowadzenie do wykonania
testów w kontenerze
-
Zaślepki czy testy w
kontenerze?
-
Cactus Framework i biblioteka
StrutsTestCase
-
Przykład testów akcji Struts
realizowanych w kontenerze aplikacji
-
Ćwiczenie
-
Testy interfejsu użytkownika
aplikacji WEB
-
Problemy przygotowania
dobrych testów interfejsu użytkownika
-
„Zupa tagów” – problem z
brudnym HTMLem
-
Biblioteki wspomagające
analizowanie brudnego HTMLa
-
Prosta emulacja przeglądarki:
Biblioteka HttpUnit
-
Automatyzacja prawdziwej
przeglądarki: narzędzia Watij i Sahi
-
Przykład automatyzacji
przeglądarek przy użyciu Watij i Sahi
-
Porównanie narzędzi Watij i
Sahi
-
Ćwiczenie z wykorzystaniem
Watij.
Zalecane szkolenia poprzedzające: