Russian Qt Forum
Ноябрь 01, 2024, 05:30
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Программирование
>
Общий
>
TDD
Страниц:
1
[
2
]
3
4
...
6
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: TDD (Прочитано 38334 раз)
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: TDD
«
Ответ #15 :
Август 06, 2015, 23:33 »
Вы тут несете какую-то хуйню. Покрытие тестами проверяется анализаторами, их кучи. Из практики - у нас те, кто не писал тесты (не надо, кстати, путать ТДД и написание тестов в принципе) ловили баги от отдела тестирования, исправляли, ловили баги от отдела тестирования, и так бесконено. Те, кто сразу писал тесты, брали и переходили к другой задаче, пока первые не могли закончить.
Записан
Bepec
Гость
Re: TDD
«
Ответ #16 :
Август 06, 2015, 23:42 »
Т.е. ситуаций что тест работал неправильно не было?
PS тут собственно и ждем мнения человека их использующего.
«
Последнее редактирование: Август 06, 2015, 23:44 от Bepec
»
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: TDD
«
Ответ #17 :
Август 07, 2015, 09:23 »
Цитата: Авварон от Август 06, 2015, 23:33
Вы тут несете какую-то хуйню.
Такие реплики только роняют Вас ниже плинтуса, убедительность же их нулевая
Цитата: Авварон от Август 06, 2015, 23:33
Покрытие тестами проверяется анализаторами, их кучи.
Какими "анализаторами"? Из какой "кучи"? Хз
Цитата: Авварон от Август 06, 2015, 23:33
Из практики - у нас те, кто не писал тесты (не надо, кстати, путать ТДД и написание тестов в принципе) ловили баги от отдела тестирования, исправляли, ловили баги от отдела тестирования, и так бесконено. Те, кто сразу писал тесты, брали и переходили к другой задаче, пока первые не могли закончить.
Ага, еще и отдел тестирования (видать немало народу пригрелось). О том что тесты нужны я и сам знаю. Но тесты сами по себе - не TDD. Там утверждается о "разработке на основе тестов", о "движении вперед маленькими, но надежными(!) шагами". Я. право, не представляю как это на практике.
Ну хорошо, вот задача которую здесь делали многие - чтение obj файла. Это очень простой формат, полагаем что читаем только вертексы и фейсы, а материалы и др навороты игнорируем. Написать это час с нуля по
описанию
. И что? Как это должно быть "с методом TDD"? Как двигаться "тест за тестом"? Если такой пример слишком сложен - приведите свой
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: TDD
«
Ответ #18 :
Август 07, 2015, 11:01 »
Цитата: Bepec от Август 06, 2015, 23:42
Т.е. ситуаций что тест работал неправильно не было?
Ну работает неправильно, берете и исправляете тест. Это очень редкая ситуация - как раз на этапе стыковки теста и кода вы вычищаете баги и там и там. Зачем для этого нужны тесты на тесты? Люди типа вас, наверное, и придумали autotools - генератор для генератора для генератора. А, ну и тесты должны быть максимально простыми в начале. Я хз сколько неинициализированных переменных я выявил банальным тестом на дефолтвалуе/геттер/сеттер.
Цитата: Igors от Август 07, 2015, 09:23
Такие реплики только роняют Вас ниже плинтуса, убедительность же их нулевая
Ну я не знаю как еще реагировать на людей, делающих заявы из серии "я в школе не учился, мне это в жизни ни разу не пригодилось"
Цитата: Igors от Август 07, 2015, 09:23
Какими "анализаторами"? Из какой "кучи"? Хз
Вроде бы, мы CppCheck юзали. Там было покрытие построчное/процентное.
Цитата: Igors от Август 07, 2015, 09:23
Ага, еще и отдел тестирования (видать немало народу пригрелось). О том что тесты нужны я и сам знаю. Но тесты сами по себе - не TDD. Там утверждается о "разработке на основе тестов", о "движении вперед маленькими, но надежными(!) шагами". Я. право, не представляю как это на практике.
Ну хорошо, вот задача которую здесь делали многие - чтение obj файла. Это очень простой формат, полагаем что читаем только вертексы и фейсы, а материалы и др навороты игнорируем. Написать это час с нуля по
описанию
. И что? Как это должно быть "с методом TDD"? Как двигаться "тест за тестом"? Если такой пример слишком сложен - приведите свой
Лол, то есть у вас даже отдела тестирования нет? Какое счастье, что люди типа вас не работают на биржах/не пишут ПО для АЭС/самолетов.
Ну вы АПИ набросайте для начала. Навскидку - скормить пустой файл, невалидный файл, файл только с вертексами, только с фейсами, с тем и тем, файл с наворотоами.
Записан
Tuxford
Гость
Re: TDD
«
Ответ #19 :
Август 07, 2015, 11:24 »
Цитата: Racheengel от Август 06, 2015, 12:03
ТДД - вещь, придуманная маркетологами, поскольку легко позволяет вдвое увеличить стоимость проекта для заказчика с аргументами о, якобы, более стабильном и безопасном коде. В действительности же время разработки увеличивается на время поддержки тестов в живом состоянии, что означает, фактически, их переделывание в случае рефакторинга и добавления новых фич. Ну а позитив в том, что фирма, использующая ТДД, создает рабочие места для сотрудников-тестеров, которые будут заниматься только тестами и не отвлекать разработчиков от процесса разработки
Тогда почему очень много опенсорс проектор использую ТДД? Не находите противоречия.
Если на то пошло, то много времени тратится в начале. Потом меньше. Я уже писал почему.
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: TDD
«
Ответ #20 :
Август 07, 2015, 12:52 »
Цитата: Tuxford от Август 07, 2015, 11:24
Тогда почему очень много опенсорс проектор использую ТДД? Не находите противоречия.
Не нахожу. Опенсорс не значит бесплатно. Вернее, оно то бесплатно для конечного пользователя, но само внедрение технологии ТДД и ее поддержка - очень даже недешевое удовольствие. На моей прошлой фирме был печальный опыт, когда "верхнее" начальство повелось на обещания маркетологов и приобрело "в целях безопасности" мегамонстра, с которым потом долго мучались программисты. Семинары, обучения, техподдержка - для фирмы это вылилось в немалую сумму. Кстати, в итоге проект закрыли...
К тому же я не знаю ни одного известного проекта, например, который бы был полностью некоммерческим и использовал каноничный ТДД. Просто ТДД по определению требует бюджет, который может значительно превышать стоимость разработки продукта.
Записан
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
Сообщений: 11445
Re: TDD
«
Ответ #21 :
Август 07, 2015, 14:01 »
Цитата: Авварон от Август 07, 2015, 11:01
Ну вы АПИ набросайте для начала. Навскидку - скормить пустой файл, невалидный файл, файл только с вертексами, только с фейсами, с тем и тем, файл с наворотоами.
Ну как-то не слышно уверенности в голосе
Никак не пойму что же я должен "тестить"-то? Ну создал пустой файл (может лучше только с комментами?) И что? Какую часть ридера я должен иметь на этот момент разработки? (это я как-то пытаюсь связать концы с концами)
Что-то мне это начинает напоминать язык где все время приводится один пример, и там выходит что Мухтар... собака! Ну и типа "предикаты". Здесь тоже, тесты-тесты, а понту/толку
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: TDD
«
Ответ #22 :
Август 07, 2015, 14:14 »
Igors, ты просишь сейчас научить тебя удаленно, но это слишком сложно сделать на форуме. Поищи на ютубе видеоуроки по TDD, где человек комментирует свои действия. Или найди человек в своем городе, который практикует TDD и захочет тебе показать, что это такое. А этот топик сейчас очень напоминает общение немого со слепым.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Tuxford
Гость
Re: TDD
«
Ответ #23 :
Август 07, 2015, 14:45 »
Цитата: Racheengel от Август 07, 2015, 12:52
Цитата: Tuxford от Август 07, 2015, 11:24
Тогда почему очень много опенсорс проектор использую ТДД? Не находите противоречия.
Не нахожу. Опенсорс не значит бесплатно. Вернее, оно то бесплатно для конечного пользователя, но само внедрение технологии ТДД и ее поддержка - очень даже недешевое удовольствие. На моей прошлой фирме был печальный опыт, когда "верхнее" начальство повелось на обещания маркетологов и приобрело "в целях безопасности" мегамонстра, с которым потом долго мучались программисты. Семинары, обучения, техподдержка - для фирмы это вылилось в немалую сумму. Кстати, в итоге проект закрыли...
Корень ошибки - дорого. Неправда. Точнее только половина правды. В начале действительно так, в результате - затраты меньшые. Возможно на вашей конторе направильно походили. Это не является доказательством неэффективности ТДД.
Цитата: Racheengel от Август 07, 2015, 12:52
К тому же я не знаю ни одного известного проекта, например, который бы был полностью некоммерческим и использовал каноничный ТДД. Просто ТДД по определению требует бюджет, который может значительно превышать стоимость разработки продукта.
1. ТДД не может быть каноническим. В каждом случае что-то нужно упустить, что-то добавить
2. Что такое полностью некомерческий продукт?
3. По поводу бюджета, я уже писал, что это не увеличивает, кроме случаев когда все изчисляется в строках кода и пр. извращенными метриками.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: TDD
«
Ответ #24 :
Август 07, 2015, 14:45 »
Цитата: Пантер от Август 07, 2015, 14:14
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
Сообщений: 5876
Жаждущий знаний
Re: TDD
«
Ответ #25 :
Август 07, 2015, 15:03 »
Цитата: Igors от Август 07, 2015, 14:45
Цитата: Пантер от Август 07, 2015, 14:14
Igors, ты просишь сейчас научить тебя удаленно, но это слишком сложно сделать на форуме. Поищи на ютубе видеоуроки по TDD, где человек комментирует свои действия. Или найди человек в своем городе, который практикует TDD и захочет тебе показать, что это такое. А этот топик сейчас очень напоминает общение немого со слепым.
Я не прошу писать тонны кода - просто "на пальцах", простом примере объяснить что к чему. Что это за метод если, оказывается, это "слишком сложно сделать"? И я никого не заставляю меня учить - на нет и суда нет
Вот лично мне конкретно влом сейчас сидеть и расписывать тебе пример по шагам, тем более в книге, которую я тебе рекомендовал, это уже сделано (причем несколько раз).
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: TDD
«
Ответ #26 :
Август 07, 2015, 16:31 »
Цитата: Пантер от Август 07, 2015, 15:03
Вот лично мне конкретно влом сейчас сидеть и расписывать тебе пример по шагам, тем более в книге, которую я тебе рекомендовал, это уже сделано (причем несколько раз).
Я не заставляю Вас что-то вообще для меня делать
Книгу читали - уже хорошо
. Я тоже много чего читаю (пролистываю) но пользоваться всем что прочитал не спешу. Хотелось бы услышать мнение кто юзает на практике - но тут (пока) дальше общих слов дело не идет
Записан
Tuxford
Гость
Re: TDD
«
Ответ #27 :
Август 07, 2015, 17:20 »
Доводов было предостаточно, если Вы их не видите, то что можно поделать?
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: TDD
«
Ответ #28 :
Август 07, 2015, 18:24 »
Цитата: Tuxford от Август 07, 2015, 14:45
Корень ошибки - дорого. Неправда. Точнее только половина правды. В начале действительно так, в результате - затраты меньшые. Возможно на вашей конторе направильно походили. Это не является доказательством неэффективности ТДД.
Хорошо, посчитаем просто. Пусть Xр - стоимость разработки (без ТДД), плюс Хт - стоимость тестирования по окончанию разработки, плюс Хс - стоимость саппорта. Тогда себестоимость проекта будет считаться как X = Xp+Xт+Xc.
С применением ТДД необходимо добавить Xтдд - время разработки и поддержки тестов, плюc Хтддс - время внедрения и поддержки ТДД-технологии (сюда идут как семинары, обучения, так и издержки на администрирование системы тестов). Имеем X = Xp+Xт+Xc+Xтдд+Хтддс. А как известно, Xтдд+Хтддс может быть >= Xp.
Извините, ни быстрее, ни дешевле не получается...
Цитата: Tuxford от Август 07, 2015, 14:45
1. ТДД не может быть каноническим. В каждом случае что-то нужно упустить, что-то добавить
Как и все вокруг.
Цитата: Tuxford от Август 07, 2015, 14:45
2. Что такое полностью некомерческий продукт?
Имеется в виду проект, который делается на чистом энтузиазме и не ставит цели прямо или косвенно приносить прибыль. Конечно, тут плюс в том, что и время на проект неограничено, и тогда можно развернуться в ТДД по полной, написав тесты на каждый метод каждого класса. Но тогда есть риск, что проект никогда не выйдет из стадии тестирования.
Цитата: Tuxford от Август 07, 2015, 14:45
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
Гость
Re: TDD
«
Ответ #29 :
Август 07, 2015, 18:45 »
Цитата: Авварон от Август 07, 2015, 11:01
Лол, то есть у вас даже отдела тестирования нет? Какое счастье, что люди типа вас не работают на биржах/не пишут ПО для АЭС/самолетов.
Представь, нет отдела тестирования.
И да, писал по для средств защиты гос. границ/ АЭС нашей родины
И могу гарантировать, что в других смежных отделах, где средства защиты разрабатывались, тоже нет отдела тестирования...
Трудно заиметь отдел тестирования, если ведущий инженер-программист получает 25к. Собственно это и было причиной моего ухода (я не был ведущим, я получал меньше).
Использующих ТДД просят "просто" рассказать о преимуществах и минусах на примере. Пока что видно нежелание даже поднимать эту тему.
Ссылаться на учебники можно и нужно, но не по такому вопросу.
От вас просят взять свои знания, сплетённые с опытом применения ТДД и сделать выжимку этих знаний, а не ссылаться на книги с чистой теорией.
Нет, понятно что "сложно сказать просто о сложном" и это невозможно без глубокого знания предмета. Но именно таких людей, которые глубоко знают предмет и просим ответить.
PS я вот к примеру не смог ответить на вопрос - как сделать тест, имитирующий реакцию пользователя (щелчок кнопок, глобальные клавиши, открытие нескольких окон, ввод данных, запись данных).
То ли для такого теста надо написать обертку, позволяющую имитировать эти действия, но в таком случае тест не будет чистым - будет работать обертка, а не основные механизмы программы. Тем более обертка должна будет знать "всё обо всех, что выльется в написание такого механизма для каждого окна/действия"
То ли ТДД рекомендует разбить это на простые действия, но тогда смысл тестов исчезает - проверяется не комплекс, а отдельные части.
PPS если ты чем то пользуешься и не понимаешь принципов на которых это работает и чем полезно - значит ты обезъяна с гранатой, разбивающая кокос.
PPPS заканчивая поток сознания -
Вы предлаете прочитать книгу - многопоточное программирование я осваивал по книгам, в результате были сотни неудачных попыток и в результате одна работающая комбинация(со скрытой гонкой потоков, как оказалось потом).
А мы просим выдержку, опыт + теория - а вот общение с специалистом (2 часа) + листок бумажки пояснил мне всё.
Записан
Страниц:
1
[
2
]
3
4
...
6
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...