Russian Qt Forum
Ноябрь 22, 2024, 15:55 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2] 3 4 ... 6   Вниз
  Печать  
Автор Тема: TDD  (Прочитано 38600 раз)
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #15 : Август 06, 2015, 23:33 »

Вы тут несете какую-то хуйню. Покрытие тестами проверяется анализаторами, их кучи. Из практики - у нас те, кто не писал тесты (не надо, кстати, путать ТДД и написание тестов в принципе) ловили баги от отдела тестирования, исправляли, ловили баги от отдела тестирования, и так бесконено. Те, кто сразу писал тесты, брали и переходили к другой задаче, пока первые не могли закончить.
Записан
Bepec
Гость
« Ответ #16 : Август 06, 2015, 23:42 »

Т.е. ситуаций что тест работал неправильно не было?

PS тут собственно и ждем мнения человека их использующего.
« Последнее редактирование: Август 06, 2015, 23:44 от Bepec » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #17 : Август 07, 2015, 09:23 »

Вы тут несете какую-то хуйню.
Такие реплики только роняют Вас ниже плинтуса, убедительность же их нулевая  Улыбающийся

Покрытие тестами проверяется анализаторами, их кучи.
Какими "анализаторами"? Из какой "кучи"? Хз Непонимающий

Из практики - у нас те, кто не писал тесты (не надо, кстати, путать ТДД и написание тестов в принципе) ловили баги от отдела тестирования, исправляли, ловили баги от отдела тестирования, и так бесконено. Те, кто сразу писал тесты, брали и переходили к другой задаче, пока первые не могли закончить.
Ага, еще и отдел тестирования (видать немало народу пригрелось). О том что тесты нужны я и сам знаю. Но тесты сами по себе - не TDD. Там утверждается о "разработке на основе тестов", о "движении вперед маленькими, но надежными(!) шагами". Я. право, не представляю как это на практике.

Ну хорошо, вот задача которую здесь делали многие - чтение obj файла. Это очень простой формат, полагаем что читаем только вертексы и фейсы, а материалы и др навороты игнорируем. Написать это час с нуля по описанию. И что? Как это должно быть "с методом TDD"? Как двигаться "тест за тестом"?  Если такой пример слишком сложен - приведите свой
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #18 : Август 07, 2015, 11:01 »

Т.е. ситуаций что тест работал неправильно не было?

Ну работает неправильно, берете и исправляете тест. Это очень редкая ситуация - как раз на этапе стыковки теста и кода вы вычищаете баги и там и там. Зачем для этого нужны тесты на тесты? Люди типа вас, наверное, и придумали autotools - генератор для генератора для генератора. А, ну и тесты должны быть максимально простыми в начале. Я хз сколько неинициализированных переменных я выявил банальным тестом на дефолтвалуе/геттер/сеттер.

Такие реплики только роняют Вас ниже плинтуса, убедительность же их нулевая  Улыбающийся
Ну я не знаю как еще реагировать на людей, делающих заявы из серии "я в школе не учился, мне это в жизни ни разу не пригодилось"

Какими "анализаторами"? Из какой "кучи"? Хз Непонимающий
Вроде бы, мы CppCheck юзали. Там было покрытие построчное/процентное.


Ага, еще и отдел тестирования (видать немало народу пригрелось). О том что тесты нужны я и сам знаю. Но тесты сами по себе - не TDD. Там утверждается о "разработке на основе тестов", о "движении вперед маленькими, но надежными(!) шагами". Я. право, не представляю как это на практике.

Ну хорошо, вот задача которую здесь делали многие - чтение obj файла. Это очень простой формат, полагаем что читаем только вертексы и фейсы, а материалы и др навороты игнорируем. Написать это час с нуля по описанию. И что? Как это должно быть "с методом TDD"? Как двигаться "тест за тестом"?  Если такой пример слишком сложен - приведите свой
Лол, то есть у вас даже отдела тестирования нет? Какое счастье, что люди типа вас не работают на биржах/не пишут ПО для АЭС/самолетов.
Ну вы АПИ набросайте для начала. Навскидку - скормить пустой файл, невалидный файл, файл только с вертексами, только с фейсами, с тем и тем, файл с наворотоами.
Записан
Tuxford
Гость
« Ответ #19 : Август 07, 2015, 11:24 »

ТДД - вещь, придуманная маркетологами, поскольку легко позволяет вдвое увеличить стоимость проекта для заказчика с аргументами о, якобы, более стабильном и безопасном коде. В действительности же время разработки увеличивается на время поддержки тестов в живом состоянии, что означает, фактически, их переделывание в случае рефакторинга и добавления новых фич. Ну а позитив в том, что фирма, использующая ТДД, создает рабочие места для сотрудников-тестеров, которые будут заниматься только тестами и не отвлекать разработчиков от процесса разработки Улыбающийся
Тогда почему очень много опенсорс проектор использую ТДД? Не находите противоречия. 
Если на то пошло, то много времени тратится в начале. Потом меньше. Я уже писал почему.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #20 : Август 07, 2015, 12:52 »

