Projekt okładki i stron tytułowych Grzegorz Laskowski

Rysunki Norbert Prochacki

Wydawca Łukasz Łopuszański

Redaktor prowadzący Jolanta Kowalczuk

Redaktor Joanna Cierkońska

Skład wersji elektronicznej na zlecenie Wydawnictwa Naukowego PWN Michał Nakoneczny / 88em.eu

Zastrzeżonych nazw firm i produktów użyto w książce wyłącznie w celu identyfikacji.

Książka, którą nabyłeś, jest dziełem twórcy i wydawcy. Prosimy, abyś przestrzegał praw, jakie im przysługują. Jej zawartość możesz udostępnić nieodpłatnie osobom bliskim lub osobiście znanym. Ale nie publikuj jej w internecie. Jeśli cytujesz jej fragmenty, nie zmieniaj ich treści i koniecznie zaznacz, czyje to dzieło. A kopiując jej część, rób to jedynie na użytek osobisty.

Szanujmy cudzą własność i prawo

Więcej na www.legalnakultura.pl

Polska Izba Książki

eBook został przygotowany na podstawie wydania papierowego z 2016 r., (wyd. I)

Warszawa 2016

ISBN 978-83-01-18571-8

Wydanie I

Wydawnictwo Naukowe PWN SA

02-460 Warszawa, ul. Gottlieba Daimlera 2

tel. 22 69 54 321, faks 22 69 54 288

infolinia 801 33 33 88

e-mail: pwn@pwn.com.pl

www.pwn.pl

Spis treści

Wstęp

Podziękowania

1. Konstrukcja książki

2. Testowanie w pigułce

Zadanie

3. Cykl życia oprogramowania

3.1. Pomysł (potrzeba)

3.2. Rozwój koncepcji

3.3. Planowanie

3.4. Analiza wymagań

3.5. Projektowanie

3.6. Rozwój aplikacji

3.7. Testowanie

3.8. Wdrożenie

3.9. Użycie i utrzymanie

3.10. Emerytura. Koniec życia

3.11. Inne fazy

4. Testowanie

4.1. Definicja testowania

Zadanie

4.2. Procesy testowania

4.2.1. Proces testowy wg BS7925-2

4.2.2. Proces testowy wg IEEE 829

4.2.3. Proces testowy wg ISO 29119

4.2.4. Proces testowy wg ISTQB

4.2.5. Podsumowanie

4.3. Błędy, defekty, awarie, incydenty, zdarzenia, bugi…

4.3.1. Uciekinierzy

4.3.2. Błędy popełniane przez testerów

4.3.3. Defekty powodują defekty

Zadanie

4.4. Jakość oprogramowania a użytkownik

4.5. Czym jest testowanie?

4.5.1. Proces oraz zapewnienie jakości

4.5.2. Weryfikować a walidować

4.5.3. Szkoła defektów kontra szkoła jakości

4.5.4. Testy automatyczne

Zadanie

4.6. Testowanie jest potrzebne

4.7. Testowanie jest nieskończone

Zadanie

4.8. O wyższości wczesnego testowania nad późnym

4.9. Ekonomia testowania

Zadanie

5. Dzielenie testowania

5.1. Wprowadzenie

Zadanie

5.2. Czarna skrzynka i biała skrzynka

5.2.1. Testy białej skrzynki

5.2.2. Testy czarnej skrzynki

Zadanie

5.3. Testowanie funkcjonalne i niefunkcjonalne

5.3.1. Testy funkcjonalne

5.3.2. Testy niefunkcjonalne

5.3.3. Charakterystyki oprogramowania wg ISO 9126/ISO 25010

5.3.4. Charakterystyki oprogramowania wg TheTest Eye

5.3.5. Charakterystyki oprogramowania wg Jamesa Bacha

Zadanie

5.4. Testy potwierdzające

5.4.1. Retesty

5.4.2. Testowanie regresywne

Zadanie

5.5. Testowanie statyczne i dynamiczne

5.5.1. Testowanie statyczne

5.5.2. Testowanie dynamiczne

5.6. Zestawienie testów

Zadanie

6. Zawód: tester

6.1. Wprowadzenie

6.2. Edukacja testerska

6.2.1. Edukacja szkolna

6.2.2. Edukacja internetowa

6.2.3. Edukacja przez praktykę

6.2.4. Podsumowanie

6.3. Certyfikacja testerska

6.4. Testowanie oprogramowania ma swoich wrogów

6.5. Cechy miękkie testera

6.6. Trudne aspekty pracy testera

6.7. Kto może testować produkt?

6.8. Umiejętności twarde testera

Zadanie

6.9. Posługiwanie się narzędziami i automatyzacja

6.10. Współpraca tester–programista

6.11. Rozwój testera w organizacji

6.12. Czego oczekuje się od testera na rynku pracy

6.13. Zawód z przyszłością

6.14. Zarobki testerów

6.15. Praca testera w innych publikacjach

6.16. Praca w charakterze testera

6.16.1. Modele współpracy

7. Praktyka testowania

7.1. Wprowadzenie

7.2. Podejścia do testowania

7.2.1. Strategie wynikające z podziałów w testowaniu

7.2.2. Strategia testowania oparta na modelu dostarczania

7.2.3. Podejście negatywne do testów, czyli atak na oprogramowanie

7.2.4. Podejście do testowania zależnie od dostępności specyfikacji

7.2.5. Testowanie oparte na ryzyku

7.3. Planowanie

7.4. Testowanie

