← Усі теми

Питання на співбесіді з тестування (Senior) з відповідями

75 запитань для співбесіди з теми Тестування (Senior) - з правильними відповідями, поясненнями й посиланнями на документацію.

Пройти цей тест
  1. 1.Як вирішити, на який рівень піраміди/трофея поставити тест?
  2. 2.Чому стаття Google «Just Say No to More End-to-End Tests» застерігає від ставки на E2E?
  3. 3.Що таке «testing honeycomb» і де його застосовують?
  4. 4.На чому засновані «розміри тестів» Google (small, medium, large)?
  5. 5.Чому терміни «unit» та «інтеграційний» тест часто неоднозначні в обговореннях?
  6. 6.Чим solitary unit-тести відрізняються від sociable?
  7. 7.У чому різниця класичного та mockist-підходу (лондонська школа) в TDD?
  8. 8.Що пропонує правило «don't mock what you don't own»?
  9. 9.Який сигнал свідчить, що тести надто прив'язані до реалізації?
  10. 10.Як обґрунтувати команді вартість нового E2E-тесту?
  11. 11.Яке місце посідають контрактні тести між фронтендом і його API?
  12. 12.Що вимірює мутаційне тестування (наприклад, Stryker)?
  13. 13.Що таке property-based тестування (наприклад, fast-check)?
  14. 14.Чому цілі щодо покриття можуть зашкодити, якщо зробити їх KPI?
  15. 15.У чому головна цінність TDD на рівні senior, крім «наявності тестів»?
  16. 16.Які основні джерела недетермінізму в тестах, за Фаулером?
  17. 17.Тест проходить окремо, але падає під час запуску всього файлу. Яка причина найімовірніша?
  18. 18.Чим небезпечні автоматичні повтори в CI без моніторингу?
  19. 19.Як працює шардування Playwright у CI?
  20. 20.Чим workers у Playwright відрізняються від шардів?
  21. 21.Як організувати тестові дані для E2E-тестів, які паралельно працюють зі спільним середовищем?
  22. 22.Який порядок перевірок дає найшвидший зворотний зв'язок у CI-пайплайні?
  23. 23.Навіщо в CI запускати тести з --ci (Jest) або аналогічними налаштуваннями?
  24. 24.Чому vi.mock має підніматися (hoisting) і що з цього випливає?
  25. 25.Як отримати свіжу копію модуля зі станом на рівні модуля в кожному тесті?
  26. 26.Які головні обмеження jsdom для тестів компонентів?
  27. 27.Чим happy-dom відрізняється від jsdom?
  28. 28.У чому компроміс між пулами Vitest threads і forks?
  29. 29.Яке завдання розв'язує опція Vitest projects (раніше - workspace)?
  30. 30.Що тестує expectTypeOf у Vitest?
  31. 31.Що таке in-source тестування у Vitest?
  32. 32.Що таке контекст тесту у Vitest і чим він корисний для конкурентних тестів?
  33. 33.Чому з vi.useFakeTimers() може зависнути тест, що чекає на проміс із setTimeout всередині?
  34. 34.Що гарантує act() у тестах React?
  35. 35.Як тестувати асинхронні React Server Components?
  36. 36.Як покрити unit-тестом Server Action у Next.js?
  37. 37.Як протестувати компонент усередині error boundary без шуму в логах?
  38. 38.Як протестувати компонент, що рендериться через портал (модальне вікно)?
  39. 39.Коли кастомний хук краще тестувати через renderHook, а не через компонент?
  40. 40.Як протестувати Suspense із завантаженням даних у тесті компонента?
  41. 41.Чому мокати useState чи інші хуки React - погана ідея?
  42. 42.Які межі перевірок jest-axe/axe-core у jsdom?
  43. 43.Чим фікстури Playwright відрізняються від хуків beforeEach?
  44. 44.Як у Playwright виконати авторизацію один раз на весь набір?
  45. 45.Що робить візуальні регресійні тести (toHaveScreenshot) нестабільними і як це зменшити?
  46. 46.Що дає змогу page.clock у Playwright?
  47. 47.Що перевіряє toMatchAriaSnapshot?
  48. 48.Які компроміси має Page Object Model у тестах Playwright?
  49. 49.Що робить expect.soft?
  50. 50.Що робить await expect(async () => { ... }).toPass()?
  51. 51.Як запускати E2E-тести на записаному API-трафіку?
  52. 52.Що дає test.step у тесті Playwright?
  53. 53.Чому в E2E-тестах стан краще готувати через API, а не через UI?
  54. 54.Чому команди Cypress не можна змішувати з async/await?
  55. 55.Чому ця перевірка не повторюється і як це виправити?
  56. 56.Яке завдання розв'язує cy.origin()?
  57. 57.Коли Cypress може бути кращим вибором, ніж Playwright?
  58. 58.Чим мок відрізняється від фейка (fake)?
  59. 59.Коли перевірка взаємодій (що мок викликали) - правильна перевірка?
  60. 60.Чим впровадження залежностей (DI) допомагає тестованості?
  61. 61.Чим обробники MSW корисні крім unit-тестів?
  62. 62.Чим небезпечна розбіжність обробників MSW зі справжнім API?
  63. 63.Як замокати конструктор класу у Vitest/Jest?
  64. 64.Що дають interaction-тести в Storybook?
  65. 65.У чому сильна візуальна перевірка компонентів (наприклад, Storybook + Chromatic)?
  66. 66.Як тестувати фічу за feature-прапорцем?
  67. 67.З чого почати тестування великого legacy-фронтенду без тестів?
  68. 68.Як надійно тестувати форматування дати/часу для різних локалей і часових поясів?
  69. 69.Що вимагає від тестового коду паралелізм на рівні тестів?
  70. 70.Який підхід до test-id найпідтримуваніший, коли ролей та імен недостатньо?
  71. 71.Чому senior-інженер може заперечити проти набору тестів із суцільних toMatchSnapshot() для компонентів?
  72. 72.У чому головний ризик тестування лише через data-testid?
  73. 73.Яка метрика найкраще показує команді здоров'я тестового набору?
  74. 74.Як E2E-тести можуть впіймати помилки гідратації та інші помилки виконання, які не ламають видимий UI?
  75. 75.Що дає великому репозиторію vitest --changed (або --changedSince у Jest) і в чому його обмеження?