Какие еще преимущества у юнит-тестов, кроме того, что они отлично обеспечивают регрессионное тестирование?



@beem7

Ну, и еще одно негласное преимущество: они являются «как-бы-частью-продукта». И их наличие с точки зрения многих заказчиков «как-бы-плюс». Всем мозги промыли 🙂
При этом писать их может даже очень зеленый джун. Не нужно вводить его в курс проекта, просто скажите ему научиться писать тесты, помогите минимально разобраться с вашим тестовым окружением (настолько, насколько оно вообще есть как таковое) и он будет их писать. Типа человек при деле.
И заказчики рады, да.
До тех пор, пока не посыплются баги. А они — посыплются. И вот об этом — дальше.

Собственно, есть ли у юнит-тестов еще какие-то преимущества, кроме описанных?

Недостатки:
— писать юнит-тесты более трудоемко и долго, чем тестировать вручную.
— эффективность поиска багов? опять нет. Невысока она у них. В этом их частенько обходит функциональное тестирование вручную. А тщательное прочитывание кода (тот же code review, но супер-тщательный) — вообще выигрывает у них с сухим счетом.
— изучению проекта новым членом команды (сначала он пишет тесты, потом коммитит в проект) это тоже способствует меньше, чем та же связка «функциональное тестирование + прочитка».
— и есть другие нюансы, вплоть до того, что они будут весить в «unpacked library» на npmjs.com

ИМХО, юнит-тестами, да и UI-тестами, надо покрывать далеко не всё.


Решения вопроса 7



@alexey-m-ukolov

Писать тесты может джун, это правда. Понимать что и как тестировать — это бывает и для опытного человека сложно.

Описанные недостатки — очень спорные. Метод пристального взгляда находит баги только в первые 10 минут, пока голова свежая.

Но да, с тем, что автотестами нужно покрывать не всё, я лично полностью согласен. Вдобавок, часто высокоуровневые функциональные или end-to-end тесты писать проще, а для проекта они полезнее. Тут надо искать баланс для себя. И еще в это уравнение добавить ручное тестирование. Какой-то общей формулы, понятно, нет.

А вопрос-то ваш в чём? Пока выглядит как «вы тут меня поуговаривайте писать тесты, а я вам буду объяснять, почему не буду этого делать». Не хотите — не пишите. Если для вашего проекта и для вашей команды тесты не несут большой пользы, то и не пишите их.
Судя по вашим прошлым вопросам, вы считаете, что всё знаете лучше других, соответственно, вопрос нужен, чтобы потешить ЧСВ? Ну или вы нарвались на какой-то карго-культ-секты-стопроцентного-кавереджа? В таком случае — сочувствую.



13

комментариев


Ответы на вопрос 0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *