Sytuacja kobiet w IT w 2024 roku
27.07.20226 min
Bulldogjob

Bulldogjob

Tester oprogramowania i QA Engineer – pytania rekrutacyjne + odpowiedzi

Dowiedz się, jak przygotować się do rozmowy kwalifikacyjnej na Testera i inżyniera QA i poznaj przykładowe pytania rekrutacyjne!

Tester oprogramowania i QA Engineer – pytania rekrutacyjne + odpowiedzi

Kariera testera, czy to manualnego, czy automatyzującego, to dla wielu osób zatrudnionych poza IT drzwi do tej branży. Może się ona także okazać windą to stanowisk związanych już bezpośrednio z tworzeniem oprogramowania, ale też analityką i bardziej biznesowym podejściem do IT.

Nic więc dziwnego, że zainteresowanie testowaniem oprogramowania, zwłaszcza wśród zamierzających się przekwalifikować, jest duże. Dziś już 15% wszystkich specjalistów IT pracujących w Polsce zajmuje się testowaniem, ustępując wyłącznie programistom, a wyprzedzając między innymi DevOpsów, Administratorów czy Analityków IT. Po szczegóły dotyczące bieżących realiów Tersterów oprogramowania i QA Engineer zapraszamy do artykułu „Tester i QA Engineer – praca i zarobki w Polsce”.

Popularyzacja specjalizacji testerskich według Badania Społeczności IT

Scenariusz rozmowy

Przejdźmy jednak do konkretów, a zatem tego, jak w praktyce przebiega rekrutacja na stanowiska testerskie bądź też odpowiedzialne za jakość oprogramowania. Standardowa rozmowa kwalifikacyjna zazwyczaj dzieli się na stałe części, przy czym ich liczba może różnić się w zależności od specjalizacji. Na tle choćby stanowisk deweloperskich różnice w stosunku do rozmowy kwalifikacyjnej testera nasuwają się same – napotkamy tu zdecydowanie mniej pytań dotyczących programowania.

Można powiedzieć, że przecież znajomość języka programowania to bardzo ceniona umiejętność, jednak w przypadku testerów i inżynierów QA mowa raczej o sytuacji, w której jest to umiejętność mile widziana. Oczywiście i tu zachodzi pewne rozróżnienie i znacznie częściej o kompetencje w Pythonie czy Javie mogą zostać zapytani kandydaci na stanowisko testera automatyzującego.

Jak już wspomniano, rozmowę można ogólnie podzielić na dwie główne części. Pierwsza z nich skupia się na samym kandydacie, sprawdzane są jego cechy charakteru, umiejętności miękkie i to, czy w ogóle przystaje do organizacji, w której chce podjąć pracę. To tutaj można spodziewać się typowo menedżerskich pytań o poprzednie doświadczenia, ale też plany na przyszłość. Rzecz jasna warto się wcześniej zapoznać z profilem firmy, do której aplikujemy.

Rekruterzy są zgodni, że warto szczególnie zwrócić uwagę na pytania dotyczące umiejętności komunikacyjnych i współpracy – nie ma wątpliwości, że na stanowisku testerskim wysokie kompetencje w tym zakresie będą szczególnie wysoko cenione.

Przykładowe pytania

Drugi etap rozmowy ma już na celu sprawdzenie umiejętności twardych, związanych ściśle z wykonywanymi na stanowisku Testera lub QA Engineer. Znów należy tu podkreślić, że poszczególne pytania będą różnić się w zależności od specjalizacji – nieco inne kwestie będą poruszane w rozmowie z testerem manualnym, inne zaś z automatyzującym. 

Należy też zwrócić uwagę, że nowe specjalizacje rodzą się z dużą dynamiką i swoją własną dynamikę może mieć rozmowa np. z testerem ułatwień dostępu, który sprawdza, w jakim stopniu aplikacja spełnia wymagania osób niepełnosprawnych. Coraz większym zainteresowaniem cieszy się także zawód testera bezpieczeństwa. Wszystko to sprawia, że do kwestii przygotowania się na pytania trzeba podchodzić indywidualnie, z uwzględnieniem umiejętności pożądanych na konkretnym stanowisku i w konkretnej firmie. 

Z pewnością jednak można wskazać spory zasób wspólny pytań, których testerzy i inżynierowie QA mogą się spodziewać, niezależnie od tego, co dokładnie będą testować. To właśnie przykłady takich pytań prezentujemy poniżej.


Czym jest test jednostkowy?

Pytanie, które można potraktować jako „pewniak”, i z którym zapewne poradzi sobie każdy aspirujący tester. W ramach powtórki ustalmy jednak po raz kolejny, że test jednostkowy to taki test, który ma za zadanie sprawdzić poprawność ściśle wydzielonych, pojedynczych elementów (jednostek) programu, odpowiadające zazwyczaj konkretnemu blokowi kodu. Jeśli więc testujemy poprawność działania pojedynczych obiektów i metod, to przeprowadzamy test jednostkowy.


Na czym polegają testy eksploracyjne?

