4. O MNIE
2016
przebranżowienie
(studia podyplomowe z frontendu
180-h zawodowy kurs testerski)
2017 pierwsza pełnoetatowa praca w IT (front-end)
2018
pierwsza praca jako tester
początki automatyzacji w Pythonie
2020 procesy Quality Assurance
2022
certyfikat Scrum Developer Certified
procesy DevOps
2023 certyfikat ISTQB Foundation (w końcu 🤓)
Oprócz tego:
nieustannie się dokształcam (studia AI, certyfikaty DevOps)
dzielę się wiedzą (m.in. Tech Leaders)
5. Testowanie oprogramowania
Czym jest testowanie oprogramowania?
Jest to część procesu wytwarzania oprogramowania.
Praca testera (testowanie) polega na znalezieniu niezgodności
w wymaganiach, wykryciu potencjalnych luk oraz bugów (defektów).
Testowanie buduje zaufanie do tworzonego kodu
przetestowany kod = mniej potencjalnych problemów.
6. tester / QA / inżynier ds. jakości
ZAPEWNIANIE JAKOŚCI
TESTOWANIE
QA = Quality Assurance
zapewnianie jakości
testowanie = część procesu
zapewniania jakości
7. tester automatyzujący vs.
QA inżynier automatyzujący
tester automatyzujący
pisze testy automatyczne
charakter pracy: korekcyjny
QA automatyzujący
pisze testy automatyczne, ale
także automatyzuje całe
procesy
charakter pracy: prewencyjny
9. TESTOWANIE MANUALNE I AUTOMATYCZNE
Testowanie manualne (ręczne)
- testy wykonywane są ręcznie przez
wyznaczoną osobę (testera),
- testy manualne mogą być zawodne
(pierwiastek ludzki – np. po długim
czasie gdy jedna osoba ciągle
przeprowadza te same testy, czujność
takiej osoby spada ślepota na
defekty)
Testowanie automatyczne
- testy wykonują się automatycznie w
oparciu
o wcześniej stworzone skrypty
testowe
- ograniczona rola człowieka
i co za tym idzie niezawodność
(skrypty nie chorują i nie są
zmęczone )
10. TESTOWANIE MANUALNE I AUTOMATYCZNE
Testowanie manualne (ręczne) Testowanie automatyczne
11. CEL TESTÓW AUTOMATYCZNYCH?
- zwiększenie efektywności, dokładności i oszczędności czasu,
- minimalizacja interwencji ludzkiej (“słabego ogniwa”),
- szczególnie przydatne przy częstych, powtarzalnych
(i nudnych) testach regresji
* testy regresji sprawdzają, czy nowe zmiany nie wprowadziły błędów
do istniejących funkcjonalności
12. CO AUTOMATYZUJEMY?
- w praktyce zautomatyzować można prawie wszystko,
ale nie zawsze ma to sens (najlepiej to, co jest powtarzalne)
- testy jednostkowe (sprawdzające pojedyncze funkcje w kodzie)
- testy integracyjne (sprawdzające, jak różne części systemu
współpracują ze sobą)
- testy e2e (sprawdzające, czy cały system działa poprawnie “od
początku do końca”)
14. TESTY JEDNOSTKOWE
- są to zawsze testy automatyczne
- zwykle pisane przez programistów
- sprawdzają ”jednostki” kodu (np. funkcję, klasę),
- są “oderwane od rzeczywistości” czyli nie są
w stanie sprawdzić czy cała aplikacja działa
prawidłowo
- z założenia testów jednostkowych powinno być
najwięcej (patrz: piramida testów - najniższy poziom
testów)
15. TESTY INTERGRACYJNE
- testują interakcje między modułami / mikroserwisami lub
systemami
- sprawdzają funkcjonalność, niezawodność i wydajność
systemu po integracji poszczególnych modułów ze sobą
- przeprowadzane po testach jednostkowych
- mogą być pisane przez programistów lub testerów
automatyzujących
- mogą być przeprowadzane manualnie przez testerów
16. TESTY E2E
- najwyższy poziom testów
- przeprowadzane z punktu widzenia użytkownika
(pełne scenariusze zachowań, od początku do końca)
- mogą być manualne i/lub automatyczne
- przeprowadzane głównie przez testerów
- testów end-to-end powinno być najmniej (najwyższy
poziom testów na piramidzie)
17. CZYM JEST TESTOWANIE CROSS-BROWSER?
- proces testowania na różnych przeglądarkach internetowych
(Chrome, Safari, Firefox… + wersje mobilne)
- różne przeglądarki mogą interpretować kod strony w różny sposób,
co może prowadzić do różnic w wyświetlaniu lub działaniu
- celem jest dostarczenie spójności niezależnie od przeglądarki,
systemu operacyjnego lub urządzenia, z którego korzysta
użytkownik
18. CZYM JEST TESTOWANIE CROSS-BROWSER?
- manualnie – bardzo
czasochłonne
- automatycznie – w praktyce
można użyć tego samego
kodu dla wszystkich
wymaganych przeglądarek i
urządzeń (tablety, telefony)
19. CZYM JEST TESTOWANIE CROSS-BROWSER?
BrowserStack, Sauce Labs, LambdaTest – narzędzia, które
umożliwiają testowanie aplikacji w różnych środowiskach
przeglądarkowych bez potrzeby fizycznego posiadania
każdej z przeglądarek czy urządzeń
20. WADY I ZALETY TESTÓW AUTOMATYCZNYCH
WADY
- wysokie koszty początkowe,
- konieczność utrzymania
skryptów testowych
- możliwość przeoczenia
niektórych błędów, które
mogą być dostrzeżone tylko
przez ludzkie oko
ZALETY
- szybkość i dokładność
- wykonywanie testów poza
godzinami pracy
- jeden z kroków do
całkowitego
zautomatyzowania procesu
wytwarzania
oprogramowania
22. AUTOMATYZACJA W OPARCIU O KOD
wybrany język
programowania + wybrany
framework
np. Python + Selenium
Cypress + JavaScript
Playwright + TypeScript
czym jest framework?
szkielet do budowy aplikacji
lub platformy testującej
rodzaj oprogramowania
pomocniczego (biblioteki,
dodatki, szablony)
23. AUTOMATYZACJA W OPARCIU O KOD
wymagane:
- znajomość co najmniej jednego
języka programowania
- znajomość Gita (systemu
kontroli wersji)
- podstawowa wiedza na temat
konfiguracji środowisk
programistycznych (IDE)
czym jest IDE?
Integrated Development
Environment
zintegrowane środowisko
programistyczne
np. PyCharm,
Visual Studio Code
25. LOW-CODE, NO-CODE, CODELESS
Low-code to podejście, które
minimalizuje potrzebę pisania
kodu
Narzędzia low-code do
testowania pozwalają na
tworzenie testów z mniejszą
ilością kodowania, co obniża próg
wejścia.
Rozwiązania no-code umożliwiają
tworzenie testów bez pisania ani
jednej linii kodu, wykorzystując
interfejsy graficzne (GUI).
Minus tych narzędzi:
zwykle są płatne i to słono
26. AUTOMATYZACJA W OPARCIU O LOW-CODE
przykłady narzędzi:
Leapwork, Tricentis Tosca, Ghost Inspector,
TestSigma, Mabl
30. - u siebie na lokalnym komputerze
- w narzędziach CI/CD (GitLab, GitHub Actions),
uruchamiane manualnie lub automatycznie
- własne, dedykowane rozwiązania w chmurze
lub/i w kontenerach (Docker)
- na platformach low-code (z integracjami)
GDZIE PUSZCZAĆ TESTY AUTOMATYCZNE?
32. PRZYKŁAD DOBORU TESTÓW MANUALNYCH
I AUTOMATYCZNYCH
Produkt: edytor makiet 3D online
Charakterystyka: istnieje od 6 lat, dużo funkcji, niezmienna “baza” funkcji,
3 razy w tygodniu dodawane drobne poprawki, a także nowe funkcjonalności
Testy: oprócz testów nowych funkcjonalności, należy przed każdym wydaniem nowych
zmian, przetestować cały system pod kątem regresji
Nieefektywne podejście:
Testy manualne regresji: zajmują 3-4 godziny, wykonywane co dwa dni, żmudne i
męczące dla testera (po roku pracy wykonuje 156 praktycznie identycznych sesji)
Efektywne podejście: zautomatyzowanie powtarzalnych ścieżek, manualne testowanie
tylko nowych funkcjonalności
33. Produkt: innowacyjna platforma do inwestycji
Charakterystyka: istnieje od 3 miesięcy, co chwilę zmienia się koncept jej działania,
autorzy poszukują wciąż nowych rozwiązań
Testy: testy nowych funkcjonalności i testy całego systemu po każdej większej zmianie
koncepcji
Nieefektywne podejście:
Automatyzacja każdej nowej funkcjonalności – podejście kosztowne, a bez gwarancji,
że w przyszłości te funkcjonalności będą nadal częścią systemu
Efektywne podejście:
Testowanie manualne, zarówno przez zawodowych testerów, jak i np.
w ramach programu wczesnego dostępu – przez użytkowników
PRZYKŁAD DOBORU TESTÓW MANUALNYCH
I AUTOMATYCZNYCH
34. AUTOMATY JAKO PRZEPUSTKA DO
“PRAWDZIWEGO” PROGRAMOWANIA?
• Często kariera testera manualnego i potem automatyzacja testów są traktowane
jako przepustka do “prawdziwego” programowania
TAK
Automatyzacja testów pozwala na praktyczne
zastosowanie konceptów programistycznych
Testowanie automatyczne może pomóc
w zrozumieniu kodu produkcyjnego i procesów
ciągłej integracji (CI/CD)
NIE
U testera lub QA inżyniera najważniejszy jest mindset
i inne, całościowe spojrzenie na oprogramowanie
oraz procesy ich tworzenia
Pisanie skryptów automatycznych to tylko narzędzie,
by realizować zadania zapewniania jakości
35. BONUS DLA POCZĄTKUJĄCYCH
CHCĘ BYĆ TESTEREM - CO ROBIĆ, JAK ŻYĆ?
• Nie ma szans byś na początku wiedział/a wszystko potrzebny jest plan
• Lepiej skupić sie porządnie na kilku podstawowych tematach niż próbować na raz
zrozumieć tzw. “wszystko”
• Nie kłamiemy w CV
• Angielski (ewentualnie niemiecki)
• Ostrożnie dobieraj materiały i kursy – najlepiej z dobrymi opiniami lub
z polecenia
• Czas też kosztuje! Nie nabieraj się na darmowe, niskiej jakości webinary czy inne
“programy”, które mają Cię na końcu przekonać do drogiego zakupu
• Zaprzyjaźnij się z AI (np. ChatGPT jako asystent, mentor)
• Kiedy coś nie idzie do przodu – zastanów się czy to naprawdę jest dla Ciebie
36. BONUS DLA POCZĄTKUJĄCYCH
CHCĘ BYĆ TESTEREM AUTOMATYZUJĄCYM
• Próg wejścia jest dużo wyższy niż na stanowisko manualne
• Lepiej jest popracować kilka miesięcy jako “manual” i zobaczyć:
• jak od środka wygląda proces wytwarzania oprogramowania
• czym się kierować wybierając przypadki testowe do automatyzacji
• na własnej skórze poczuć “powtarzalność” lub nudę niektórych zadań (takie
zadania są dobrymi kandydatami do automatyzacji)
• Pamiętajcie, że automatyzacja testów to nie jedyna droga słusznego
rozwoju