Тогда почему очень много опенсорс проектор использую ТДД? Не находите противоречия. 

Не нахожу. Опенсорс не значит бесплатно. Вернее, оно то бесплатно для конечного пользователя, но само внедрение технологии ТДД и ее поддержка - очень даже недешевое удовольствие. На моей прошлой фирме был печальный опыт, когда "верхнее" начальство повелось на обещания маркетологов и приобрело "в целях безопасности" мегамонстра, с которым потом долго мучались программисты. Семинары, обучения, техподдержка - для фирмы это вылилось в немалую сумму. Кстати, в итоге проект закрыли...

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

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #21 : Август 07, 2015, 14:01 »

Ну вы АПИ набросайте для начала. Навскидку - скормить пустой файл, невалидный файл, файл только с вертексами, только с фейсами, с тем и тем, файл с наворотоами.
Ну как-то не слышно уверенности в голосе Улыбающийся Никак не пойму что же я должен "тестить"-то? Ну создал пустой файл (может лучше только с комментами?) И что? Какую часть ридера я должен иметь на этот момент разработки? (это я как-то пытаюсь связать концы с концами)

Что-то мне это начинает напоминать язык где все время приводится один пример, и там выходит что Мухтар... собака! Ну и типа "предикаты". Здесь тоже, тесты-тесты, а понту/толку Непонимающий
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #22 : Август 07, 2015, 14:14 »

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

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Tuxford
Гость
« Ответ #23 : Август 07, 2015, 14:45 »

Тогда почему очень много опенсорс проектор использую ТДД? Не находите противоречия. 

Не нахожу. Опенсорс не значит бесплатно. Вернее, оно то бесплатно для конечного пользователя, но само внедрение технологии ТДД и ее поддержка - очень даже недешевое удовольствие. На моей прошлой фирме был печальный опыт, когда "верхнее" начальство повелось на обещания маркетологов и приобрело "в целях безопасности" мегамонстра, с которым потом долго мучались программисты. Семинары, обучения, техподдержка - для фирмы это вылилось в немалую сумму. Кстати, в итоге проект закрыли...
Корень ошибки - дорого. Неправда. Точнее только половина правды. В начале действительно так, в результате - затраты меньшые. Возможно на вашей конторе направильно походили. Это не является доказательством неэффективности ТДД.

К тому же я не знаю ни одного известного проекта, например, который бы был полностью некоммерческим и использовал каноничный ТДД. Просто ТДД по определению требует бюджет, который может значительно превышать стоимость разработки продукта.
1. ТДД не может быть каноническим. В каждом случае что-то нужно упустить, что-то добавить
2. Что такое полностью некомерческий продукт?
3. По поводу бюджета, я уже писал, что это не увеличивает, кроме случаев когда все изчисляется в строках кода и пр. извращенными метриками.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #24 : Август 07, 2015, 14:45 »

Igors, ты просишь сейчас научить тебя удаленно, но это слишком сложно сделать на форуме. Поищи на ютубе видеоуроки по TDD, где человек комментирует свои действия. Или найди человек в своем городе, который практикует TDD и захочет тебе показать, что это такое. А этот топик сейчас очень напоминает общение немого со слепым.
Я не прошу писать тонны кода - просто "на пальцах", простом примере объяснить что к чему. Что это за метод если, оказывается, это "слишком сложно сделать"? И я никого не заставляю меня учить - на нет и суда нет  Улыбающийся

Edit: вспомнился случай/задача. Есть треугольник ABC. Известны длины всех его сторон (a, b, c) и координаты точек A(x1, y1) и B(x2, y2). Найти координаты С(x. y). Человек привел такое решение
Цитировать
x:=(1/2)*((y1-y2)*sqrt(-(-x1^2+2*x2*x1-x2^2+(-b+a-y1+y2)*(-b+a+y1-y2))*(-x1^2+2*x2*x1-x2^2+(b+a-y1+y2)*(b+a+y1-y2))*(x1-x2)^2)+(x1^3-x1^2*x2+(y2^2-2*y1*y2-b^2+y1^2+a^2-x2^2)*x1-x2*(a^2-b^2-x2^2-y2^2+2*y1*y2-y1^2))*(x1-x2))/((x1-x2)*(x1^2-2*x2*x1+x2^2+(y1-y2)^2));

y := (-sqrt(-(-x1^2+2*x2*x1-x2^2+(-b+a-y1+y2)*(-b+a+y1-y2))*(-x1^2+2*x2*x1-x2^2+(b+a-y1+y2)*(b+a+y1-y2))*(x1-x2)^2)+y1^3-y1^2*y2+(a^2+x1^2-b^2+x2^2-2*x2*x1-y2^2)*y1+y2^3+(x2^2-2*x2*x1+b^2-a^2+x1^2)*y2)/(2*y1^2-4*y1*y2+2*y2^2+2*(x1-x2)^2);
Да, действительно, это сложно на форуме (читай "слишком много кода"  Улыбающийся), но это и столь же неэффективно. А ведь ничего сложного в задачке не было и объяснить как решать легко.
« Последнее редактирование: Август 07, 2015, 15:06 от Igors » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #25 : Август 07, 2015, 15:03 »

