Обложка изображения Бретт Джордан на Неспособный .
Вчера я написал по одной причине, почему на 100% покрытие кода стоит стремиться. Вы можете прочитать этот пост здесь:
Вы стремитесь к 80% покрытию кода? Позвольте угадать, какие 80% вы выберете …
Даниэль Ирвин 🏳 ・ 10 февраля 3 мин читать
Сегодня я хочу обсудить другой Причина, почему. И этот еще важнее, чем вчерашний. Вот:
Обладание способностью достичь 100% охвата кода является важной вехой в вашем пути к тому, чтобы стать опытным разработчиком.
Думайте о 100% охвате как навык
Покрытие – это навык, точно так же, как способность кодировать в JavaScript, TypeScript или Python, и точно так же, как способность использовать такую структуру, как React, Vue или Django.
Если вы думаете, что достижение на 100% покрытие сложно, возможно, это потому, что вы никогда не делали этого!
Точно так же React будет трудно, если бы вы никогда не записали приложение React, на 100% охват трудно достичь, если вы никогда этого не сделали.
Теперь ответьте на этот вопрос для себя:
Сколько раз в своей карьере вы достигали на 100% охват?
Если ответ нулевой, то какое оправдание вы использовали?
Вот два:
- Покрытие кода в любом случае является бесполезной метрикой
- Покрытие кода слишком дорого/интенсивно для веб-приложений и подходит только тогда, когда сбой программного обеспечения будет катастрофическим
“Но покрытие кода – бесполезная метрика!”
Я понимаю, почему вы это говорите. Вы думаете, что это бесполезно, потому что можно писать ужасные тесты и при этом добиться 100% охвата. Я согласен с этим.
Это это бесполезная метрика. Если это то, для чего вы используете. Вот пост, который хорошо объясняет, почему покрытие кода является относительно бесполезной метрикой.
Покрытие кода бесполезно
Джон Риз ・ 21 февраля ’19 ・ 6 минут прочитал
Но, по иронии судьбы, именно поэтому это полезный навык для практики.
Один, Потому что полное освещение достаточно легко сделать самостоятельно, но это трудно сделать ну Анкет
Два, Потому что у нас относительно мало целей разработчика, которые могут помочь нам стать лучше при тестировании Анкет
(Мы используем термин тестирование разработчика для различения тестирования праров, которые полезны для разработчиков и практики тестирования QA).
Так что веха на самом деле в трех частях:
- Можете ли вы достичь 100% охвата?
- Можете ли вы достичь 100% охвата быть честным ? Без тестов, которые предназначены только для увеличения покрытия, например, явное тестирование геттеров/сеттеров?
- Можете ли вы добиться 100% покрытия без Oversesting ? (Вам нужны достаточно тестов, чтобы вы получили полное покрытие, не имея перекрывающегося выполнения и без создания хрупких тестов.)
” 100% покрытие кода не стоит беспокоиться о некритическом программном обеспечении, например, веб-приложениях »
Опять же, я могу понять, почему вы это говорите. Веб -приложения, по большей части, не имеют критического значения. В отличие от, скажем, медицинские приборы или ракетные корабли.
Когда я слышу вышеперечисленное, что я думаю: «Мы не знаем, как достичь полного покрытия без резкого снижения производительности».
Что опять же, совершенно понятно. Тестирование сложно.
Но есть много, много опытных разработчиков, которые являются способен достичь полного покрытия на скорости. Они могут сделать это, потому что они были достаточно мотивированы, чтобы хорошо это испытать, и они нашли время, чтобы научиться делать это хорошо.
Я продан. Как я могу научиться это сделать?
- Начните использовать TDD. Вы можете учиться из книг Как моя книга «Реакт TDD .
- Попросите опытных тестеров просмотреть ваши тесты. Не стесняйтесь присылать PRS по моему пути, я с радостью посмотрю на них!
- Используйте боковые проекты, чтобы учиться, поэтому вы не подвергаете своей оплачиваемой занятости, когда вы выясняете, как заставить вещи работать. Выберите некоторое время в свой день, чтобы учиться.
Как только вы узнаете, как добиться охвата и добиться его хорошо, покрытие кода становится гораздо менее важным …
Лично я очень редко измеряю покрытие кода. Мой рабочий процесс TDD означает, что я на 100%. Это не для того, чтобы звучать тщеславным; В какой -то момент моей карьеры, достижение на 100% охват был важная цель. Но теперь я знаю, как это сделать, я работаю над другими целями.
Как я сказал выше, Тестирование разработчика страдает от не иметь четких способов улучшения, и у нас нет объективных способов измерения наших результатов тестирования.
На дороге есть много этапов, чтобы стать опытным застройщиком; Как возможность безжалостно рефакторировать, используя TDD и способность применять четыре правила простого дизайна.
100% охват – отличная первая веха.
Оригинал: “https://dev.to/d_ir/achieving-100-code-coverage-will-make-you-a-better-developer-seriously-30fc”