Тестирование проекта

Sliva
Дата: 28.06.2014 15:32:05
Прошу совета у опытных специалистов, как вы делаете тесты своих приложений?
Интересует WinForm + БД.
Краем уха слышал про Unit тесты.
Arm79
Дата: 28.06.2014 16:53:44
Sliva,

NUnit использовал
petalvik
Дата: 28.06.2014 17:43:32
Sliva,

какие именно тесты имеются в виду?
Тестирование бывает модульное, интеграционное, нагрузочное...
Можно начать с Википедии, почитать краем глаза про разновидности тестирования.
Sliva
Дата: 30.06.2014 09:20:47
petalvik,
почитал....
Ситуация: пишу ERP систему на предприятии, помодульно. Мое тестирование (ручное) сводится к проверке выходных данных, соответствии ТЗ и т.д.
Стоит ли заморачиваться написанием тестов, если (теоретически), на это есть время?
Arm79
Дата: 30.06.2014 09:30:24
Sliva
Стоит ли заморачиваться написанием тестов, если (теоретически), на это есть время?

На это стоит заморачиваться, даже если времени нет. Потому что без них еще хуже. Разумеется, если не передергивать, и не писать идиотские тесты на совершенно ненужные вещи.
D129
Дата: 30.06.2014 10:13:13
Arm79
Потому что без них еще хуже. Разумеется, если не передергивать, и не писать идиотские тесты на совершенно ненужные вещи.


Вот нравятся мне эти оговорки в стиле Хаджи Насреддина....

Другими словами - если программер умный, то можно писать тесты, а если глупый - то не нужно....

Еще есть такие фишки -что говорят, мол, тесты должны писать все! (причем все должны писать правильные тесты, не передергивать, это главное условие)
Если кто-то один пропустил тесты - все, вся технология чуда теряет гарантию!

:-)

Вот давайте так - тесты это инструмент.
НЕ МОЖЕТ БЫТЬ что некий инструмент можно применять везде (с одинаковым успехом).
Не согласны?
Shocker.Pro
Дата: 30.06.2014 10:23:56
Тесты прежде всего нужны для того, чтобы можно было вносить доработки, не испортив уже работающий код.
То есть если пишешь сферическую программу в вакууме, на которую есть изначальное и полное ТЗ, и которая не будет как-то изменяться и развиваться, то можно обойтись без тестов.
D129
Дата: 30.06.2014 10:29:17
Shocker.Pro
Тесты прежде всего нужны для того, чтобы можно было вносить доработки, не испортив уже работающий код.


Отговорка. Если надо вносить доработки, то это неизбежно затронет "работающий уже код" - иначе это не доработка. Значит, будем править чужие тесты (а это ведь "низзя").
Потому, что надо.
Это эквивалентно обычному "санити тесту" - проверке функциональности.

Что да, дают написанные тесты - запускать кусочки кода, без запуска всего проэкта.
Это круто, однозначно.
Но это создает опасную иллюзию, что все ок (все тесты прошли) когда весь проэкт даже не запускался!
D129
Дата: 30.06.2014 10:30:14
D129
Это эквивалентно обычному "санити тесту" - проверке функциональности.


*Это было бы эквивалентно ....
Arm79
Дата: 30.06.2014 10:30:43
D129,

Разумеется, нет. Написание тестов никак не коррелирует с интеллектом программиста. Тесты нужно писать всегда. Вопрос в их количестве. Иногда программисты перегибают палку и пишут тесты ради тестов, для галочки.

Нет смысла, к примеру, тестить метод
public long Add(int a, int b)
{
return a + b;
}
Или если для методов присутствуют контракты. Или закладываться на фантастические варианты.

А методы или объекты, реализующие сложную бизнес-логику стоит. Например, переходы по состояниям, или финансовые расчеты, например кредиты.

То, что не везде с одинаковым успехом, согласен. Но нужно стараться стремиться к совершенству :-)

PS Говорю по своему опыту - даже в условиях цейтнота писал тесты на самые важные методы и классы, и они впоследствии сэкономили мне туеву хучу времени, когда заказчик начал менять и уточнять требования.