Test eksploracyjny to ważne zagadnienie w pracy zwłaszcza testerów manualnych. Można go opisać jako test, w którym scenariusz jest na bieżąco generowany przez testera już podczas procesu. A zatem w pierwszej kolejności tester podejmuje konkretne działania, a następnie na podstawie tejże „eksploracji” w poszukiwaniu błędów na bieżąco spisuje scenariusz, tak aby ewentualny błąd był łatwy do odtworzenia. Jako rodzaj testu eksploracyjnego można też traktować odstępstwo od ściśle ustalonego scenariusza testowego, w celu przetestowania dodatkowej funkcji lub ścieżki, jednak należy tu zachować szczególną skrupulatność.

Metody testowania dokonywane przez Analityków QA według Badania Społeczności IT


Jakie elementy powinien mieć plan testów?

Oczywiście to dość rozbudowana kwestia, tym niemniej najogólniej plan testów powinien mieć usystematyzowaną identyfikację, a także określony zakres, wskazanie na funkcje, jakie będą testowane, scenariusz testu uwzględniający określoną strategię i cel, informacje o wykorzystanych narzędziach i innych zasobach oraz oczekiwane rezultaty. W zależności od potrzeb plan można uzupełnić takimi elementami, jak dane o konkretnej specyfikacji środowiska i maszyny testowej, występującym ryzyku i nieprzewidzianych okolicznościach. 


Czym są testy funkcjonalne?

Najprościej rzecz ujmując, testy funkcjonalne poszukują błędów w funkcjach programu. Najłatwiej wytłumaczyć to przez przeciwieństwo, czyli testy niefunkcjonalne. Niefunkcjonalne testy skupiają się na takich cechach (a nie funkcjach właśnie) oprogramowania, jak optymalizacja, stabilność, ułatwienia dostępu, bezpieczeństwo. Testy funkcjonalne poszukują błędów w tym co program robi, a nie jaki jest.


Co to jest macierz śledzenia (wymagań)?

Macierz śledzenia to najczęściej tabela (choć może też przybierać inne formy), dzięki której możliwe jest porównanie spełnienia warunków dwóch innych dokumentów. Dzięki macierzy śledzenia możliwe jest więc określenie, w jakim stopniu stawiane wymagania zostały spełnione, co jest ważnym narzędziem zwłaszcza w pracy QA Engineera. 

Występuje wiele paradygmatów prowadzenia macierzy śledzenia, przy czym najbardziej oczywistym jest wprowadzenie poszczególnych warunków w kolejnych kolumnach tabeli, zaś w wierszach – kolejnych wersji oprogramowania. W ten sposób można w łatwy sposób uzyskać informacje, kiedy dane wymaganie (np. określona funkcja oprogramowania) zostało spełnione w produkowanym oprogramowaniu.

Przykładowa macierz śledzenia wymagań z domeny publicznej.


Podaj przykład narzędzia służącego do testowania wydajności oprogramowania

Jak widać, pytanie, które będzie dotyczyło testerów wykonujących przede wszystkim testy niefunkcjonalne, a zatem – gwoli przypomnienia – skupiające się na parametrach oprogramowania, a nie jego funkcjonalności. Bodaj najpopularniejszym frameworkiem skupiającym się na testowaniu wydajności i optymalizacji oprogramowania jest dziś Apache JMeter. Sprawdzimy zatem wydajność połączeń i zapytań z API JDBC, serwerami FTP, protokołem http czy poszczególnymi usługami webowymi.

Oczywiście pytanie o framework do testowania optymalizacji to przykład i wydajność można tu zastąpić jakimkolwiek innym parametrem, dlatego warto zorientować się przed rozmową, jakie narzędzia może wykorzystywać dana firma w związku ze swoją specyfiką. O innych frameworkach i oprogramowaniu wykorzystywanym przez testerów więcej pisaliśmy w artykule „Tester i QA – jak zacząć karierę?


Czym zajmuje się black box tester?

Jest to taki tester, który podczas pracy nie ma dostępu do kodu źródłowego programu, nie ma wiedzy na temat jego wewnętrznych mechanizmów. Oczekuje się więc, że będzie on produkował scenariusze podobne do faktycznych, użytkowych, a jego testy nie będą „zniekształcane” tym, że wie, jak wygląda kod. Przeciwieństwem jest tester white box, który ma dostęp do kodu źródłowego oprogramowania.


Na czym polega monkey testing?

Jest to scenariusz testowy zakładający dużą losowość wprowadzania danych. Jak wskazuje sama nazwa, tester ma się zachowywać, jak małpa posadzona przed komputerem, np. wprowadzać błędne typy danych do formularzy i w ten sposób ekstremalnie sprawdzać stabilność działania oprogramowania. Wadą jest jednak to, że błędy mogą się okazać trudne do odtworzenia. 

Wyjaśniając, czy jest  monkey testing, warto wspomnieć o groilla testing, czyli takich scenariuszach, gdzie wprowadzane są uciążliwie wciąż te same dane (nawet setki razy) i właśnie w ten sam sposób bada się stabilność i integralność programu. Oczywiście zarówno monkey testing, jak i gorilla testing to domena przede wszystkim testerów automatyzujących.

Zarobki Testerów i Analityków QA

Przydatne linki

Zamiast podsumowania, jak zwykle podrzucamy garść przydatnych linków, które mogą okazać się szczególnie wartościowe dla osób aspirujących do tego, by profesjonalnie testować oprogramowanie:

<p>Loading...</p>