Jeśli jesteś programistą automatyzacji testów lub rozważasz tę ścieżkę kariery, czy kiedykolwiek zastanawiałeś się, czy umiejętności testowania są niezbędne w Twojej pracy? Ten artykuł pomoże Ci znaleźć odpowiedź na to pytanie.
Oto, jak nauka „sposobu myślenia testera” pomogła mi stać się lepszym programistą automatyzacji.
Moja historia: równoległa praca jako programista automatyzacji i tester
Moja pierwsza praca po ukończeniu uniwersytetu polegała na pracy jako specjalista ds. testów w IBM. Byłem podekscytowany, głównie dlatego, że dołączyłem do wymarzonej firmy. Jednak gdzieś głęboko czułem, że czegoś mi brakuje. Wkrótce zdałem sobie sprawę, że wynikało to z faktu, iż w czasie studiów moją pasją zawsze było tworzenie kodu.
Dlatego, aby realizować swój cel związany z programowaniem, już w pierwszych dniach pracy porozmawiałem z liderem projektu o zaangażowaniu w tworzenie automatyzacji testów. Ku mojej radości od razu się zgodził! Dodał jednak, że nadal powinienem równolegle wykonywać obowiązki specjalisty ds. testów.
Układ wyglądał następująco: pracowałem jako specjalista ds. testów przy jednym zestawie komponentów, a jako programista automatyzacji przy innym, istotnym komponencie produktu.
Kilka dni później dokonałem zaskakującego odkrycia!
Odkryłem, że bycie testerem pomogło mi poprawić umiejętności programistyczne. Podczas tworzenia kodu zacząłem myśleć jak tester. Zacząłem myśleć o pokryciu testami, wielu ścieżkach testowych, aspektach użyteczności, czytelności i nie tylko!
Mój pierwszy mentor — ekspert w dziedzinie testów
W tamtym początkowym okresie miałem również okazję współpracować z ekspertem ds. testów nad artykułem technicznym dotyczącym testowania dostępności, który miał zostać przedstawiony na międzynarodowej konferencji technologicznej.
Podczas tworzenia artykułu, opartego na naszym doświadczeniu i wiedzy zdobytej w tym obszarze, znalazłem swojego pierwszego mentora w dziedzinie testowania.
Ponieważ dopiero zaczynałem pracę w obszarze testowania, miałem wiele pytań. Mój kolega i mentor pomagał mi, prowadząc mnie w najlepszy możliwy sposób. Pasjonował się testowaniem! Ta miłość do testowania była zaraźliwa — i mnie również się udzieliła!
Nawiązywanie kontaktów z miłośnikami testowania
Zgadnij, co wydarzyło się później — wzięliśmy udział w konferencji technologicznej, na której wybrano nasz artykuł!
Podczas konferencji technologicznej poznaliśmy pełną pasji społeczność miłośników testowania, podobnych do mojego mentora. Byłem pod wrażeniem szacunku, jakim ludzie darzyli testowanie, oraz tego, jak planowali rozwijać swoje kariery. Poznawaliśmy ludzi, wymienialiśmy się spostrzeżeniami, uczyliśmy się wskazówek i trików dotyczących testowania!
Have an account? Log In
Podsumowanie
Los sprawił, że w pierwszej pracy zająłem się testowaniem, choć moją pierwotną pasją było tworzenie automatyzacji.
Stopniowo odkrywałem, jak testowanie pomogło mi stać się lepszym programistą! Z czasem zauważyłem, że „testerski sposób myślenia” umożliwił mi tworzenie wysokiej jakości skryptów automatyzacji testów.
Miałem szczęście, że mogłem poznać tę perspektywę, pracując jednocześnie jako tester i programista automatyzacji testów.
Testuj swój kod: doskonal się jako programista
Podczas pracy jednocześnie jako tester i programista automatyzacji odkryłem, że programista, który rozwija swoje umiejętności testowania, ostatecznie uczy się „lepszego” tworzenia kodu.
W końcu im wcześniej błędy zostaną wykryte w kodzie, tym niższy jest ich koszt. Jeśli więc jako programista potrafisz dostrzec błąd, zanim przekażesz kod zespołowi testowemu, oszczędzi Ci to pracy.
Ponadto, gdy zaczynasz myśleć jak idealny tester, priorytetowo traktujesz perspektywę biznesowego wykorzystania produktu, co jest bardzo ważne. Zaczynasz myśleć „nieszablonowo”.
Na przykład:
Przed przekazaniem kodu zespołowi QA programiści powinni przeprowadzić dobrze zaplanowane testy jednostkowe. Dzięki temu unikają niepotrzebnych defektów, które mogłyby przedostać się do systemu na poziomie integracji lub całego systemu.
Podczas testów jednostkowych programiści testują poszczególne jednostki kodu źródłowego, aby sprawdzić, czy spełniają wymagania i działają zgodnie z założeniami.
Dodatkowo programista może zaangażować się w testy integracyjne.
Testy integracyjne to forma testowania, w której programiści testują powiązane systemy lub jednostki kodu, aby upewnić się, że różne elementy struktury dobrze współdziałają po zintegrowaniu.
Dlaczego programiści często pomijają umiejętności testowania?
Przyczyny mogą być następujące:
1. Przekonanie, że testowanie powinno być wykonywane wyłącznie przez testerów
Mogą oni uważać, że testowanie oprogramowania niewiele ma z nimi wspólnego lub że sami niewiele mają wspólnego z testowaniem oprogramowania.
2. Założenie, że powinni koncentrować się wyłącznie na udoskonalaniu struktury
Programistów, którzy skupiają się wyłącznie na udoskonalaniu struktury i dokumentacji zamiast na wykrywaniu błędów w oprogramowaniu, zwykle czeka później niemiła niespodzianka.
Jeśli „pozorna” wada zostanie przeoczona przez programistę, jej wykrycie przez testera wiąże się z czasem potrzebnym na ponowne opracowanie kodu w celu usunięcia wady. Nie jest to sytuacja preferowana.
Jak wiadomo – programista najlepiej zna kod stworzony przez siebie. Czy zatem nie byłoby najlepiej, gdyby to on znalazł wadę jako pierwszy, na wczesnym etapie? Ponadto dzięki temu testerzy będą mogli poświęcić czas i wysiłek na pracę nad błędami o wyższym priorytecie i krytycznym znaczeniu.
3. Nawyk odkładania rozwiązania problemu na później, gdy zostanie on zauważony po raz pierwszy
Programiści mogą zakładać, że późniejsze debugowanie jest bardziej efektywne. W rzeczywistości debugowanie jest łatwiejsze, gdy programista znajdzie wadę wcześniej.
Informacje dotyczące debugowania awarii oraz numer wiersza, który spowodował błąd, zostaną wyświetlone w nieudanym scenariuszu, gdy programista zauważy go po raz pierwszy.
Z drugiej strony, jeśli wada zostanie „przesunięta” na później, będzie to wymagało przeglądu wad, dogłębnego debugowania oraz czasu na ponowne opracowanie kodu.
Pięć wskazówek dotyczących rozwijania nastawienia na testowanie jako programista testów automatyzacyjnych
1. Zgłoś się na ochotnika do roli związanej z testowaniem
Dobrym pomysłem byłoby zgłoszenie się na ochotnika do roli testera, aby zdobyć praktyczne doświadczenie. Dzięki temu programiści mogą doskonalić swoje umiejętności testowania.
Co możesz zrobić, aby rozpocząć pracę w roli związanej z testowaniem?
Odpowiedź jest prosta: szukając takiej roli, możesz samodzielnie zdobywać wiedzę, aby zrozumieć, jak „myśli” skuteczny tester.
2. Samodzielnie zdobywaj wiedzę
Czytaj, dyskutuj, przeprowadzaj burze mózgów, zadawaj pytania!
Później w tym artykule wyjaśnię, jak możesz to zrobić.
3. Nawiązuj kontakty
Warsztaty i konferencje to świetne miejsca, aby znaleźć ekspertów w dziedzinie testowania. Możesz tam omówić swoje najważniejsze pomysły i obawy, a jestem pewien, że będziesz mieć szczęście i znajdziesz tam kogoś, kto będzie mógł Ci pomóc.
4. Znajdź mentora
Jak wspomniałem wcześniej, miałem szczęście znaleźć mentora, dzięki któremu pokochałem testowanie. Znalezienie mentora, który pasjonuje się testowaniem i będzie Cię wspierał, jest niezwykle wartościowe.
5. Zachowaj otwarty umysł i słuchaj opinii testerów automatyzacji
Nadejdą chwile, gdy testerzy uruchamiający Twój kod automatyzacji napotkają problemy i podzielą się swoimi obawami. Słuchaj ich z pozytywnym nastawieniem i zastosuj się do sugestii, jeśli uznasz je za słuszne.
Współpracujący z Tobą testerzy otworzą nowe możliwości w sposobie Twojego myślenia, a ostatecznie pomogą Ci udoskonalić sposób pisania kodu na potrzeby testów automatyzacyjnych.
Jak możesz samodzielnie zdobywać wiedzę na temat testowania?
More Articles
Czytaj blogi i artykuły naukowe
Czytaj dużo na temat testowania i wykorzystuj zdobytą wiedzę w praktyce. Mamy szczęście żyć w czasach, w których wszystkie informacje są dostępne w internecie.
Dzięki temu możesz czytać blogi, a nawet artykuły naukowe, aby znaleźć wartościowe treści do nauki. Możesz też dzielić się zdobytą wiedzą!
Bierz udział w seminariach i warsztatach oraz zdobywaj certyfikaty
Możesz uczestniczyć w seminariach, warsztatach i konferencjach poświęconych obszarowi testowania. To świetne miejsca do nauki, dzielenia się wiedzą i przeprowadzania burz mózgów. Możesz także poznać osoby, które pasjonują się testowaniem.
Dodatkowo możesz zdecydować się na zdobycie certyfikatów związanych z testowaniem, takich jak ISTQB, CSTM i inne. Dzięki temu poznasz metodyki, narzędzia, wskazówki i techniki testowania, aby lepiej zrozumieć cały świat testowania.
Podsumowanie
Nastawienie testera oraz znajomość metodyk, narzędzi, wskazówek i technik testowania są niezbędne, aby odnieść sukces jako programista testów automatyzacyjnych. Zrozumienie, dlaczego, kiedy i jak testować, jest korzystne dla każdego programisty.
Gdy zespół programistyczny skutecznie testuje swój kod przed przekazaniem go do testowania przez zespół QA, dynamika pracy zespołu ulega znacznej poprawie.
Ta zmiana przyniesie korzyści wszystkim. Programiści będą mogli wydawać wysokiej jakości kod, a testerzy skupią się na znajdowaniu krytycznych błędów, które programiści będą mogli później naprawić.
Rezultatem jest produkt wysokiej jakości dostarczony klientowi.
Wszystko to jest możliwe dzięki zdobywaniu większej wiedzy na temat testowania, nawet jeśli jesteś programistą. Jeśli jeszcze nie zacząłeś, nie martw się — nigdy nie jest za późno na naukę! Zacznij od odwiedzenia naszej biblioteki podcastów! Oto jeden z wybranych przez nas odcinków: POWSTANIE AUTONOMICZNEJ AUTOMATYZACJI I JEJ WYGLĄD (Z BERTOLDEM KOLICSEM Z MABL)
Powiązany artykuł: NAJLEPSZE PRAKTYKI AUTOMATYZACJI W TRANSFORMACJI CYFROWEJ




