Pytania rekrutacyjne tester automatyzujący – część I
Tym wpisem chciałbym rozpocząć całą serię, która będzie zawierała pytania zadawane podczas rekrutacji na testera automatyzującego. W kolejnych wpisach pojawią się również pytania dla testerów manualnych
.
Założenia
Od czasu do czasu biorę udział w różnych procesach rekrutacyjnych, aby sprawdzić stan swojej wiedzy i zweryfikować czy nie wypadłem z obiegu.
Ostatnio miałem okazję aplikować na stanowisko testera automatyzującego. Na wyżej wymienionym stanowisku wymagana była znajomość języka programowania Java oraz biblioteki Selenium. Firma oczekiwała od kandydata pięciu lat doświadczenia komercyjnego. W tym wpisie omówię pierwsze cztery pytania jako otrzymałem w sekcji dotyczącej programowania.
Przeciążanie metod
Pierwsze pytanie: Czy wewnątrz tej samej klasy możemy posiadać dwie metody o tej samej nazwie?
Jeżeli przeprowadzimy prosty test w IDE to zauważymy, że posiadanie dwóch takich samych metod wewnątrz jednej klasy powoduje błąd:
Warto jednak pamiętać, że możemy zastosować przeciążanie metod. Czyli posiadać wewnątrz klasy metody o tej samej nazwie, ale z innymi parametrami. Wtedy Nasz kod będzie poprawny i nie pojawi się błąd:
Podsumowując, w tej samej klasie możemy posiadać dwie lub kilka metod o tej samej nazwie, jednak parametry tych metod muszą być różne. Jest to nazywane przeciążaniem metod („metod overloading”).
Obsługiwanie wyjątków za pomocą try/catch
Drugie pytanie: Jak obsłużyć wyjątek za pomocą try/catch ?
Aby obsłużyć wyjątek możemy skorzystać z bloków try i catch. Wewnątrz bloku try definiujemy kod, który chcemy wykonać i który może wyrzucić wyjątek.
Blok catch rozpoczyna się nawiasem wewnątrz którego przekazujemy wyjątek konkretnego typu który może zostać wyrzucony wewnątrz bloku try. Następnie wewnątrz bloku catch wprowadzamy kod, który ma zostać wykonany, gdy wyjątek zostanie wyrzucony. Przykład try/catch:
Blok finally
Pytanie trzecie: Czy zna Pan blok kodu, który wykona się zawsze niezależnie od tego czy wyjątek zostanie wyrzucony czy nie?
W tym pytaniu chodzi oczywiście o blok finally. Jest to opcjonalny blok kodu, który może zostać użyty podczas obsługiwania wyjątku przy pomocy try/catch. Kod zawarty w bloku finally wykona się zawsze. W przypadku gdy kod zdefiniowany w bloku try zadziała poprawnie oraz gdy zostanie wyrzucony wyjątek.
Nadpisywanie metod
Pytanie czwarte: Co to jest „method overriding”?
Method overriding jest to nadpisywanie działania metody klasy bazowej w klasie potomnej. Aby nadpisać działanie metody należy w klasie potomnej zdefiniować metodę o tej samej nazwie,parametrach i zwracanym typie co w klasie rodzica.
W kodzie można oznaczyć taką metodę adnotacją @Override, ale nie jest to wymagane.
Metoda w klasie bazowej:
Metoda w klasie potomnej:
Podsumowanie
W tym wpisie przedstawiłem 4 pytania, które zostały zadane podczas rekrutacji na stanowisko seniorskie, jednak mogą być one również zadane podczas rekrutacji na stanowiska z mniejszym doświadczeniem komercyjnym. Sprawdzają one znajomość języka programowania Java na podstawowym poziomie. W przypadku pytań i wątpliwości zapraszam do kontaktu.
Przydatny artykuł. Pozdrawiam.