QA / QA Automation
Co jest dla ciebie nie do przyjęcia w pracy?
Jakie narzędzia lub biblioteki używasz do wykonywania zapytań HTTP w swoich projektach?
Czy możesz wyjaśnić wzorzec Page Object i jaki problem rozwiązuje?
Jakie mechanizmy porównania istnieją w Java?
Jakie masz doświadczenie w testach obciążeniowych i analizie ich wyników?
[imię] zapytał: Do działu wsparcia technicznego trafił zgłoszenie: sprzedawca nie może zalogować się do swojego konta osobistego. Znany jest tylko jego unikalny numer. Jak zlokalizować problem?
Czym różni się synchroniczna i asynchroniczna integracja?
Czy możesz podzielić się swoim doświadczeniem zawodowym w ostatnim miejscu pracy?
Słyszeliście coś o Andersenie?
Jakie wskaźniki użyłeś do oceny wydajności systemu podczas testów obciążeniowych?
Czym jest projektowanie testów i dlaczego jest potrzebne testerom?
Poproszono cię o wydanie wersji wcześniej niż planowano, z mniej czasu. Jak rozdzieliłbyś zadania między sobą a juniorami?
Jak zbierać logi z urządzeń?
def fetch_users(): conn = db.connect("my_database") cursor = conn.cursor() cursor.execute("SELECT * FROM users") result = cursor.fetchall() return result
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.
Jaki jest cel używania wzorca Singleton w automatyzacji testów?
Czy to oznacza, że izolacja odbywa się na poziomie danych?
Czy mógłbyś wyjaśnić zasady SOLID i ich znaczenie w rozwoju oprogramowania?
Jakie narzędzia lub biblioteki używałeś do przeprowadzania testów asynchronicznych?
Dlaczego napisałeś, że rozważasz oferty od 200 000, skoro teraz otrzymujesz 210 000?