7.4.1. Element

7.4.2. Formularze

7.4.3. Funkcja

7.4.4. Logika lub proces

Przykłady

Zadanie

7.5. Raportowanie

7.5.1. Subiektywna ocena jakości oprogramowania

7.5.2. Raport z testów

7.5.3. Raporty o defektach

7.6. Przykładowe projekty

Projekt 1 – strona internetowa

Projekt 2 – strona internetowa z projektem

Projekt 3 – aplikacja internetowa z procesem wspierającym wytwarzanie i utrzymanie oprogramowania

Projekt 4 – testy edukacyjnej aplikacji desktopowej

Projekt 5 – testy aplikacji mobilnej

Bibliografia

Przypisy

Okładka

Strona tytułowa

Strona redakcyjna

Spis treści

Wstęp

Podziękowania

1. Konstrukcja książki

Wstęp

Przekazuję w tej książce wiedzę, którą sam chciałbym dysponować, kiedy zaczynałem pracować w zawodzie. Część informacji w niej zawartych może się Czytelnikowi wydać znajoma, ponieważ jest to poprawiona, przeredagowana i uspójniona wiedza, jaką od 2005 roku publikuję w prasie branżowej, zamieszczam na blogach i przedstawiam podczas prezentacji i szkoleń. Skoro część informacji można znaleźć w sieci, po co kupować tę książkę? Przygotowałem ją jako kompilację podstawowych informacji dla tych, którzy szukają drogi na skróty, by zostać testerami, i tych, którzy już zrobili pierwszy krok w tym kierunku.

Wciąż wiele osób pyta, jak zostać testerem. Ta publikacja to moja odpowiedź podana w pigułce. W mojej opinii pokazuje ona najprostszą i najkrótszą drogę do zawodu.

Materiał zawarty w książce został „przećwiczony” na początkujących adeptach testowania i testerach o niewielkim doświadczeniu. Chciałem im serdecznie podziękować za recenzje i uwagi oraz za udział w powstawaniu tej publikacji.

Do każdego bardziej praktycznego tematu próbowałem dodać zadania. Są opisane skrótowo, a ich rozwiązanie wymaga dużej dozy samodzielności i samozaparcia, a także własnej inicjatywy. Pewną pomocą dla tych, którzy wolą pójść na skróty, będą zadania, aplikacje i specyfikacje przygotowane na potrzeby mistrzostwa polski w testowaniu oprogramowania TestingCup, dostępne pod adresem mrbuggy.pl. Jest tam wystarczająco dużo materiału dla osób, które chcą szukać defektów, uczyć się je raportować i podglądać pracę najlepszych.

Podziękowania

Inspiracji do powstania mojego portalu testerzy.pl oraz w konsekwencji tej książki dostarczyły setki testerskich blogerów i autorów książek dotyczących lub dotykających testowania. Na świecie są setki wartościowych testerów, którzy swoją wiedzą dzielą się każdego dnia. Publikują ciekawe pomysły, informują o nowościach i sami je wymyślają. Każdy z nich w jakimś sensie zmusił mnie do myślenia o testowaniu. Z częścią z nich się nie zgadzam i próbuję zbijać ich argumentację. Część z nich otwiera mi oczy albo zmusza mnie do nowego spojrzenia na projekty, w których brałem udział, bądź na strategię testową, którą obrałem. To im chcę szczególnie podziękować, bo mieli wpływ na to, jakim testerem jestem dziś.

Chciałem również podziękować swoim współpracownikom. Jedni z nich czytali i recenzowali fragmenty książki, inni mnie inspirowali i wspierali w trakcie pisania, a sporo naszych wspólnych doświadczeń zostało w bardziej lub mniej oczywisty sposób zaprezentowane w tej publikacji.

W dużej części procesu rozwoju w zawodzie testera i pisania tej pracy musiała biernie uczestniczyć moja rodzina. Wiem, że niekiedy poświęcałem za dużo czasu pracy, a za mało spędzałem go w domu. Zbyt często zdarzało mi się być w nim tylko ciałem i rozmyślać o pracy. Może uświadomiłem to sobie odrobinę za późno, ale cieszę się, że dziś udało mi się osiągnąć równowagę. Dziękuję moim najbliższym, że wytrzymali ten czas poszukiwania i odnajdowania. Bez Was ta książka nigdy by nie powstała.

1. Konstrukcja książki

Książkę podzieliłem na dwie części. W pierwszej opisuję zawód testera od strony teoretycznej i omawiam aspekty testowania, z którymi możesz się spotkać w pierwszych miesiącach pracy. W drugiej zajmuję się praktyką i podaję swego rodzaju skróty oraz gotowe rozwiązania dla testerów. Dodałem również kilka przykładów, które pomogą ci się odnaleźć w pierwszej firmie, w jakiej przyjdzie ci pracować. Są to przykłady wzięte z życia i dzięki temu może nawet bardziej przydatne.

Chcąc pomóc „wzrokowcom”, wszędzie tam, gdzie grafika pomaga zrozumieć tekst, starałem się ją umieścić. Zastosowałem również tabele dla zwiększenia czytelności zbiorów danych – nie po to, by je pochłaniać podczas lektury, a raczej by je analizować na konkretnych przykładach. Natomiast te fragmenty, które pomagają zrozumieć szerszy kontekst omawianego tematu, ale nie należą do głównego wątku rozważań (np. definicje czy dygresje), zostały ujęte w ramki.

Definicja lub dygresja

Treść