Czy testerzy muszą pisać? CodePrzewodnik po umiejętnościach i karierze
⚡ Inteligentne podsumowanie
Testerzy nie zawsze muszą pisać kod, ale wiedza z zakresu kodowania decyduje o tym, jak daleko może zajść kariera testera. W przypadku stanowisk manualnych nie jest to konieczne, natomiast stanowiska związane z automatyzacją i SDET wymagają rzeczywistych umiejętności programistycznych.
Czy testerzy powinni się uczyć Code?
Bardzo częste pytanie dotyczące oprogramowania Testy Pytanie, na które kandydat ma pytanie, brzmi: czy testerzy muszą pisać kod? Zanim odpowiemy na to pytanie, konieczne jest dokładne zapoznanie się z różnymi rolami testerów oprogramowania.
Zapewnienie jakości oprogramowania zazwyczaj dzieli się na dwie kategorie:
- Analityk Jakości: Analityk Jakości weryfikuje funkcjonalność i kompletność testu. Analityk Jakości weryfikuje oprogramowanie dopiero po fazie rozwoju. Rola ta nie jest tak techniczna jak rola programisty i może nie wymagać kodowania.
- SDET (Inżynier ds. rozwoju oprogramowania w dziale testów): Z kolei SDET to osoba, która rozumie wewnętrzne mechanizmy produktu. SDET-owie rozumieją koncepcje baz danych i języki programowania, a także uczestniczą w projektowaniu produktu, projektowaniu danych i interfejsów użytkownika. SDET-owie pracują w fazie rozwoju i wymagają znajomości kodowania. Rola SDET-ów jest zatem bardziej wymagająca, ponieważ łączy pracę programisty z pracą testera. Testerzy automatyzujący (korzystający z narzędzi takich jak QTP oraz Selenium) można również klasyfikować jako SDET.
Poniższy diagram zestawia te dwa tracks, pokazujące gdzie każdy z nich znajduje się w odniesieniu do fazy rozwoju.
Zatem, biorąc pod uwagę rolę testera, można określić, czy wymagana jest znajomość kodowania. Odpowiedzmy na kilka dodatkowych pytań z tym związanych.
Cechy dobrego testera
Metodologia testowania oprogramowania różni się w zależności od potrzeb i specyfikacji produktu. Dobry tester oprogramowania (QA) odgrywa ważną rolę w realizacji procesu testowania, niezależnie od tego, czy jest to tester, czy tester oprogramowania. rodzaj testowania wymaga projekt.
Cechy dobrych testerów to:
- Dobra znajomość domeny
- Dobre logiczne myślenie
- Dobra znajomość umiejętności programowania
Wiedza dziedzinowa i logiczne myślenie są niezbędne dla każdego testera. Umiejętności programistyczne różnią się jednak znacznie w zależności od stanowiska, co zostanie omówione w kolejnej sekcji.
Jak dużej wiedzy z zakresu kodowania wymaga tester?
Pisanie kodu i jego debugowanie to zadanie programisty. Nasuwa się więc pytanie: po co w ogóle testerom znajomość kodowania?
Przyjrzyjmy się niektórym powodom, dla których znajomość kodowania staje się niezbędna dla testerów. Poniższa ilustracja podsumowuje, gdzie ta wiedza jest faktycznie stosowana.
Testowanie oprogramowania zasadniczo obejmuje dwa podejścia: Testowanie ręczne oraz Testowanie automatyzacjiNa poziomie zaawansowanym testowanie można podzielić na testy białej, czarnej i szarej skrzynki. Różne techniki testowania wymagają od testerów różnych umiejętności.
- Podczas występu Testowanie czarnej skrzynkiTester nie musi znać kodowania. Tester po prostu testuje oprogramowanie, wprowadzając dane i sprawdzając wyniki.
- Testowanie białoskrzynkowe, czyli testowanie sterowane kodem, wymaga znajomości kodu. Znajomość pojęć programistycznych, takich jak C, C#, C++, Koncepcje RDBMS może być pomocna.
- Testowanie szarej skrzynki znajduje się pomiędzy dwoma sytuacjami: tester ma częściową wiedzę o wewnętrznej strukturze, więc czytanie kodu jest przydatne, nawet jeśli jego pisanie nie zawsze jest wymagane.
- Testerzy potrzebują dobrej znajomości kodowania, gdy przechodzą do testów automatycznych lub testów białej skrzynki. Wynika to z faktu, że testy automatyczne obejmują pokrycie instrukcji, pokrycie kodu i… złożoność cyklomatyczna, a wszystkie te koncepcje wymagają dobrej znajomości programowania i baz danych.
- SQL (Structured Query Language) — czasami testowanie wymaga weryfikacji bazy danych. Dlatego testerzy muszą znać podstawowe polecenia SQL, takie jak SELECT, CREATE i UPDATE.
- Wstrzyknięcie SQL — SQL injection to jedna z technik hakowania baz danych poprzez wstawianie niechcianych poleceń. Dobra znajomość JAVASCRIPT oraz SQL Polecenia te okazują się przydatne w zapobieganiu tego typu zagrożeniom bezpieczeństwa oprogramowania.
- Zwinne testowanie — w testowaniu zwinnym cały zespół odpowiada za jakość oprogramowania. W trakcie całego procesu zwinnego tester współpracuje z jednym lub kilkoma programistami, aby pisać testy. Zatem, aby stworzyć test zautomatyzowany, testerzy muszą znać kod.
Ważne wskazówki dla analityka ds. zapewnienia jakości oprogramowania
- Znajomość testów manualnych i języków skryptowych, takich jak JAVASCRIPT zwiększy Twoje umiejętności testowania.
- Jako tester powinieneś zdobyć podstawową wiedzę na temat języków programowania, takich jak: Java oraz VBScriptNie jest to obowiązkowe, ale bardzo cenne. Znajomość koncepcji SQL i DBMS jest również dobrą praktyką.
- Naucz się czytać stos traci dziennik kompilacji. Czytanie kodu jest na niższym poziomie niż jego pisanie, a już samo w sobie jest walizka testowa raporty są o wiele bardziej precyzyjne.
Oprócz tego istnieje kilka ogólnych umiejętności, które przydadzą się każdemu analitykowi ds. zapewnienia jakości oprogramowania:
- Umiejętność komunikacji
- Analityczne nastawienie
- Uzdolnienie
Znajomość kodowania w testowaniu oprogramowania pomaga analitykowi lub testerowi QA w całej karierze. W następnej sekcji opisano mapowanie wymagań dla poszczególnych ról.
Testowanie ról wymagających kodowania w porównaniu z rolami, które tego nie wymagają
Na pytanie „Czy testerzy muszą kodować?” nie ma jednej odpowiedzi, ponieważ „tester” to nie jest jedno stanowisko. Poniższa tabela przedstawia typowe role testerów w odniesieniu do poziomu programowania, jakiego realistycznie wymaga każda z nich.
| Rola testowania | Typowa praca | Wymagany poziom kodowania |
|---|---|---|
| Tester ręczny / funkcjonalny | Projektuje i wykonuje przypadki testowe, zgłasza defekty | żaden |
| Badawczy / tester użyteczności | Nieskryptowane śledztwo, opinia użytkownika | żaden |
| Tester domeny/biznesu | Sprawdza zgodność reguł biznesowych ze specyfikacjami | żaden |
| Tester baz danych | Weryfikuje przechowywane dane, połączenia i reguły integralności | Tylko SQL |
| Tester API | Tworzy potwierdzenia żądań i odpowiedzi w formacie JSON lub XML | Basic |
| Tester automatyzacji | Pisze i utrzymuje skrypty w Selenium, Dramatopisarz, lub Cypress | Średniozaawansowany |
| Tester wydajności | Skrypty ładują scenariusze, korelują wartości dynamiczne | Średniozaawansowany |
| SDET | Buduje struktury, zestawy testowe i potoki CI | Poziom programisty |
Potraktuj tabelę jako drabinę kariery, a nie ścianę. Większość testerów zaczyna od rzędu, który nie wymaga kodowania, a następnie przesuwa się w dół, w miarę jak rośnie ich pewność siebie w programowaniu. Nic nie stoi na przeszkodzie, aby dobry tester manualny pozostał w górnych rzędach przez całą karierę, ale niższe rzędy to zazwyczaj miejsca, w których znajdują się budżety na automatyzację i stanowiska kierownicze.
Jakich języków programowania powinien uczyć się tester?
Testerzy nie potrzebują każdego języka. Zazwyczaj wystarczą dwa: jeden język ogólnego przeznaczenia do automatyzacji i SQL do weryfikacji danych. Poniższe porównanie pokazuje, gdzie każda opcja się opłaca.
| Wybierz język | Gdzie pomaga testerowi | Dlaczego to wybrać |
|---|---|---|
| Python | Selenium i skrypty Playwrighta, pakiety PyTest, kontrole danych | Najprostsza składnia, najszybsza droga do pierwszego działającego testu |
| Java | Selenium w TestNG or JUnit, Appium, struktury korporacyjne | Najczęściej żądane w dużych organizacjach |
| JavaSkrypt / TypeScript | Cypress, Dramaturg, testowanie front-endu i komponentów | Zgadza się z językiem, którego używa już testowana aplikacja |
| SQL | Weryfikacja zaplecza, konfiguracja i demontaż danych testowych | Przydatne nawet w rolach, które nigdy nie automatyzują przeglądarki |
| Skrypty Shell | Analiza dziennika, konfiguracja środowiska, kroki zadania CI | Mały wysiłek, natychmiastowe korzyści z dnia na dzień |
Wybierz język, którego Twój zespół programistów już używa, gdziekolwiek to możliwe. Współdzielenie języka oznacza współdzielony przegląd kodu, wspólne biblioteki i programistów, którzy mogą pomóc, gdy test nie działa. Tester biegle władający jednym językiem i swobodnie posługujący się SQL-em poradzi sobie z przeważającą większością zadań automatyzacyjnych.
Jak zacząć się uczyć Code jako tester
Nauka kodowania w połączeniu z pełnym obciążeniem testowym to kwestia kolejności, a nie talentu. Poniższe kroki prowadzą od zerowego programowania do utrzymywanego pakietu automatyzacji, bez rezygnowania z codziennego wykonywania testów.
Krok 1) Naucz się podstaw języka. Zmienne, warunki, pętle, funkcje i kolekcje wystarczą do odczytania i napisania skryptu testowego. Teoria obiektowa może poczekać.
Krok 2) Dodaj SQL na wczesnym etapie. Kilka instrukcji SELECT z klauzulami łączenia i WHERE pozwala sprawdzić, co aplikacja faktycznie zapisała, co natychmiast zwiększa dokładność raportów o błędach.
Krok 3) Zautomatyzuj jedno nudne zadanie. Konwertuj pojedynczy powtarzalny regresja Sprawdź skrypt. Jeden działający test to więcej niż miesiąc samouczków.
Krok 4) Poznaj strukturę testów, nie tylko narzędzie. Twierdzenia, ustalenia, konfiguracja i demontaż oraz raportowanie są ważniejsze niż klikanie w rejestrator. To właśnie tutaj skrypty stają się pakietem.
Krok 5) Użyj kontroli wersji. Zatwierdź kod testowy w Gicie tak, jak robią to programiści. RevPrzeglądanie różnic to także sposób, w jaki testerzy uczą się czytać kod produkcyjny.
Krok 6) Podłącz zestaw do rurociągu. Testy uruchamiane automatycznie przy każdej kompilacji przynoszą korzyści; testy uruchamiane tylko na laptopie nie. Ten krok dostosowuje testowanie do szerszego cykl życia testowania oprogramowania.
Poczekaj od trzech do sześciu miesięcy systematycznej praktyki, zanim automatyzacja stanie się komfortowa. Postęp jest celowo stopniowy, aby każdy krok przynosił użyteczne rezultaty przed rozpoczęciem kolejnego.


