Dziarski Dev

Wspomóż swój zespół QA

Twoim głównym zadaniem w projekcie jako programista jest dostarczanie nowych funkcjonalności zaplanowanych w sprincie. Czasami spłacisz dług technologiczny. Innym razem rozwiążesz buga.

A co z usprawnieniami? Dzisiaj o tym pogadamy, czyli o tym, jak możesz przyczynić się do wzrostu wydajności zespołu QA.

Zespół QA (Quality Assurance) to osoby odpowiedzialne za zapewnienie wysokiej jakości produktów lub usług poprzez testowanie, identyfikację błędów i poprawę procesów produkcyjnych. Mówiąc wprost, jest to zespół testerów.

Co jest problemem?

Każda czynność, którą musi manualnie wykonać tester, zabiera cenny czas. Czas, którego już nie odzyskamy.

A co jeśli testerzy się nie wyrabiają? Jaki jest wtedy efekt?

  • Rośnie kolejka zadań to testów – zwiększa się ryzyko niezakończenia planowanych zadań w sprincie.
  • Developerzy oczekują na sprawdzenie swoich zadań, a więc rośnie ryzyko konfliktów w czekających PR (przy założeniu, że feature branch musi być wcześniej przetestowany).
  • Rosnąca kolejka PR (to samo założenia co wyżej).
  • Wolniejszy increment produktu.
  • Zmniejszenie produktywności zespołu.
  • Testerom będzie wiecznie brakować czasu na spłatę ich długów technologicznych.

I można by tak wymieniać i wymieniać. Żeby zminimalizować te ryzyka, byłoby dobrze czas testerów odpowiednio spożytkować

Nie Czekaj Na Pozwolenie. Po Prostu To Zrób.
Podejmij kontrolowane ryzyko w projektach IT dla sukcesu i wzrostu. Odkryj, jak tajne inicjatywy jako programista mogą zwiększyć Twoje zaufanie w zespole i przynieść ci awans.

Artykuł, który czytasz, łączy się wprost z powyższym.

No więc jak możesz im pomóc?

Przejrzyj projektowy backlog

To, co możesz zrobić najszybciej to przejrzeć backlog w poszukiwaniu zadań, których realizacja pozwoli coś usprawnić w procesie testowania. Szukaj tych, których realizacją może zająć się programista (nie każdy tester potrafi programować) np. coś związanego ze skryptami lub zmianami w procesie CI/CD. Być może na którymś etapie projektu takie rzeczy zostały już zaproponowane.

Przygotuj listę i sprawdź z zespołem QA ich aktualność. Zamknij te, które okażą się zbędne. Te aktualne przegadaj ze swoim liderem i zaproponuj zwiększenie priorytetu. Przygotuj zawczasu argumenty, które ułatwią Ci przekonanie go do podjęcia działań.

Porozmawiaj z zespołem QA

Krokiem kolejnym powinna być konsultacja z zespołem QA właśnie. Ich wiedza i doświadczenie w projekcie są kluczowe. Zdają sobie sprawę, co ich boli w projektowej codzienności. Jest całkiem spora szansa na to, że mają sporo propozycji, ale z różnych powodów ich do tej pory nie komunikowali.

Portal z ofertami pracy No Fluff Jobs jest sponsorem tego mailingu. Wpadnij do nich, aby znaleźć swój przyszły wymarzony projekt.

I tu warto dobrze poprowadzić rozmowę. Musisz wiedzieć, że są rzeczy, o których nie wiemy, że nie wiemy. Dlatego musisz uruchomić ich wyobraźnię i podsunąć wstępne myśli.

Zadanie tych pytań może być w tym pomocne:

  • 🟢 "Gdybyście mogli usprawnić dowolną rzecz w waszej pracy od strony technicznej, bez zważania na budżet i czas, to co to by było?"
  • 🟢 "Jakie czynności powtarzacie przy testowaniu każdego zadania?"
  • 🟢 "Gdzie tracicie najwięcej czasu podczas testów?"
  • 🟢 "Jaką funkcjonalność najgorzej się testuje podczas testów regresyjnych?"
  • 🟢 "Co nie działa jak należy podczas wydawania nowych wersji?"
  • 🟢 "Czy w poprzednim projekcie było coś, co działało lepiej niż tutaj?"

Zidentyfikuj powtarzalne czynności

Coś, co jest powtarzane wielokrotnie, jest dobrym kandydatem to optymalizacji. Są procesy, które możesz mniej lub bardziej zautomatyzować. Jesteś programistą, robisz to codziennie, bo przecież rozwijasz projekt. Ile automatycznych działań się tam dzieje...

Teraz przenieś to na pole projektu i zespołu QA.

Odpowiedzi ze spotkania z testerami przekuj w zadania, poinformuj lidera projektu o inicjatywie. Nie kończ swoich działań na tym etapie. Obserwuj czy poprawki idą zgodnie z planem. W razie potrzeby interweniuj.

Zajmij się jednak tym, co ważne. Nie ma sensu automatyzować czegoś, co jest robione raz na jakiś czas, jest mało istotne, a dodanie automatyzacja zajmie kilka dni. Natomiast dla czynności wykonywanych rzadko, ale za to są krytyczne, a pomyłka nie wchodzi w grę, warto wprowadzić jakiś rodzaj automatyzacji.

