2. O mnie
• Senior Software Engineer in Test –
Ocado Technology
• KraQA - członek zespołu
• Blog –
https://www.awesome-testing.com
• Vistula – wykładowca
• s_radzyminski
4. Testowanie w Google - Automatyzacja
• „If testers were to join this club,
they would have to have good
computer science
fundamentals and some
coding prowess.”
5. Testowanie w Google - Automatyzacja
• „If testers were to join this club,
they would have to have good
computer science
fundamentals and some
coding prowess.”
• „First-class citizenship
demanded it.”
6. Testowanie w Google – Produktywność
• „Testing and quality are the job
of everyone involved in
development.”
7. Testowanie w Google – Produktywność
• „Testing and quality are the job
of everyone involved in
development.”
• „Developers own testing
and developers own quality.”
8. Testowanie w Google – Produktywność
• „Testing and quality are the job
of everyone involved in
development.”
• „Developers own testing
and developers own quality.”
• „The productivity team is
responsible for enabling
development to nail those two
things.”
9. Testowanie vs inżynieria produktywności
Cele testowania
• Produkt jak najwyższej
jakości dostarczony
klientom
10. Testowanie vs inżynieria produktywności
Cele testowania
• Produkt jak najwyższej
jakości dostarczony
klientom
Cele inżynierii produktywności
• Produkt jak najwyższej
jakości dostarczony
klientom
11. Testowanie vs inżynieria produktywności
Cele testowania
• Produkt jak najwyższej
jakości dostarczony
klientom
Cele inżynierii produktywności
• Produkt jak najwyższej
jakości dostarczony
klientom
• Produkt dostarczany
możliwie jak najszybciej
12. Testowanie vs inżynieria produktywności
Cele testowania
• Produkt jak najwyższej
jakości dostarczony
klientom
Cele inżynierii produktywności
• Produkt jak najwyższej
jakości dostarczony
klientom
• Produkt dostarczany
możliwie jak najszybciej
• Produkt działający
poprawnie przez cały
okres użytkowania (duży
indeks dostępności dążący
do ~100%)
14. Testowanie vs inżynieria produktywności
– ujęcie matematyczne
Testowanie
f(x)
x - jakość
Inżynieria produktywności
f(x, t, y)
x – jakość
t – czas wytwarzania
oprogramowania
y – dostępność strony
15. Testowanie vs inżynieria produktywności
• Inżynieria produktywności zmusza testerów do
myślenia systemowego gdzie jakość nie jest zawsze
najważniejsza.
16. Testowanie vs inżynieria produktywności
• Inżynieria produktywności zmusza testerów do
myślenia systemowego gdzie jakość nie jest zawsze
najważniejsza.
• Naszym celem jest max[f(x, t, y)]
17. Testowanie vs inżynieria produktywności
• Inżynieria produktywności zmusza testerów do
myślenia systemowego gdzie jakość nie jest zawsze
najważniejsza.
• Naszym celem jest max[f(x, t, y)]
• W sporze pomiędzy wyższością automatyzacji nad
testami manualnymi rację mogą mieć obie strony, bo
nikt nigdy nie analizuje w jakim systemie się
znajdujemy.
20. • Shift left – więcej testowania na początku
procesu
Sposoby na zwiększenie produktywności
21. • Shift left – więcej testowania na początku
procesu
• Shift right – więcej testów na produkcji
Sposoby na zwiększenie produktywności
22. • Shift left – więcej testowania na początku
procesu
• Shift right – więcej testów na produkcji
• TestOps – testowanie techniczne,
automatyzacja, testy eksploracyjne
Sposoby na zwiększenie produktywności
23. • Shift left – więcej testowania na początku
procesu
• Shift right – więcej testów na produkcji
• TestOps – testowanie techniczne,
automatyzacja, testy eksploracyjne
• Human factor – czynnik ludzki, sabotaż ☺
Sposoby na zwiększenie produktywności
30. Inne przykłady
• Pluginy do IDE (IntelliJ)
• Continuos Integration & Continuous Delivery
• Beacon – alarm gdy nie działa build ☺
– Aspekt społeczny – osoba, która zepsuła build
kupuje cukierki ☺
31. Inne przykłady
• Pluginy do IDE (IntelliJ)
• Continuos Integration & Continuous Delivery
• Beacon – alarm gdy nie działa build ☺
– Aspekt społeczny – osoba, która zepsuła build
kupuje cukierki ☺
• Lekkie Definition of Ready (uwaga: ciężkie DoR
może zwiększać czas dostarczania)
32. Strategia - kiedy skręcamy w lewo?
• Taski z niezmienialnym terminem ukończenia (np.
GDPR/RODO)
33. Strategia - kiedy skręcamy w lewo?
• Taski z niezmienialnym terminem ukończenia (np.
GDPR/RODO)
• Koszty automatyzacji przewyższają dochody
34. Strategia - kiedy skręcamy w lewo?
• Taski z niezmienialnym terminem ukończenia (np.
GDPR/RODO)
• Koszty automatyzacji przewyższają dochody
• Dojrzały produkt - budujemy jakość od samego
początku
35. Strategia - kiedy skręcamy w lewo?
• Taski z niezmienialnym terminem ukończenia (np.
GDPR/RODO)
• Koszty automatyzacji przewyższają dochody
• Dojrzały produkt - budujemy jakość od samego
początku
• Startupy - jeśli nawet testujemy to na niskim
poziomie
38. Uzasadnienie
• Zmniejszając czas pomiędzy kolejnym releasami zwiększamy ryzyko
błędów na produkcji
• Shift right testing ma za zadanie skutecznie monitorować
produkcję i alarmować o problemach
39. Uzasadnienie
• Zmniejszając czas pomiędzy kolejnym releasami zwiększamy ryzyko
błędów na produkcji
• Shift right testing ma za zadanie skutecznie monitorować
produkcję i alarmować o problemach
• Chcemy wiedzieć o tym, że w przypadku awarii wszyscy wiedzą co
należy zrobić w celu zmniejszenia impaktu awarii
40. Uzasadnienie
• Zmniejszając czas pomiędzy kolejnym releasami zwiększamy ryzyko
błędów na produkcji
• Shift right testing ma za zadanie skutecznie monitorować
produkcję i alarmować o problemach
• Chcemy wiedzieć o tym, że w przypadku awarii wszyscy wiedzą co
należy zrobić w celu zmniejszenia impaktu awarii
• Dlatego wykonujemy mnóstwo testów na produkcji (testy awarii,
testy przepięcia ruchu klientów, kanarki, testy przekierowań
klientów itp.)
41. Uzasadnienie
• Zmniejszając czas pomiędzy kolejnym releasami zwiększamy ryzyko
błędów na produkcji
• Shift right testing ma za zadanie skutecznie monitorować
produkcję i alarmować o problemach
• Chcemy wiedzieć o tym, że w przypadku awarii wszyscy wiedzą co
należy zrobić w celu zmniejszenia impaktu awarii
• Dlatego wykonujemy mnóstwo testów na produkcji (testy awarii,
testy przepięcia ruchu klientów, kanarki, testy przekierowań
klientów itp.)
• Umożliwiamy biznesowi weryfikację hipotez (A/B testy, feature
flagi)
49. Uzasadnienie
• Inżynieria produktywności wymusza szeroki zakres wiedzy i umiejętności
osób, które się nią zajmują
• TestOps to taki tester na kodach, który dobrze czuje się konfigurując
środowiska testowe i produkcyjne
50. Uzasadnienie
• Inżynieria produktywności wymusza szeroki zakres wiedzy i umiejętności
osób, które się nią zajmują
• TestOps to taki tester na kodach, który dobrze czuje się konfigurując
środowiska testowe i produkcyjne
• TestOps zwalnia programistów z pracy operacyjnej, przez co mogą się
oni skupić na szybszym dostarczaniu nowych funkcjonalności
51. Uzasadnienie
• Inżynieria produktywności wymusza szeroki zakres wiedzy i umiejętności
osób, które się nią zajmują
• TestOps to taki tester na kodach, który dobrze czuje się konfigurując
środowiska testowe i produkcyjne
• TestOps zwalnia programistów z pracy operacyjnej, przez co mogą się
oni skupić na szybszym dostarczaniu nowych funkcjonalności
• Ilość wymagań w stosunku do testerów w ofertach pracy jest już duża,
a prawdopodobnie będzie jeszcze większa w roku 2020
55. Redukowanie marnotrawstwa (lean waste)
• Nadprodukcja (overproduction)
• Praca w toku (work in progress – WiP)
• Niepotrzebny transport zadań (unnecessary motion)
56. Redukowanie marnotrawstwa (lean waste)
• Nadprodukcja (overproduction)
• Praca w toku (work in progress – WiP)
• Niepotrzebny transport zadań (unnecessary motion)
• Czas oczekiwania (waiting times)
57. Redukowanie marnotrawstwa (lean waste)
• Nadprodukcja (overproduction)
• Praca w toku (work in progress – WiP)
• Niepotrzebny transport zadań (unnecessary motion)
• Czas oczekiwania (waiting times)
• „Zwrotki” (rejects & defects)
58. Redukowanie marnotrawstwa (lean waste)
• Nadprodukcja (overproduction)
• Praca w toku (work in progress – WiP)
• Niepotrzebny transport zadań (unnecessary motion)
• Czas oczekiwania (waiting times)
• „Zwrotki” (rejects & defects)
• Niewłaściwy proces (inappropriate processing)
62. Złote rady ☺
"Insist on doing everything through
"channels." Never permit short-cuts
to be taken in order to expedite
decisions.”
63. Złote rady ☺
„Advocate "caution." Be "reasonable"
and urge your fellow-conferees to be
"reasonable" and avoid haste which
might result in embarrassments or
difficulties later on.”
64. Złote rady ☺
"In making work assignments, always
sign out the unimportant jobs first. See
that the important jobs are assigned to
inefficient workers of poor machines."
65. Złote rady ☺
"Hold conferences when there is
more critical work to be done."
66. Złote rady ☺
"Work slowly. Think out ways to
increase the number of movements
necessary on your job”
67. Złote rady ☺
"Never pass on your skill and experience
to a new or less skillful worker."
"When training new workers, give
incomplete or misleading instructions."
70. Bibliografia - książki
• How Google tests software
• A Practical Guide to Testing in DevOps
• The Lean Startup
• Out of the Crisis
• The Fifth Discipilne
• Thinking in Systems
• CIA Simple Sabotage Field Manual