В чем разница динамического и статического тестирования
Что проверяют
Знаете ли вы, что тестирование начинается до запуска кода. Ответ показывает, участвуете ли вы в работе на ранних этапах или включаетесь только на готовой сборке.
Как отвечать
Статическое тестирование это проверка артефактов без выполнения программы: ревью требований и макетов, ревью кода, статический анализ, проверка типов, линтеры, анализ зависимостей на уязвимости. Динамическое это проверка работающей системы: функциональные проверки, интеграционные и сквозные тесты, нагрузочные, исследовательское тестирование.
Ключевая мысль в цене дефекта: ошибка, найденная в требованиях, стоит правки одного абзаца, та же ошибка в проде стоит инцидента, отката и потерянных денег. Поэтому статические проверки дают лучшую отдачу на ранних этапах.
Что стоит назвать из практики тестировщика:
- ревью требований: поиск противоречий, неизмеримых формулировок, незаданных крайних случаев и отсутствующих сценариев отказа. Это самая дешёвая работа с самым большим эффектом;
- ревью тест-кейсов и чужих проверок;
- статический анализ в конвейере: линтеры, проверка типов, SAST для безопасности, проверка контрактов API по схеме;
- динамика: от модульных тестов до исследовательских сессий на живой сборке.
Важно подчеркнуть, что они не заменяют друг друга: статика ловит несогласованность и подозрительные конструкции, но не докажет, что система решает задачу пользователя, а динамика проверяет поведение, но добирается только до выполненных путей.
Где спотыкаются
Считают статическим тестированием только автоматический анализатор, забывая про ревью документов.
Думают, что статический анализ заменяет тесты.
Не участвуют в обсуждении требований и потом ловят на сборке дефекты, которых можно было избежать в постановке.