QA / QA Automation
Do czego służy priorytet w przypadku testowym?
Jakie są typy danych w Pythonie, które z nich są zmienialne, a które nie?
Co się dzieje, gdy wpisujesz [link] w przeglądarce i naciskasz Enter? Dokąd zostanie wysłane pierwsze żądanie?
Czy pracowałeś z Allure? Jakie adnotacje możesz wymienić? Czy można dołączyć zrzut ekranu i jak? Gdzie przechowywane są wyniki testów? Jak połączyć Allure z CI/CD (Jenkins)?
Wymień artefakty testowe, które znasz.
Czy metoda współdziała z bazą danych — czy jest to test jednostkowy czy integracyjny?
Mocne strony i osiągnięcia w ciągu ostatnich 4 lat. Oczekiwania dotyczące wynagrodzenia.
Jak w takim razie zostanie zaszyfrowane moje żądanie (mechanizm szyfrowania)?
Programowanie obiektowe (OOP) to podejście do tworzenia programów, w którym kod jest organizowany w postaci obiektów Enkapsulacja Enkapsulacja to łączenie danych i metod, które z nimi pracują, w jednej klasie, a także ograniczanie bezpośredniego dostępu do wewnętrznego stanu obiektu. Prostymi słowami: obiekt sam zarządza swoimi danymi, a zewnętrzny kod wchodzi z nim w interakcję przez metody. Abstrakcja Abstrakcja to wyodrębnianie tylko ważnych cech obiektu i ukrywanie szczegółów jego implementacji. Prostymi słowami: użytkownik interesuje się tym, co robi obiekt, a nie jak dokładnie to robi. Polimorfizm Polimorfizm to możliwość obiektów z różną implementacją korzystania z tego samego interfejsu. W testach pomaga to pisać uniwersalny kod, który działa z różnymi typami danych lub klasami. Przykład w Python: class Animal: def make_sound(self): pass class Dog(Animal): def make_sound(self): return "Hau!" class Cat(Animal): def make_sound(self): return "Miau!" def animal_sound(animal: Animal): print(animal.make_sound()) dog = Dog() cat = Cat() animal_sound(dog) # Hau! animal_sound(cat) # Miau! W testach automatycznych, polimorfizm jest przydatny do: - Tworzenia uniwersalnych metod sprawdzania - Implementacji różnych strategii testowania przez jeden interfejs - Wsparcia różnych wersji API/UI bez zmiany testów Dziedziczenie Dziedziczenie to mechanizm, który pozwala nowej klasie automatycznie korzystać z istniejącej klasy, odziedziczając jej właściwości i metody. Prostymi słowami: nowa klasa ponownie używa kodu klasy rodzica i w razie potrzeby go rozszerza. Git 1. Systemy kontroli wersji. Lokalny, scentralizowany, rozproszony. 2. Podstawowe pojęcia. Repozytorium, indeks, commit, wskaźniki, gałąź, kopia robocza. 3. Praca z repozytorium. Polecenia: init, clone, status 4. Tworzenie commitu. Polecenia: add, commit. 5. Tworzenie, wyświetlanie, przełączanie między gałęziami, usuwanie. Polecenia: branch, checkout, log, diff. 6. Cofanie zmian. Polecenia: restore, rm, checkout, revert. 7. Scalanie zmian między gałęziami. Polecenia: merge, cherry-pick, rebase. 8. Praca z repozytorium zdalnym. Polecenia: fetch, pull, push. 9. Praca z GitHub, forki i Pull Requests.
Jak będziesz wybierać ofertę? Na co będziesz zwracać uwagę w pierwszej kolejności?
Czy doświadczenie z CV (instytucje finansowe) jest odzwierciedlone w książce pracy?
Jak koncepcyjnie działają typy danych referencyjnych?
Czy również przeprowadzasz testy ręczne, czy ktoś inny w zespole?
PageObject z czasem rozrasta się na skomplikowanej stronie i staje się nieczytelny. Czy miałeś coś takiego i jak sobie z tym poradziłeś?
Jak realizowana jest enkapsulacja w Pythonie? Opowiedz mi o modyfikatorach dostępu.
Czym jest SOLID? Która zasada jest najbardziej ulubiona?
Dlaczego wybraliście testowanie zamiast rozwoju, biorąc pod uwagę duży zakres rozwoju w waszym doświadczeniu?
Jakie różnice możesz wymienić w testowaniu na iOS i Android?
Czym jest WebView i jak go testować?
W którym miejscu piramidy testów znajduje się test manualny?