Тестирование: flaky, coverage, mock, fixture, regression
Тема дорожной карты · Английский для IT
🔊 Словарь терминов с произношением →
Словарь тестирования стандартизирован ISTQB, но живая речь инженеров использует более короткие и образные слова. Виды тестов по уровню: unit test — модульный, integration test — интеграционный, end-to-end (e2e) — сквозной, contract test, smoke test — дымовой, быстрая проверка «включается ли», sanity check — проверка на вменяемость, regression test — регрессионный, проверяющий, что старое не сломалось; regression — сам факт поломки ранее работавшего. По подходу: black-box / white-box, exploratory testing — исследовательское, manual / automated, TDD (test-driven development), BDD, property-based testing, fuzzing — подача случайных данных, mutation testing, snapshot testing, load testing — нагрузочное, stress testing, soak testing — длительное, chaos testing, A/B testing, canary testing, acceptance testing — приёмочное, UAT (user acceptance testing). Состояние тестов: pass / fail, green / red, skipped, pending, flaky — нестабильный, падающий без изменений кода, brittle — хрупкий, ломающийся от любого изменения, deterministic. Изоляция: mock — заглушка с проверкой вызовов, stub — заглушка с заданным ответом, fake — упрощённая реализация, spy — обёртка, записывающая вызовы, test double — общее название, fixture — подготовленные данные или состояние, factory, seed data, setup / teardown — подготовка и очистка. Coverage — покрытие: line, branch, statement, path coverage; coverage report, threshold. Assertion — утверждение, to assert that, expect, matcher. Test case — тестовый сценарий, test suite — набор, test plan, test runner — исполнитель тестов. Edge case — граничный случай, corner case — стечение нескольких границ, happy path — основной успешный сценарий, negative test. Bug / defect / issue, false positive — ложное срабатывание, false negative — пропуск проблемы. Shift left — тестировать раньше. Test pyramid — пирамида тестов. Quarantine — карантин для нестабильных тестов. Retry, timeout, parallelization, isolation. Given / When / Then — структура BDD-сценария. Arrange / Act / Assert — структура unit-теста. SUT (system under test). Golden file, approval test.
Как произносится
Flaky /ˈfleɪki/ («флЕйки»), brittle /ˈbrɪtl/, coverage /ˈkʌvərɪdʒ/, mock /mɒk/, stub /stʌb/, fixture /ˈfɪkstʃər/ («фИксчер»), regression /rɪˈɡrɛʃən/, assertion /əˈsɜːrʃən/, assert /əˈsɜːrt/, suite /swiːt/ («суит», как sweet), deterministic /dɪˌtɜːrmɪˈnɪstɪk/, exploratory /ɪkˈsplɒrətəri/, acceptance /əkˈsɛptəns/, fuzzing /ˈfʌzɪŋ/, mutation /mjuːˈteɪʃən/, teardown /ˈtɛərdaʊn/, quarantine /ˈkwɒrəntiːn/ («квОрэнтин», ударение на первый слог), threshold /ˈθrɛʃhoʊld/ (с «θ»), pyramid /ˈpɪrəmɪd/ (ударение на первый слог), scenario /sɪˈnɑːrioʊ/ («синАриоу»), hypothesis /haɪˈpɒθəsɪs/.
Как употребляется
- This test is flaky: it fails one in ten runs with no code change. — Тест нестабильный, падает один из десяти прогонов без изменений кода.
- Mock the payment gateway and assert it was called once. — Замокай платёжный шлюз и проверь, что он вызван один раз.
- Coverage dropped below the 80 percent threshold. — Покрытие упало ниже порога 80 процентов.
- Add a fixture with an expired subscription. — Добавь fixture с истёкшей подпиской.
- We caught a regression in checkout; the smoke suite didn't cover it. — Поймали регрессию в checkout, дымовой набор её не покрывал.
- Cover the happy path first, then the edge cases. — Сначала основной сценарий, потом граничные.
- Quarantine the flaky test and open a ticket. — Отправь нестабильный тест в карантин и заведи тикет.
- Tests must be deterministic; no sleeps, no real clocks. — Тесты должны быть детерминированными: без sleep и реального времени.
Ловушки
Первая ловушка — mock для всех заглушек: mock проверяет взаимодействие, stub только возвращает данные; в ревью разницу замечают. Вторая — suite произносить как suit: /swiːt/. Третья — coverage как «покрытие 100 процентов = качество»: носители говорят coverage is a proxy, not a goal. Четвёртая — regression как «регрессионное тестирование» и как «регрессия-баг»: контекст решает. Пятая — flaky переводить как «плавающий»: русское «плавающий баг» — intermittent bug, а flaky про тест. Шестая — fixture понимать как «фикстура» из мира электрики: в тестах это данные и состояние. Седьмая — test как глагол во фразе «протестировать на»: test for (проверить на наличие), test against (проверить на соответствие), test with (с какими данными).