29 Selen – najczęściej zadawane pytania podczas wywiadów i odpowiedzi

Photo of author

By maciekx

Przed udostępnieniem finalnej wersji oprogramowania użytkownikom, aplikacje przechodzą szereg etapów rozwojowych.

Testowanie stanowi kluczowy element Cyklu Życia Oprogramowania (SDLC), ponieważ umożliwia wychwycenie błędów i upewnienie się, że aplikacja funkcjonuje zgodnie z założeniami.

W przeszłości, testerzy oprogramowania bazowali na ręcznych metodach testowania. Jednakże, testowanie manualne jest czasochłonne i wiąże się z pewnymi trudnościami. Narzędzie Selenium zostało stworzone, aby zautomatyzować proces testowania oprogramowania.

Obecnie Selenium jest liderem na rynku, a większość specjalistów od testowania oprogramowania z niego korzysta. Jeśli Twoim celem jest praca jako tester oprogramowania, solidne przygotowanie do pytań rekrutacyjnych związanych z Selenium, da Ci przewagę nad innymi kandydatami.

Poniżej znajdziesz zestaw pytań i odpowiedzi, które najprawdopodobniej pojawią się podczas rozmowy kwalifikacyjnej dotyczącej Selenium:

Czym jest testowanie zautomatyzowane?

Testowanie zautomatyzowane to proces, w którym tworzenie i wykonywanie testów oprogramowania odbywa się za pomocą specjalnych skryptów testowych, bez konieczności ingerencji człowieka. Innymi słowy, testy są uruchamiane automatycznie, z wykorzystaniem odpowiedniego oprogramowania.

Jakie korzyści płyną z testowania automatycznego?

  • Oszczędność czasu i środków finansowych. Tradycyjne testowanie oprogramowania może generować wysokie koszty, związane z wynagrodzeniem dla testerów. Testy zautomatyzowane w dłuższej perspektywie mogą być znacznie bardziej opłacalne.
  • Możliwość wielokrotnego wykorzystania kodu testów. Skrypty testowe tworzy się raz, a następnie można je uruchamiać wielokrotnie.
  • Redukcja błędów ludzkich i zwiększenie precyzji. Automatyzacja testów minimalizuje ryzyko pomyłek.
  • Idealne rozwiązanie dla rozbudowanych aplikacji. Testowanie małej aplikacji można przeprowadzić manualnie, ale w przypadku większych projektów, zautomatyzowany zestaw testów jest niezbędny.

Co to jest Selenium?

Selenium to darmowy, otwarty zestaw narzędzi do automatyzacji testów interfejsu użytkownika aplikacji internetowych. Został stworzony przez Jasona Hugginsa w 2004 roku. Dzięki aktywnej społeczności, Selenium stał się jednym z najpopularniejszych rozwiązań do automatyzacji testów. Selenium Suite działa w różnych przeglądarkach i na wielu platformach.

Jakie są różne elementy pakietu Selenium?

Selenium to nie tylko jedno narzędzie, ale zbiór kilku elementów. Oto one:

  • Selenium IDE (Zintegrowane Środowisko Programistyczne)
  • Selenium WebDriver
  • Selenium RC (Remote Control)
  • Selenium Grid

Jakie języki programowania obsługuje Selenium?

  • Python
  • Java
  • C#
  • JavaScript
  • Ruby
  • PHP
  • Perl

Jakie typy testów wspiera Selenium?

Selenium w głównej mierze koncentruje się na testach interfejsu użytkownika (UI) aplikacji webowych. W ramach tych testów możemy wykonywać m.in.:

  • Testy funkcjonalne
  • Testy regresji
  • Testy akceptacyjne

Czym jest Selenium WebDriver?

Selenium WebDriver to narzędzie umożliwiające interakcję z przeglądarkami internetowymi. Działa w oparciu o natywne wsparcie dla każdej przeglądarki, co pozwala na automatyzację wielu czynności.

Czym jest Selenium IDE?

Selenium IDE to wtyczka do przeglądarki Firefox, która pełni funkcję narzędzia do nagrywania i odtwarzania akcji w przeglądarce. Wtyczka ta powstała jako ułatwienie procesu tworzenia skryptów automatyzujących testy.

