Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

А как сейчас с работой?

16.07.21 11:30
Re: А как сейчас с работой?
 
Программист коренной житель
в ответ alex445 16.07.21 09:13
что хвастаются процентов покрытия кода юнит-тестами - чем ближе к 100, тем круче считается. А если далеко от 100, то уже не Test Driven Development.

Ну если цель - дойти до 100%, то из такой конторы надо валить :) Эти люди не понимают того, чем занимаются. Либо это какая-то специфическая сфера. У меня знакомый работает в фирме и они делают тесты для СуперДжета. У них покрытие около 98%. При этом на 600кБ исходного кода приходится больше 55Мб тестовых скриптов. Так что софт для самолетов/вертолетов или каких-то особенно чувствительных частей медицинского оборудования стремление к 100% покрытию оправдано. Вменяемые конторы стремятся к 70-80% покрытию. Стоимость покрытия больше этого уровня растет по экспоненте.


Где тесты для тестов?

:) А потом еще тесты для тестов тестов :)


Если вы такой крутой, что можете все кейсы предвидеть и отработать в тестах, то вы сразу и в коде можете это предвидеть и отработать - зачем тогда тесты?

1) тесты нужны для надежности, т.е. чтобы быть уверенным, что кто-то случайно не изменил поведение.

2) тестами описывается спецификация. так что нет необходимости предвидеть все кейсы. и уж тем более нет необходимости предвидеть все кейсы на стадии программирования ;)


По мне юнит-тесты должны проверять только важные вещи, т.е. подход Test Driven Development является очередным вредным максимализмом, когда фанатики доводят что-то до абсурда и начинают других заставлять делать так же.

Юнит-тестами описываются требования спецификации. Плюс к этому юнит-тесты - способ документации из серии how to.

Серебрянной пули не существует :) А сходить с ума можно по любой технологии.


Я уже не говорю о том, что тесты должны обновляться вместе с кодом.

Ну вообще говоря нет.


Как я понимаю, в юнит-тестах должны все кейсы отрабатываться и проверяться. В том числе бросаются ли исключения и какие при разных аномальных данных. Верно?

Нет, не верно. Юнит-тесты проверяют работу твоего кода. Т.е. если твой код не отлавливает никакие специфические исключения, то нет смысла тестировать реакцию на них. И если у тебя

try
{
  ...
}
catch (Exception ex)
{
 ... 
}

то нет никакого смысла делать больше одного теста с любым исключением ;)

 

Перейти на