unit tests
От: a_g_99 США http://www.hooli.xyz/
Дата: 30.01.13 16:55
Оценка:
Господа,
Это вопрос для бывалых воинов в области разработки ПО.

Преамбула:
— Я занимаюсь разработкой ПО долго и очень четко понимаю разницу между unit, integration and functional tests
— Профессионально знаком с NUnit, для меня не составляет никакого труда написать unit test если потребуется
— Написание теста не займет много моего времени. Это будет быстро

Но я не пишу unit tests (у компании нет обязательных conventions относительно unit tests) ввиду полного отсутствия результата в моем случае.

Пожалуйста, дайте отзыв — пишите ли вы unit tests и почему/в каких случаях (не по conventions, а по собственному желанию).

Вопрос именно к опытным профессиональным разработчикам ПО.
Re: unit tests
От: Spiceman  
Дата: 30.01.13 19:02
Оценка: +1 -1
Здравствуйте, a_g_99, Вы писали:

__>Пожалуйста, дайте отзыв — пишите ли вы unit tests и почему/в каких случаях (не по conventions, а по собственному желанию).


Не пишу, не нравится. Не вижу смысла.

__>Вопрос именно к опытным профессиональным разработчикам ПО.


А какие критерии опытности и профессиональности?
Re: unit tests
От: Дельгядо Филипп Россия  
Дата: 30.01.13 20:19
Оценка:
Здравствуйте, a_g_99, Вы писали:


__>Пожалуйста, дайте отзыв — пишите ли вы unit tests и почему/в каких случаях (не по conventions, а по собственному желанию).


Пишу покрытие основных кейсов при разработке новой функциональности — на сервисы и неочевидные классы.
Потом этот набор кейсов выкидываю (вернее, не включаю в тестирование и не поддерживаю. Сам код остается для рефакторингов, багфиксинга и т.п.).

Интеграционные и модульные тесты — пишем обязательно, в рамках основных пользовательских кейсов.

P.S. Java, Web, стоимость ошибки достаточно мала — поэтому и не выпендриваюсь.


__>Вопрос именно к опытным профессиональным разработчикам ПО.

А черт его знает.
Re: unit tests
От: Abyx Россия  
Дата: 30.01.13 20:28
Оценка:
Здравствуйте, a_g_99, Вы писали:

__>Пожалуйста, дайте отзыв — пишите ли вы unit tests и почему/в каких случаях (не по conventions, а по собственному желанию).


пишу чтобы не тестировать руками, всегда когда надо часто тестировать и есть возможность написать тесты
впрочем обычно это регрессионные тесты, а не unit тесты.
In Zen We Trust
Re: unit tests
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 30.01.13 20:32
Оценка: 1 (1) +3
Здравствуйте, a_g_99, Вы писали:

Именно unit тесты — не пишу. Пишу функциональные по всем основным юзкейсам, если код позволяет это сравнительно легко сделать. Интеграционные тесты пишет специальный человек.
... << RSDN@Home 1.2.0 alpha 5 rev. 66 on Windows 8 6.2.9200.0>>
AVK Blog
Re: unit tests
От: robin_of_the_wood Россия  
Дата: 30.01.13 20:46
Оценка: 1 (1) +4
Здравствуйте, a_g_99, Вы писали:

__>- Я занимаюсь разработкой ПО долго и очень четко понимаю разницу между unit, integration and functional tests

__>- Профессионально знаком с NUnit, для меня не составляет никакого труда написать unit test если потребуется
__>- Написание теста не займет много моего времени. Это будет быстро

__>Но я не пишу unit tests (у компании нет обязательных conventions относительно unit tests) ввиду полного отсутствия результата в моем случае.


__>Пожалуйста, дайте отзыв — пишите ли вы unit tests и почему/в каких случаях (не по conventions, а по собственному желанию).


Если Вам реально интересна иная точка зрения, то я могу сказать пару слов:
1. Есть задачи, для которых юнит тесты значительно сокращают количество ошибок в коде. Причем происходит быстрое обнаружение(сразу после билда).
Насколько эти задачи часто или редко встречаются конкретному разработчику — это обсуждать не имеет смысла.

2. Написать хороший юнит тест это очень вряд-ли будет просто и не будет быстро.

3. Тесты очень желатьльно запускать при каждом билде и этот вопрос обычно решается не программистами.

Если для ваших конкретных условий юнит тесты не приносят результата, вас не заставляют их писать и лично Вам их написание не поднимает настроение — не пишите и никого не слушайте
Проектирование велосипедов для слепых жирафов
Re: unit tests
От: Ромашка Украина  
Дата: 30.01.13 20:55
Оценка: 11 (1) :)
Здравствуйте, a_g_99, Вы писали:
__>Пожалуйста, дайте отзыв — пишите ли вы unit tests и почему/в каких случаях (не по conventions, а по собственному желанию).

