Заметки Романа Теличкина

Невозможно разрабатывать без тестов

Апрель 2018
До сих пор бытует мнение, что разработчик не в состоянии проверить свой код. Типичные аргументы против тестирования собственного кода: "замыливание" глаза и незнание правильных подходов к тестированию.
"Замыливание" глаза — существующая проблема, но она легко решается свежим взглядом со стороны. Незнание подходов к тестированию — выдуманная, подходам можно обучить за пару дней или недель. На самом деле, эти аргументы не важны. Парадокс: даже противники тестирования собственного кода все равно тестируют свой код.
Тестирование — это не автотесты и не формальный подход, в котором обязательны описание тест-кейса и специальная отметка "pass" или "fail". И автотесты, и формальные ручные тесты являются инструментами, которые преследуют одну цель: ответить на вопрос "Работает ли программа так, как я ожидаю?"
Если вы целую неделю разрабатывали новый функционал, а потом запустили приложение и начали повторять основной пользовательский сценарий через графический интерфейс, попутно отлавливая и исправляя ошибки, — это тестирование. Если вы написали новую функцию, а потом выводите в консоль результаты ее выполнения на различных входных данных — это тоже тестирование. В обоих случаях вы сравниваете свое ожидание и реальность, а потом мысленно навешиваете отметку "pass", если они совпали, или "fail", если нет. Раз уж мы все равно сами тестируем свой код, может в следующий раз написать автотест вместо ручной проверки?
Возвращаясь к проблемам тестирования собственного кода. Самая большая проблема может быть лишь в том, что у некоторых разработчиков есть только одно ожидание — получить зарплату в конце месяца. Если зарплата была — значит код написан правильный. А с работоспособностью разберется тестировщик.
Открыть комментарии