💼
Portal z ofertami pracy No Fluff Jobs jest sponsorem tego mailingu. Wpadnij do nich, aby znaleźć swój przyszły wymarzony projekt.

Może czas wykorzystać wiedzę, którą Ci przekazuję w nowym projekcie? 😏

Proces testowania

Jeśli twój zespół dysponuje podsumowaniem/diagramem procesu testowania to świetnie. Warto się upewnić czy jest optymalny. Może warto coś w nim zmienić? Szczególnie zwróć uwagę na miejsca wymagające pracy developera lub na te w jakiś sposób od niego zależne. Możesz to wrzucić jako temat do dyskusji innym programistom. Dev meeting powinien się do tego idealnie nadać.

Dev Meetingi. Jak Je Prowadzić Lepiej?
Świetną sprawą jest raz na jakiś czas pogadać na tematy techniczne z całym zespołem developerskim. Temu służą dev meetingi.

Jakiś czas temu popełniłem artykuł o tym, w jaki sposób możesz ulepszyć zespołowe dev meetingi.

Jeśli takiego twardego procesu nie ma, to zaproponuj jego stworzenie. Pozwoli to wszystkim zobaczyć, jak realnie on wygląda. Czarno na białym. Mogą pojawić się sensownie pomysły na jakieś optymalizacje.

Przykładowe funkcjonalności ułatwiające testy

Nie każdy z przykładów będzie miał sens w twoim projekcie. Docelowa platforma dla projektu rządzi się swoimi prawami. To, co w mobilkach jest problemem, w przypadku weba może nie mieć miejsca (i odwrotnie).

🧨
Wiele z tych rzeczy nie powinno być dostępne produkcyjnie. Upewnij się, że dostęp do tych funkcjonalności jest wyłączony w wersji dostępnej publicznie lub jest ukryty w przemyślany sposób.

Powyższa informacja oznacza, że warto dysponować tzw. "dev options". W aplikacjach mobilnych taką opcję często można aktywować np. poprzez wprowadzenie konkretnych danych logowania.

Podgląd odpowiedzi API użytej w danej funkcjonalności.

Przy bardziej skomplikowanych projektach i funkcjonalnościach może być pomocne sprawdzenie w danej funkcjonalności bazowego modelu użytego z API. w trakcie działania aplikacji. Szczególnie wtedy, gdy skomplikowane obliczenia są wykonywane na froncie. Warto mieć możliwość sprawdzenia na żywym organizmie, jaka była "baza" wykorzystana do ich wykonania.

Testy zawsze na zielono!

Nadpisywanie danych użytkownika

Czasami stan aplikacji, dostępnych funkcjonalności czy ich działanie jest sterowane tym, co użytkownik ma ustawione w swoim profilu czy ustawieniach. W ramach testowania scenariuszy może się przydać możliwość nadpisania wartości konkretnych kluczy. Wiesz, takie ułatwienie.

Specjalny ekran z listą wszystkich kluczy byłyby świetny. Po wybraniu konkretnego niech pozwala na wprowadzenie oczekiwanej wartości. Nowa wartość zostanie użyta do nadpisania tej, która przyjdzie z API.

Szybkie wprowadzanie danych logowania

Kiedy aplikacja obsługuje wiele typów użytkowników, oznacza to sporo testowania. Ręczne wpisywanie danych logowania może być czasochłonne. Nawet gdy dysponujesz listą kont z konkretną specyfiką, to wprowadzenia ich zajmuje czas.

Po aktywacji opcji developerskich w aplikacji na ekranie logowania może pojawić się dodatkowy przycisk. Jego kliknięcie spowoduje pojawienie się ekranu z listą kont. Każdy element zawiera informacje o loginie, haśle, środowisku (np. preprod, prod) oraz krótki opis konta (kiedy ma pewne ważne ustawienia). Kliknięcie pozycji automatycznie uzupełnia pole loginu i hasła. Szybkie, łatwe i wygodne.

Zapis ruchu sieciowego do pliku czy wysyłanie na serwer.

Zapis tego, co wyszło i weszło do aplikacji, może być przydatne podczas analizy niektórych problemów.

Proces budowania nowej wersji testowej

Pewne ułatwienia można z łatwością wprowadzić już na etapie budowania wersji testowej. W używanym narzędziu do budowania można pozwolić m.in. na:

  • Wybór domyślnego środowiska, do którego będzie podłączona aplikacja.
  • Możliwość zmiany zawartości plików konfiguracyjnych (identyfikatory, adresy url itd.)
  • Uaktywnienie funkcjonalności eksperymentalnych.

Wprowadzanie usprawnień jest świetne!

To, co powtarzam często. Każdy twój objaw zespołowej aktywności kumuluje się w postaci lepszej widoczności w zespole. I nawet, jeśli nie widać tego od razu to z perspektywy czasu sporo zyskasz. To jest taka kula śniegowa. Zaczynasz od małej śnieżki, kończąc na wielgachnej kuli śniegu.

Odkładając jednak doczesne nagrody na bok, pomoc w ułatwieniu pracy zespołu zwróci Ci się w postaci wdzięczności osób, którym pomagasz. To jest niesamowita nagroda.

Tagi