Пишу когда не понимаю, как работает (не знакома предметная область). Было два раза.


Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[2]: unit tests
От: a_g_99 США http://www.hooli.xyz/
Дата: 31.01.13 05:55
Оценка: 3 (1) :))) :))
Здравствуйте, Spiceman, Вы писали:

S>А какие критерии опытности и профессиональности?

Белый мужчина в возрасте от 30 до 50 лет, имеющий законченное профильное ВО (math, cs, etc.) в одном из технических государственных вузов России, Западной Европы, Японии/Сингапура, США. Имеет не менее 7 лет опыта в сфере разработки ПО в мейнстриме (не мейнстрим тоже пойдет, но меня то интересует именно мейнстрим ), работал/работает на мегакорпорации и/или компании/стартапы со штаб-квартирой в штатах (не обязательно, но желательно). прилично владеет английским. Как-то так.
Re[2]: unit tests
От: a_g_99 США http://www.hooli.xyz/
Дата: 31.01.13 06:25
Оценка:
Здравствуйте, robin_of_the_wood, Вы писали:

___>1. Есть задачи, для которых юнит тесты значительно сокращают количество ошибок в коде. Причем происходит быстрое обнаружение(сразу после билда).

___>Насколько эти задачи часто или редко встречаются конкретному разработчику — это обсуждать не имеет смысла.
Т.е. юнит-тесты пишутся если заранее предполагается что код имеет плохое качество (много ошибок)? И если напр. код пишется качественно, юнит-тесты не нужны?

___>Если для ваших конкретных условий юнит тесты не приносят результата, вас не заставляют их писать и лично Вам их написание не поднимает настроение — не пишите и никого не слушайте

Это вопрос не о желаниях . Для меня важно понять как другие знающие люди используют эту технологию с пользой для себя.
Главный провокационный вопрос таков — юнит-тесты пишут плохие разработчики, которые изначально уверены что их код полон ошибок или нет?
Re: unit tests
От: Sinix  
Дата: 31.01.13 06:38
Оценка: +2
Здравствуйте, a_g_99, Вы писали:

__>Пожалуйста, дайте отзыв — пишите ли вы unit tests и почему/в каких случаях (не по conventions, а по собственному желанию).


Юнит-тесты в классическом понимании — нет, их с успехом заменяют ассерты непосредственно в коде.

Для отдельных слоёв и компонентов — стараюсь по мере возможности написать в виде тестов основные сценарии использования. Во-первых, это помогает увидеть проблемные места в API. Во-вторых, иначе просто нельзя отладить код (заставить сработать ассерты ) до использования компонента в проекте. В-третьих, на выходе получаются заведомо рабочие сценарии использования, которые сами по себе являются неплохой документацией.
Re[3]: unit tests
От: neFormal Россия  
Дата: 31.01.13 06:54
Оценка: 16 (5) +9
Здравствуйте, a_g_99, Вы писали:

__>Т.е. юнит-тесты пишутся если заранее предполагается что код имеет плохое качество (много ошибок)? И если напр. код пишется качественно, юнит-тесты не нужны?


тесты — это хоть какая-то физическая гарантия правильности кода
мне лично сильно влом отлаживаться на запущенном приложении, с тестами отладка побыстрее будет

__>Главный провокационный вопрос таков — юнит-тесты пишут плохие разработчики, которые изначально уверены что их код полон ошибок или нет?


нет, плохие разработчики думают, что они-то ошибок не делают, или отладятся потом, когда что-нибудь всплывёт
...coding for chaos...
Re: unit tests
От: Sharov Россия  
Дата: 31.01.13 10:30
Оценка: 3 (1) +1
Здравствуйте, a_g_99, Вы писали:

__>Преамбула:

__>- Я занимаюсь разработкой ПО долго и очень четко понимаю разницу между unit, integration and functional tests
__>- Профессионально знаком с NUnit, для меня не составляет никакого труда написать unit test если потребуется
__>- Написание теста не займет много моего времени. Это будет быстро

Выскажу свое мнение.
Пытался разрабатывать проект одновременно покрывая код юнит-тестами. Над проектом работал один, поэтому
тратил время и на написание тестов и на их поддержку. Однако при значительном изменении дизайна архитектуры,
практически половину тестов пришлось выкинуть на помойку. Зря только время тратил. Однако неплохо страхуют при рефакторинге.
Для себя сделал вывод, что если работаешь над проектом один и есть желание писать юнит-тесты, то тогда уж желательно
придерживаться какой-нибудь соотв. методологии типа TDD. Иначе много времени будет потрачено в пустую.

