LINUX.ORG.RU

Ответ на: комментарий от UVV

Чтобы свет истины в массы нести, очевидно ) Как будто ты не видел здесь людей, которые не могут в английский.

leave ★★★★★
()
Ответ на: комментарий от Sahas

Ну по ссылке немалых размеров простыня, которую красиво переводить идеи ради нафиг не упало.

leave ★★★★★
()
Ответ на: комментарий от leave

Как будто ты не видел здесь людей, которые не могут в английский.

Их много :(

UVV ★★★★★
()

ок, гугел

пишем перевод с последующей публикацией на хабре.

Why Most Unit Testing is Waste

Почему большинство модульное тестирование отходов.

Так хабре своей и напиши.

anonymous
()
Ответ на: комментарий от UVV

Я пару страниц прочитал, нового ничего не увидел. Самопиар автора в наличии. Может, днём выкрою минут 15.

leave ★★★★★
()
Ответ на: комментарий от UVV

Подтверждаю, у меня B2, статья читается легко.

dizza ★★★★★
()
Ответ на: комментарий от vladimir-vg

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

dizza ★★★★★
()

Лень вчитываться, что автор предлагает взамен?

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

buddhist ★★★★★
()
Последнее исправление: buddhist (всего исправлений: 1)
Ответ на: комментарий от buddhist

Лень вчитываться, что автор предлагает взамен?

В конце есть summary.

backburner
()
Ответ на: комментарий от buddhist

Типчики не спасают

No silver bullet, да.

Но, насколько я понял, взамен предлагается писать программы, которые не требуют юнит-тестирования. Причем писать их будут негры из кенийских саванн (правда-правла).

tailgunner ★★★★★
()
Ответ на: комментарий от leave

Чтобы свет истины в массы нести, очевидно ) Как будто ты не видел здесь людей, которые не могут в английский.

тут старая мысль про голод, рыбу и удочку.

kelyar ★★★★★
()
Ответ на: комментарий от anonymous

Не голова, а усердие и трудолюбие. Ну и желание вставать ночью чинить упавший прод (опять).

anonymous
()
Ответ на: комментарий от anonymous

Это ты про статику щас говоришь. В динамике — именно голова. См нпр smalltalk. С JS примерно то же самое.

anonymous
()

Keep regression tests around for up to a year — but most of those will be system-level tests rather than unit tests.


if X has business value and you can text X with either a system test or a unit test, use a system test

дяде плохо, дядю надо лечить

vostrik ★★★☆
()
Последнее исправление: vostrik (всего исправлений: 2)
Ответ на: комментарий от dizza

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

vostrik ★★★☆
()
Ответ на: комментарий от slackwarrior

Хорошим помогает. Вернее, может помочь. Он решает проблемы не в области программирования, а в области процессов.

anonymous
()

Не читал, но автор пытается мыслить чёрно-белыми категориями.

true_admin ★★★★★
()
Ответ на: комментарий от vostrik

которые занимают кучу времени на прогон

Нужно инвестировать в окружение. БД в памяти, моки внешних сервисов и так далее.

количество которых растёт в геометрической прогрессии

Ерунда, их количество растет линейно с ростом функциональности.

а их поддержка превращается в ад уже через несколько спринтов

Говнокодить не надо =). Поддержка функциональных тестов на порядок проще юнит-тестов, так как для каждого модуля не надо кодить тестовый контекст. Наверное ты просто не писал таких тестов.

dizza ★★★★★
()
Последнее исправление: dizza (всего исправлений: 1)
Ответ на: комментарий от dizza

Нужно инвестировать в окружение. БД в памяти, моки внешних сервисов и так далее.

получим в итоге эрзац-функциональное тестирование, а проблему не решим все равно: функциональные тесты априори дольше модульных

Ерунда, их количество растет линейно с ростом функциональности.

во-первых, почему мы ограничились ростом функциональности? сводить тестирование сложной системы к банальному черному ящику с покрытием только требований - кратчайший путь к факапу и потерям времени на тест-дизайн и дебаг приложения
во-вторых, даже если рассмотреть только рост функциональности, без покрытия тестами внутренних изменений системы. допустим, есть система из N модулей, с одной точкой входа и M точек выхода. добавим на вход первого модуля 1 переменную (соответственно +1 точку выхода), получим условные +2 теста на первый модуль (позитивный и негативный) и столько же на все зааффектанные модули при модульном тестировании. при функциональном тестировании - +2*M тестов независимо от того, зааффектаны все модули или только некоторые. итого, максимум 2*N при модульном против гарантированных 2*M при функциональном. это не считая того, что в 99% случаев точек выхода больше, чем модулей в системе (каждый модуль реализует какую-то логику, соответственно плодит точки выхода)

Говнокодить не надо =). Поддержка функциональных тестов на порядок проще юнит-тестов, так как для каждого модуля не надо кодить тестовый контекст. Наверное ты просто не писал таких тестов.

конечно, за 7 лет в QA - ни разу. поддержка функциональных тестов на порядок сложнее по причинам, описанным выше: любое изменение надо тащить через всю систему, не ограничиваясь измененным модулем

vostrik ★★★☆
()
Ответ на: комментарий от vostrik

Все понятно. Ни разу на видел, что бы QA писали нормальные тесты. Твои рассуждения про долгий тест-дизайн и дебаг это подтверждают.

dizza ★★★★★
()
Ответ на: комментарий от dizza

Ни разу на видел, что бы QA писали нормальные тесты.

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

vostrik ★★★☆
()
Ответ на: комментарий от UVV

Как leave заметил, читать 20-тистраничную простыню времени нет.

времени нет...

...потому что

......нужно успеть написать тесты! :-D

user_id_68054 ★★★★★
()
Последнее исправление: user_id_68054 (всего исправлений: 1)
Ответ на: комментарий от user_id_68054

Нет, поскольку семья, 2 работы и увлечения между делом.

UVV ★★★★★
()
Ответ на: комментарий от vostrik

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

Короткий ответ, многократно повторяя правильно Парето (20% усилий дает 80% результата), пока не будет приемлимого результата.

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

dizza ★★★★★
()
Последнее исправление: dizza (всего исправлений: 1)
Ответ на: комментарий от dizza

Нужно исходить исключительно из целесообразности

Это напрямую противоречит всем методологиям тестирования. «тестирование из целесообразности» не нужно и бессмысленно просто по своему определению. Все такие тесты можно смело удалить и ничего не потерять. Полезные тесты - это те, которые выходят за рамки целесообразности.

anonymous
()
Ответ на: комментарий от dizza

Нужно исходить исключительно из целесообразности, а не «давайте покроем все возможные кейсы между модулями»

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

покрываются некоторые важные сценарии, которые с наружи не видны

если ваша система настолько хреново документирована, что важные сценарии не видны членам команды - у меня для вас очень плохие новости

но это делается программистом, который знает архитектуру (а еще лучше если он же ее и придумал) и принимает решение исходя из здравого смысла.

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

//пмсм, человеку, который пишет «приемлимого», «приделах» и «с наружи», высказывать мнение о тестировании должно быть запрещено законом

vostrik ★★★☆
()
Ответ на: комментарий от anonymous

Ерунда. Все ваши проблемы как раз из-за бездумного следования правилам. Здравый смысл рулит.

dizza ★★★★★
()
20 сентября 2015 г.
Ответ на: комментарий от anonymous

Полезные тесты - это те, которые выходят за рамки целесообразности

позвольте полюбопытствовать, а что такое рамки целесообразности? и кто их устанавливает?

EnterpriseMobility
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.