Igors, ты просишь сейчас научить тебя удаленно, но это слишком сложно сделать на форуме. Поищи на ютубе видеоуроки по TDD, где человек комментирует свои действия. Или найди человек в своем городе, который практикует TDD и захочет тебе показать, что это такое. А этот топик сейчас очень напоминает общение немого со слепым.
Я не прошу писать тонны кода - просто "на пальцах", простом примере объяснить что к чему. Что это за метод если, оказывается, это "слишком сложно сделать"? И я никого не заставляю меня учить - на нет и суда нет  Улыбающийся
Вот лично мне конкретно влом сейчас сидеть и расписывать тебе пример по шагам, тем более в книге, которую я тебе рекомендовал, это уже сделано (причем несколько раз).
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #26 : Август 07, 2015, 16:31 »

Вот лично мне конкретно влом сейчас сидеть и расписывать тебе пример по шагам, тем более в книге, которую я тебе рекомендовал, это уже сделано (причем несколько раз).
Я не заставляю Вас что-то вообще для меня делать Улыбающийся Книгу читали - уже хорошо  Улыбающийся. Я тоже много чего читаю (пролистываю) но пользоваться всем что прочитал не спешу. Хотелось бы услышать мнение кто юзает на практике - но тут (пока) дальше общих слов дело не идет
Записан
Tuxford
Гость
« Ответ #27 : Август 07, 2015, 17:20 »

Доводов было предостаточно, если Вы их не видите, то что можно поделать?
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #28 : Август 07, 2015, 18:24 »

Корень ошибки - дорого. Неправда. Точнее только половина правды. В начале действительно так, в результате - затраты меньшые. Возможно на вашей конторе направильно походили. Это не является доказательством неэффективности ТДД.
Хорошо, посчитаем просто. Пусть Xр - стоимость разработки (без ТДД), плюс Хт - стоимость тестирования по окончанию разработки, плюс Хс - стоимость саппорта. Тогда себестоимость проекта будет считаться как X = Xp+Xт+Xc.

С применением ТДД необходимо добавить Xтдд - время разработки и поддержки тестов, плюc Хтддс - время внедрения и поддержки ТДД-технологии (сюда идут как семинары, обучения, так и издержки на администрирование системы тестов). Имеем X = Xp+Xт+Xc+Xтдд+Хтддс. А как известно, Xтдд+Хтддс может быть >= Xp.

Извините, ни быстрее, ни дешевле не получается...

1. ТДД не может быть каноническим. В каждом случае что-то нужно упустить, что-то добавить

Как и все вокруг.

2. Что такое полностью некомерческий продукт?

Имеется в виду проект, который делается на чистом энтузиазме и не ставит цели прямо или косвенно приносить прибыль. Конечно, тут плюс в том, что и время на проект неограничено, и тогда можно развернуться в ТДД по полной, написав тесты на каждый метод каждого класса. Но тогда есть риск, что проект никогда не выйдет из стадии тестирования.

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

Бюджет часто зависит от сроков исполнения. ТДД позволяет волшебным образом увеличить и то, и другое Улыбающийся За это его и любят.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Bepec
Гость
« Ответ #29 : Август 07, 2015, 18:45 »

Лол, то есть у вас даже отдела тестирования нет? Какое счастье, что люди типа вас не работают на биржах/не пишут ПО для АЭС/самолетов.
Представь, нет отдела тестирования.
И да, писал по для средств защиты гос. границ/ АЭС нашей родины Улыбающийся И могу гарантировать, что в других смежных отделах, где средства защиты разрабатывались, тоже нет отдела тестирования...
Трудно заиметь отдел тестирования, если ведущий инженер-программист получает 25к. Собственно это и было причиной моего ухода (я не был ведущим, я получал меньше).
 
Использующих ТДД просят "просто" рассказать о преимуществах и минусах на примере. Пока что видно нежелание даже поднимать эту тему.
Ссылаться на учебники можно и нужно, но не по такому вопросу.
От вас просят взять свои знания, сплетённые с опытом применения ТДД и сделать выжимку этих знаний, а не ссылаться на книги с чистой теорией.

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

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

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

То ли ТДД рекомендует разбить это на простые действия, но тогда смысл тестов исчезает - проверяется не комплекс, а отдельные части.

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

PPPS заканчивая поток сознания -
Вы предлаете прочитать книгу - многопоточное программирование я осваивал по книгам, в результате были сотни неудачных попыток и в результате одна работающая комбинация(со скрытой гонкой потоков, как оказалось потом).
А мы просим выдержку, опыт + теория - а вот общение с специалистом (2 часа) + листок бумажки пояснил мне всё.
Записан
Страниц: 1 [2] 3 4 ... 6   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.067 секунд. Запросов: 23.