Pytania rekrutacyjne z testowania (Senior) z odpowiedziami
75 pytań na rozmowę rekrutacyjną z tematu Testowanie (Senior) - z poprawnymi odpowiedziami, wyjaśnieniami i linkami do dokumentacji.
Rozwiąż ten test- 1.Jak zdecydować, na którym poziomie piramidy/trofeum umieścić test?
- 2.Dlaczego artykuł Google „Just Say No to More End-to-End Tests” ostrzega przed opieraniem się na E2E?
- 3.Czym jest „testing honeycomb” i gdzie się go stosuje?
- 4.Na czym opierają się „rozmiary testów” Google (small, medium, large)?
- 5.Dlaczego terminy „unit” i „integracyjny” są w dyskusjach często niejednoznaczne?
- 6.Czym różnią się testy jednostkowe solitary i sociable?
- 7.Jaka jest różnica między klasycznym a mockistycznym (szkoła londyńska) podejściem do TDD?
- 8.Co sugeruje zasada „don't mock what you don't own”?
- 9.Jaki sygnał wskazuje, że testy są zbyt związane z implementacją?
- 10.Jak uzasadnić zespołowi koszt nowego testu E2E?
- 11.Jakie miejsce zajmują testy kontraktowe między frontendem a jego API?
- 12.Co mierzy testowanie mutacyjne (np. Stryker)?
- 13.Czym jest testowanie oparte na właściwościach (property-based, np. fast-check)?
- 14.Dlaczego cele pokrycia mogą zaszkodzić, gdy stają się KPI?
- 15.Jaka jest główna wartość TDD na poziomie senior, poza „posiadaniem testów”?
- 16.Jakie są główne źródła niedeterminizmu w testach według Fowlera?
- 17.Test przechodzi osobno, ale pada, gdy uruchamia się cały plik. Jaka jest prawdopodobna przyczyna?
- 18.Dlaczego automatyczne ponowienia w CI bez monitorowania są niebezpieczne?
- 19.Jak działa sharding Playwright w CI?
- 20.Czym różnią się workery i shardy w Playwright?
- 21.Jak zorganizować dane testowe dla testów E2E działających równolegle na wspólnym środowisku?
- 22.Jaka kolejność sprawdzeń daje najszybszą informację zwrotną w pipeline'ie CI?
- 23.Po co w CI uruchamiać testy z
--ci(Jest) lub równoważnymi ustawieniami? - 24.Dlaczego
vi.mockmusi być hoistowany i co z tego wynika? - 25.Jak w każdym teście dostać świeżą kopię modułu ze stanem na poziomie modułu?
- 26.Jakie są główne ograniczenia jsdom w testach komponentów?
- 27.Czym happy-dom różni się od jsdom?
- 28.Jaki jest kompromis między pulami Vitest
threadsiforks? - 29.Jaki problem rozwiązuje opcja Vitest
projects(dawniej workspace)? - 30.Co testuje
expectTypeOfw Vitest? - 31.Czym jest testowanie in-source w Vitest?
- 32.Czym jest kontekst testu w Vitest i do czego przydaje się w testach współbieżnych?
- 33.Dlaczego przy
vi.useFakeTimers()może zawiesić się test, który czeka na promise zsetTimeoutw środku? - 34.Co gwarantuje
act()w testach Reacta? - 35.Jak testować asynchroniczne React Server Components?
- 36.Jak pokryć testem jednostkowym Server Action w Next.js?
- 37.Jak przetestować komponent wewnątrz error boundary bez szumu w logach?
- 38.Jak przetestować komponent renderowany przez portal (modal)?
- 39.Kiedy lepiej testować własny hook przez
renderHookniż przez komponent? - 40.Jak przetestować Suspense z ładowaniem danych w teście komponentu?
- 41.Dlaczego mockowanie
useStatelub innych hooków Reacta to zły pomysł? - 42.Jakie są granice sprawdzeń jest-axe/axe-core w jsdom?
- 43.Czym fixtures Playwright różnią się od hooków
beforeEach? - 44.Jak w Playwright wykonać uwierzytelnianie raz dla całego zestawu?
- 45.Co sprawia, że wizualne testy regresji (
toHaveScreenshot) są niestabilne, i jak to ograniczyć? - 46.Na co pozwala
page.clockw Playwright? - 47.Co sprawdza
toMatchAriaSnapshot? - 48.Jakie są kompromisy Page Object Model w testach Playwright?
- 49.Co robi
expect.soft? - 50.Co robi
await expect(async () => { ... }).toPass()? - 51.Jak uruchamiać testy E2E na nagranym ruchu API?
- 52.Co dodaje
test.stepw teście Playwright? - 53.Dlaczego w testach E2E lepiej przygotowywać stan przez API niż przez UI?
- 54.Dlaczego komend Cypress nie można mieszać z
async/await? - 55.Dlaczego to sprawdzenie nie jest ponawiane i jak to naprawić?
- 56.Jaki problem rozwiązuje
cy.origin()? - 57.Kiedy Cypress może być lepszym wyborem niż Playwright?
- 58.Czym mock różni się od fake'a?
- 59.Kiedy weryfikacja interakcji (że mock został wywołany) jest właściwą asercją?
- 60.Dlaczego wstrzykiwanie zależności (DI) pomaga w testowalności?
- 61.Jak handlery MSW pomagają poza testami jednostkowymi?
- 62.Jakie jest ryzyko rozjechania się handlerów MSW z prawdziwym API?
- 63.Jak zamockować konstruktor klasy w Vitest/Jest?
- 64.Co dają testy interakcji w Storybooku?
- 65.W czym dobre jest wizualne testowanie komponentów (np. Storybook + Chromatic)?
- 66.Jak testować funkcję ukrytą za feature flagą?
- 67.Od czego zacząć testowanie dużego legacy frontendu bez testów?
- 68.Jak niezawodnie testować formatowanie daty/czasu dla różnych lokalizacji i stref czasowych?
- 69.Czego wymaga od kodu testów równoległość na poziomie testów?
- 70.Które podejście do test-id jest najłatwiejsze w utrzymaniu, gdy role i nazwy nie wystarczają?
- 71.Dlaczego senior może sprzeciwić się zestawowi testów złożonemu z samych
toMatchSnapshot()dla komponentów? - 72.Jakie jest główne ryzyko testowania wyłącznie przez
data-testid? - 73.Która metryka najlepiej pokazuje zespołowi kondycję zestawu testów?
- 74.Jak testy E2E mogą wyłapać błędy hydracji i inne błędy wykonania, które nie psują widocznego UI?
- 75.Co daje dużemu repozytorium
vitest --changed(lub--changedSincew Jest) i jakie ma ograniczenie?