Co to jest Selenium Grid?

Selenium Grid pozwala na rozproszenie wykonywania testów na różne środowiska i platformy, co pozwala na równoległe wykonywanie testów.

Co to jest Selenium RC (Remote Control)?

Selenium RC umożliwia tworzenie skryptów testowych w preferowanym języku programowania oraz ich uruchamianie w szerokiej gamie przeglądarek.

Co to znaczy Selenese?

Selenium IDE używa języka Selenese do pisania poleceń. Te polecenia instruują Selenium, jakie operacje należy wykonać.

Jakie są rodzaje poleceń w języku Selenese?

  • Akcje. Są to polecenia, które modyfikują stan aplikacji. Na przykład „wpisz w pole tekstowe” lub „kliknij w link”.
  • Akcesory. Te polecenia pozwalają na odczytanie stanu aplikacji i zapisanie wyników w zmiennych.
  • Asercje. Polecenia te umożliwiają weryfikację stanu aplikacji przez testera.

W jaki sposób można zlokalizować elementy na stronie w Selenium?

  • ID
  • Nazwa klasy
  • Nazwa
  • Nazwa znacznika
  • Tekst linku
  • Fragment tekstu linku
  • XPath
  • Selektor CSS
  • DOM

Co to jest XPath?

XPath służy do lokalizowania elementu na stronie internetowej na podstawie jego ścieżki w dokumencie XML. XML służy do przechowywania, organizowania i transportowania danych.

Jaka jest różnica między „/” i „//” w XPath?

„/” (pojedynczy ukośnik) tworzy ścieżkę bezwzględną XPath, zaczynając wyszukiwanie od głównego węzła dokumentu.

„//” (podwójny ukośnik) tworzy ścieżkę względną XPath, rozpoczynając wyszukiwanie z dowolnego miejsca w dokumencie.

Co to jest bezwzględny XPath?

Bezwzględny XPath zaczyna się od pojedynczego ukośnika „/”. Jest to pełna ścieżka od korzenia dokumentu do danego elementu.

Czym różnią się metody findElement() i findElements()?

  • findElements(): wyszukuje wszystkie elementy pasujące do danego lokalizatora i zwraca listę tych elementów.
  • findElement(): wyszukuje pierwszy element pasujący do lokalizatora i zwraca go jako pojedynczy element.

Jakie adnotacje są używane w Selenium (TestNG)?

  • @BeforeSuite
  • @BeforeTest
  • @BeforeClass
  • @BeforeMethod
  • @Test
  • @AfterMethod
  • @AfterClass
  • @AfterTest
  • @AfterSuite

Czym są asercje w Selenium?

Asercje pozwalają zweryfikować, czy aplikacja działa zgodnie z założeniami. Jeśli asercja nie powiedzie się, test uznaje się za nieudany i jego wykonanie jest przerywane.

Czym różnią się polecenia Assert i Verify?

  • Assert: jeśli warunek asercji jest spełniony, test jest kontynuowany. W przeciwnym wypadku test jest przerywany.
  • Verify: test jest kontynuowany niezależnie od tego, czy warunek weryfikacji jest spełniony, czy nie.

Czym jest polityka Same Origin Policy i jak radzi sobie z nią Selenium?

Polityka Same Origin Policy jest mechanizmem bezpieczeństwa, który ogranicza interakcję skryptów ładowanych z jednej domeny z zasobami z innej domeny, chroniąc przed złośliwymi atakami.

Selenium implementuje tę politykę za pomocą metody wstrzykiwania proxy. Serwer Selenium działa jako serwer proxy HTTP między testowaną aplikacją a przeglądarką, co maskuje rzeczywisty adres URL aplikacji.

Jaka jest funkcja „pauzy” w Selenium IDE?

Polecenie „pauza” (wait) w Selenium IDE służy do opóźniania wykonania testów o określony czas w milisekundach. Na przykład, aby poczekać 3 sekundy, należy wprowadzić wartość 3000.

