Dyskusja zaczęła się od przedstawienia trzech osób pełniących role: tester techniczny, programista testów i automatyk testów. Na początek padło pytanie, jak inne osoby określają zakres odpowidzialności tych osób, a następnie oni sami wyjaśnili, czym się zajmują. Oczywiście pojawiły się rozbieżności i oczywiście nie udało się jednoznacznie zdefiniować odpowiedzialności.
Najważniejsze wnioski ze spotkania:
1. Nieformalne definicje ról.
- Automatyk testów to osoba pisząca skrypty automatyzujące weryfikację jakości oprogramowania (głównie regresja).
- Programista testów (developer in test) to osoba tworząca i utrzymująca framework automatyzacji; często jest to kolejny krok w rozwoju automatyka.
- Tester techniczny to osoba, która weryfikuje jakość oprogramowania, bazując na rozumieniu technikaliów (jak kod, protokoły komunikacyjne, API, itd.); często wspiera również testy xunitowe.
2. Nie uczmy się narzędzi automatyzacji, uczmy się języków automatyzacji!
3. Python jest językiem łatwego startu w automatach i warto od niego zacząć. Java jest trudna, ale daje większe możliwości dla zaawansowanych ekspertów.
4. Największą wartością dla pracodawców są testerzy z wiedzą techniczną i domenową, a to dlatego, ponieważ:
- nie kodują, ale potrafią czytać kod
- rozumieją nie tylko programistę, ale i biznes
- nie projektują komunikacji, ale potrafią zdekodować komunikaty
- posługują się językiem zrozumiałym dla klienta
- rozumieją interfejsy inne niż GUI
- wiedzą i rozumieją, że klienci pracują z okienkami
- debugger, konsola i log są naturalnym środowiskiem pracy
- cechują się empatią i nie mówią negatywnie o użytkownikach.
Jeśli nie zgadzacie się z tymi wnioskami, zapraszamy do dyskusji.