Pytania rekrutacyjne junior tester

Jak zostać testerem

 3,632 

Pytania rekrutacyjne junior tester część druga to kolejna część różnych pytań które mogą być zadawane na rozmowach kwalifikacyjnych. Widząc bardzo duże zainteresowanie pytaniami dla osób przygotowujących się do rozmów rekrutacyjnych, przygotowaliśmy kolejną część różnych pytań. Odsyłamy też do zapoznania się z pierwszym artykułem pt. Pytania Rekrutacyjne Dla Junior Testera

UWAGA Pytania zawarte w niniejszym wpisie stanowią zbiór pytań i odpowiedzi dostępnych w różnych serwisach (w tym zagranicznych), są też pytaniami, które tworzyłem w ramach rekrutacji. Zapewne w trakcie pracy twórczej, stworzę jeszcze inne które będą znajdować się w niniejszym poście.


Opisz co oznaczając skróty BDD oraz TDD

TDD – Test-Driven Development jest sposobem czy podejściem do tworzenia oprogramowania w którym główną ideą jest stworzenie w pierwszej kolejności testów dla zaplanowanych funkcjonalności a następnie stworzenie kodu i implementacja tych funkcjonalności. 

BDD czyli Behavior-Driven Development to podejście będące rozwinięciem TDD. Są to testy tworzone z wykorzystaniem składni danego języka, które wyrażają jakieś zachowanie oraz oczekiwane określone rezultaty. Takie testy tworzymy w formie scenariuszy i korzystają ze słów kluczowych w postaci:

  • Given – warunek początkowy;
  • When – opis tego co będzie wykonywane;
  • Then – oczekiwany rezultat;

Zaletą tworzenia tego typu testów jest to, że są one zrozumiałe, również dla osób nietechnicznych. Tak sformułowane przypadki mogą stanowić dobrą podstawę zachowania aplikacji przy tworzeniu dokumentacji.

Scenariusz:
Given – użytkownik jest zalogowany na poziomie „klient”;
When – użytkownik wybiera dowolny przedmiot i klika dodaj do koszyka;
Then – przedmiot znajduje się w koszyku;

 

Co to są testy wydajnościowe

Są to testy przeprowadzane w celu oceny czy nasza aplikacja spełnia wymagania dokumentacji w zakresie możliwego jej obciążenia. Celem przeprowadzenia takich testów będzie weryfikacja czy nasza aplikacja działa dobrze (w określony sposób) pod danych obciążeniem. Przy weryfikacji wydajności aplikacji koniecznie trzeba zwrócić uwagę na czasy odpowiedzi aplikacji, czas reakcji, niezawodność, wykorzystanie zasobów czy jej skalowalność. Celem takich testów jest znalezienie tzw. „wąskich gardeł”. 

Przykład:

Została stworzona aplikacja webowa o określonym adresie. W specyfikacji określono, że ma ona odpowiadać w czasie do 5000 ms przy obciążeniu 100 użytkowników. 

Zadaniem testera jest sprawdzenie czy aplikacja spełnia wskazane wymagania, ale i nie tylko. Konieczne jest sprawdzenie wartości mniejszych, zgodnych ze specyfikacją, czy też większych. Warto też weryfikować wspomniane „wąskie gardła” i sprawdzać czasy odpowiedzi np. na 99 percentylu by mieć wiedzę o najsłabszych przypadkach.

 

Wymień typy testów wydajnościowych

Tutaj zapewne pojawi się wiele różnych metod nazewnictwa czy innych dodatkowych uwag. Przeprowadzając rozmowę rekrutacyjną chciałbym usłyszeć przynajmniej o takich typach jak:

Load testing – czyli sprawdzenie zdolności działania aplikacji przy oczekiwanym ruchu użytkowników. 
Stress testy – polegają na testowaniu aplikacji przy użyciu obciążenia znacznie większego aniżeli założono w dokumentacji. Celem tego jest weryfikacja jak aplikacja radzi sobie z dużym ruchem i przetwarzaniem danych. Tutaj możemy określić punkty krytyczne aplikacji. W jakim celu – skorzystamy tylko z dwóch słów – Black Friday.  
Endurance testing – mają na celu weryfikację i upewnienie się, że oprogramowanie może wytrzymać oczekiwane i określone obciążenie przez długi czas.
Spike testy – tym sposobem testujemy sobie reakcję aplikacji na nagłe duże skoki obciążenia generowane przez użytkowników. Przykład – jesteśmy firmą dostarczającą relacje z wydarzeń sportowych – finał Mistrzostw Świata i Polska zdobywa bramkę w finale. Wówczas możemy spodziewać się znacznego (większego niż normalnie ruchu). 
Scalability tests – czyli tzw. testy skalowalności. Testy sprawdzające zachowanie aplikacji na zwiększony ruch. Tutaj chcemy wydobyć informację na temat skuteczności aplikacji do zwiększania skali przy zwiększaniu się obciążenia. 

 