Dlaczego testy w Selenium IDE mogą zawodzić?

  • Strony asynchroniczne. Testy Selenium są wykonywane sekwencyjnie, a w asynchronicznych aplikacjach odpowiedzi mogą napływać w nieoczekiwanej kolejności.
  • Limity czasu. Selenium może nie doczekać się załadowania wszystkich elementów na stronie, co prowadzi do błędu. Można temu zaradzić za pomocą „oczekiwania”.
  • Błędy. Selenium jest rozwijane, ale czasami może zawierać błędy.
  • Zmiany w kodzie strony. Jeśli zmieni się lokalizator elementu, testy mogą zakończyć się niepowodzeniem.

Czym jest TestNG i jakie są jego funkcje?

TestNG to framework do automatyzacji testów, inspirowany JUnit i NUnit. Jest to darmowe narzędzie open-source.

Oto niektóre funkcje TestNG:

  • Posiada różne rodzaje asercji.
  • Umożliwia równoległe wykonywanie testów.
  • Pozwala na definiowanie zależności między testami za pomocą atrybutów „dependsOnMethods” i „dependsOnGroups”.
  • Wspiera testowanie oparte na danych (Data Driven Testing).
  • Umożliwia grupowanie testów.

Jaka jest różnica między niejawnym a jawnym oczekiwaniem?

  • Niejawne oczekiwanie (implicit wait) instruuje WebDrivera, aby czekał przez określony czas, zanim zgłosi wyjątek. Domyślnie wartość to 0, a po ustawieniu czasu WebDriver będzie czekał, aż on upłynie.
  • Jawne oczekiwanie (explicit wait) mówi WebDriverowi, aby czekał, aż zostaną spełnione określone warunki, np. element stanie się widoczny, zanim zgłosi wyjątek „ElementNotVisibleException”. Jawne oczekiwanie jest bardziej „inteligentne” i dotyczy tylko wybranych elementów.

Co to jest repozytorium obiektów?

Repozytorium obiektów to zbiór par klucz-wartość w automatycznym skrypcie testowym. Ułatwia to zarządzanie skryptami i ich aktualizację. Kluczem jest nazwa logiczna obiektu, a wartością unikalne cechy identyfikujące ten obiekt na ekranie.

Jest to centralne miejsce, gdzie przechowywane są i zarządzane dane.

Jakie wyjątki można napotkać w Selenium WebDriver?

Wyjątek to nieoczekiwane zdarzenie, które może wystąpić podczas działania programu, prowadząc do jego nieprawidłowego działania.

Oto główne wyjątki w Selenium WebDriver:

  • NoSuchWindowException. Próba przełączenia się do nieistniejącego okna.
  • NoSuchElementException. Nie znaleziono elementu na stronie.
  • NoAlertPresentException. Próba przełączenia się do alertu, który nie istnieje.
  • TimeoutException. Operacja nie została wykonana w określonym czasie.
  • ElementNotVisibleException. Element nie jest widoczny.
  • ElementNotSelectableException. Element nie może zostać wybrany, mimo że jest dostępny w DOM.
  • SessionNotFoundException. Próba wykonania operacji na WebDriverze po zamknięciu przeglądarki.

Wymień różne typy lokalizatorów

  • ID
  • Nazwa
  • Nazwa klasy
  • Nazwa znacznika
  • Tekst linku
  • Fragment tekstu linku
  • Selektor CSS
  • XPath

Czym są punkty przerwania i punkty początkowe?

  • Punkty początkowe określają miejsce, w którym rozpoczyna się wykonywanie kodu. Można ich używać, by wystartować skrypt z wybranego miejsca.
  • Punkty przerwania służą do zatrzymywania wykonania kodu w konkretnym miejscu. Pozwala to na sprawdzenie, czy kod działa poprawnie w danym momencie.

Podsumowanie

Przedstawione powyżej pytania są przykładem zagadnień, które możesz napotkać podczas rozmowy kwalifikacyjnej na stanowisko inżyniera automatyzacji testów. Upewnij się, że posiadasz odpowiednie umiejętności przed aplikowaniem na takie stanowisko.

Czy ten artykuł był dla Ciebie pomocny? Podziel się nim ze swoimi znajomymi!


newsblog.pl