Сейчас разрабатываю небольшой сервис и клиента для него. От юнит-тестирования решил отказаться сразу. Использую
интеграционные тесты и не могу нарадоваться. Появился новый бизнес кейс -- написал код и соотв. сценарий его тестирования,
и в комплексе все прогнал. Гранулярность конечно не такая как у юнит-тестов, но ошибки ловятся.

На собственной шкуре понял одно -- разборка кода и какой-либо способ его тестирование должны идти неразрывно.
Кодом людям нужно помогать!
Re: unit tests
От: MTD https://github.com/mtrempoltsev
Дата: 31.01.13 16:43
Оценка: +1
Здравствуйте, a_g_99, Вы писали:

__>Пожалуйста, дайте отзыв — пишите ли вы unit tests и почему/в каких случаях (не по conventions, а по собственному желанию).


На моем зоопарке компиляторов С++ и операционных систем (Linux/QNX/Windows) разных версий, работающих от микропоцессоров до серверов, я пишу их всегда когда могу написать, так как это лучшее средство поймать баг в зародыше.
Re: unit tests
От: antirest  
Дата: 31.01.13 16:52
Оценка: 1 (1)
__>- Я занимаюсь разработкой ПО долго и очень четко понимаю разницу между unit, integration and functional tests

Видимо слишком долго, иначе Вы бы не смешивали эти два деления (по уровням и по объекту тестирования).
Re[3]: unit tests
От: Spiceman  
Дата: 31.01.13 20:17
Оценка:
Здравствуйте, a_g_99, Вы писали:

S>>А какие критерии опытности и профессиональности?

__>Белый мужчина в возрасте от 30 до 50 лет, имеющий законченное профильное ВО (math, cs, etc.) в одном из технических государственных вузов России, Западной Европы, Японии/Сингапура, США. Имеет не менее 7 лет опыта в сфере разработки ПО в мейнстриме (не мейнстрим тоже пойдет, но меня то интересует именно мейнстрим ), работал/работает на мегакорпорации и/или компании/стартапы со штаб-квартирой в штатах (не обязательно, но желательно). прилично владеет английским. Как-то так.

Re: unit tests
От: Baudolino  
Дата: 01.02.13 13:44
Оценка:
Практикую BDD/TDD, пишу тесты сверху вниз. По личному опыту экономит время на отладку/ручное тестирование, дает хорошие бонусы к архитектуре, документации и планированию, а также +100500 к карме. Не понимаю, как раньше без этого жил.

PM в американской корпорации, стаж коммерческой разработки около 15 лет. Команду сейчас тоже приучаю, на примерах и готовой инфраструктуре. Проект — веб B2B на Java.
Re: unit tests
От: abibok  
Дата: 01.02.13 22:56
Оценка: 2 (2)
__>Пожалуйста, дайте отзыв — пишите ли вы unit tests и почему/в каких случаях (не по conventions, а по собственному желанию).

Для нового кода — пишу всегда, когда это имеет смысл. Для legacy — пишу если что-то изменяю или дополняю.
По возможности стараюсь писать тесты перед написанием кода.
Тесты, которые ничего не проверяют, а существуют только для галочки и отчета о покрытии, никому не нужны.
Использую юнит-тесты в качестве документации. Например вместо многостраничного документа с объяснением того, как работает один хитрый код, я даю поиграться с юнит-тестами для него.
Re: unit tests
От: minorlogic Украина  
Дата: 02.02.13 09:32
Оценка:
Мой основной метод тестирования это Runtime verification

Тестирующий код идет вперемешку с с функционалом и в отладочной сборке проверяет большую часть функционала. Это самая удобная техника, ничего лучше пока не встречал.

Из тестов много интеграционных, проверка функционала на экзотических данных, и обычные тесты которые сложно провести по месту.

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

как то так.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[3]: unit tests
От: minorlogic Украина  
Дата: 02.02.13 11:33
Оценка:
Уверенность разработчика к качеством кода коррелирует , но только корреляция отрицательная. Хороший разработчик професионально более легкой параноей.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[2]: unit tests
От: minorlogic Украина  
Дата: 02.02.13 13:44
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Здравствуйте, a_g_99, Вы писали:


__>>Пожалуйста, дайте отзыв — пишите ли вы unit tests и почему/в каких случаях (не по conventions, а по собственному желанию).


MTD>На моем зоопарке компиляторов С++ и операционных систем (Linux/QNX/Windows) разных версий, работающих от микропоцессоров до серверов, я пишу их всегда когда могу написать, так как это лучшее средство поймать баг в зародыше.


чуть точнее плиз , какие именно тесты ? можно из этой классификации
/%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F
/%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.