Czym są testy penetracyjne

Są to testy odpowiedzialne za ocenę bieżącego stanu bezpieczeństwa aplikacji, czy systemu. W szczególności obecności znanych podatności i odporności systemu na próby przełamania zabezpieczeń. Praca taka opierać się może nie tylko na wykonywaniu czynności polegających na atakowaniu systemu, ale również na analizie z perspektywy potencjalnego atakującego. 

 

Co to są beta testy

Są to testy przeprowadzane przez użytkownika – istniejącego lub potencjalnego – w zewnętrznym miejscu, które nie jest związane z wytwórcami oprogramowania. Celem takich testów jest podjęcie decyzji czy moduł czy  też cały system (aplikacja) zaspokaja potrzeby klienta. Takie testy mogą dać odpowiedź na pytanie czy stworzone oprogramowanie działa w sposób zgodny z tym jaki życzył sobie klient, ewentualnie czy zaplanowane biznesowo funkcjonalności, w rzeczywistości spełniają wymagania klienta. 

Jakie znasz metody HTTP

Tutaj dla osób chcących pracować przy aplikacjach webowych – polecamy artykuł z odpowiedziami na ten temat. Metody HTTP

Jakie znasz statusy odpowiedzi HTTP

Kolejne z pytań na które warto znać odpowiedź. Oczywiście nie musisz uczyć się na pamięć wszystkich, ale dobrze byś potrafił/a skojarzyć za co odpowiadają statusy typu 2XX, czy 3XX a także kolejne. Temu również poświęciliśmy cały artykuł – statusy odpowiedzi HTTP. 

Co to są testy eksploracyjne

Testy te są nazywane również testami ad-hoc. Jest to nieformalna technika projektowania testów podczas których tester projektuje je w trakcie ich wykonywania. W trakcie wykonywania tych testów, wykorzystuje zdobyte podczas testowania informacje, do tworzenia nowych i lepszych testów. Przyczyną takich testów może być brak dokumentacji, czy jej bardzo mała ilość. Kwestią która może działać zaś na korzyść testera jest fakt, że przy testach, tester nie skupia się na elementach wymienionych w dokumentacji, jednakże w trakcie takich testów może ominąć kwestie kluczowe, lub ważne dla systemu, skupiając się na czymś innym. 

Opisz cykl życia błędu w testowaniu oprogramowania

Takie pytanie padło we wcześniejszym artykule o tej tematyce. W międzyczasie stworzyliśmy cały artykuł o cyklu życia błędu i gdzie tematyka została bardziej rozwinięta wraz z grafiką. 

Co powinno zawierać zgłoszenie błędu

Kolejny temat, który jest prosty łatwy i przyjemny, jednakże warto przeczytać coś więcej na temat temat. Również i w tym temacie został stworzony osobny artykuł – jak poprawnie zgłaszać błędy – gdzie krok po kroku, wraz ze screenami z Jiry pokazujemy jak to zrobić. 

Pytania otwarte z cyklu „Jakby Pan/Pani przetestował … „

W trakcie rozmów zdarzają się pytania o przetestowanie jakiegoś przedmiotu czy prostej czynności w celu weryfikacji naszej kreatywności, umiejętności tworzenia przypadków testowych, proponowania rozwiązań. Te pytania pojawiają się często na grupach, w pytaniach z komentarzami stąd jako ostatnie są propozycją do przeczytania i przemyślenia, by na rozmowie nie zostać zaskoczonym. Pozostawiamy je w formie otwartej

  • przetestuj długopis
  • jak przetestowałbyś windę;
  • proszę o przetestowanie systemu logowania do dowolnych social mediów;
  • w jaki sposób przetestowałbyś zegarek;

Zdajemy sobie sprawę, że pytania są ogólne, dlatego też warto poprosić rekrutera, czy inną osobę zadającą takie pytanie by doprecyzował o rodzaj np. zegara etc. 


Pytania rekrutacyjne junior tester część druga jak wspomniano na wstępie, to odpowiedź na nasze wizyty w serwisie i fakt pojawiania się takich fraz z wyszukiwarce. Dodatkowo został stworzony dla Was dział jak zostać testerem – gdzie tworzymy różnego rodzaju artykuły powiadające – gdzie szukać wiedzy, na co warto zwrócić uwagę.