Fork me on GitHub
8/8/2009

Тесты - это просто

Когда я рассказывал lightning talk про тестирование, я отмечал свою статистику -- размеры тестов всегда больше размера тестируемого кода. Из этого можно сделать неправильный вывод, что на написание оттестированного кода уходит в два раза больше времени, чем на код без тестов. При обсуждении я говорил, что тесты как правило проще чем тестируемый код, и время колеблется где-то в районе +50%. Так вот, это пессимистичная оценка. Некоторое время я специально понаблюдал за собой и процессом написания и тестирования. И результат очень простой: базовые тесты пишутся в процессе отладки кода, а не отдельно. И при достаточном опыте написания тестируемого кода и тестов, время написания кода+тестов такого-же порядка, как написание отлаженного кода.

Для себя я выработал такой подход:

  1. Пишем test-aware код
  2. При создании кода сразу покрываем тестами те юниты, которые тестируется легко (нет возни с mock'ами, файлами, фикстурами и пр.)
  3. Покрываем ключевые юниты тестами (если они еще не покрыты после п.2)
  4. При появлении бага перед исправлением пишем тест, который падает при наличии ошибки и проходит после исправления. Исправляем, прогоняем тест, коммитим.

Не освещена тема функционального тестирования, так что stay tuned ;)

Комментарии

Все статьи