Огненная чаша

Feb 11

Про тестирование в стартапе

Я давно парился над вопросом тестов. С одной стороны, тесты — это клево и все такое (Ruby-сообщество тесты ценит). С другой стороны, возьмем ситуацию стартапа:

  1. Количество ресурсов ограничено. За одно и то же время можно либо реализовать 1 элемент функционала и тесты к нему, либо 2 элемента функционала без тестов.
  2. Много кода пойдет на выброс, поскольку будущее слабо определено.

Получается, что в стартапе большого смысла увлекаться тестами нет. Наиболее ограниченный ресурс — время, и тратить его на тестирование кода с очень малым временем жизни бессмысленно. Лучше сделать 2 фичи и потом выбросить одну, чем сделать одну, но с тестами.

Вчера я слушал подкаст Эрика Риса про lean startups, там мне понравилась метафора про тесты как иммунную систему проекта, которая предотвращает поломки.

В итоге я пока остановился на следующем:

  1. Юнит-тесты для критически важной бизнес-логики, которые проверяют корректность ее работы, в т.ч. во всяких изощренных условиях.
  2. Простые тесты контроллеров. В нашем проекте поломки в основном происходят из-за того, что какой-нибудь хелпер переименовался или изменился путь к странице, а старое blah_blah_path где-то осталось. Поэтому достаточно простых get, post и put с проверкой кода возврата. Грубо говоря, если страница срендерилась или редирект произошел, то поломки нет — простейшая иммунная система.

Пробовал несколько раз Cucumber, неудачно. На Ruby писать быстрее и больше возможностей.

Кроме того, важность тестов, видимо, растет с ростом количества участников проекта. Возясь с чужим кодом, я предпочту иметь тесты.


  1. be9 posted this