powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Про TDD
25 сообщений из 134, страница 2 из 6
Про TDD
    #39004431
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#Это надо обосновать - почему тестирование только отдельных кусков херит всю идею.Потому что TDD - это методология, сначала пишешь тест, потом рабочий код, который подтверждает, что тест прошёл. Если половина кода опирается на ручное тестирование, то от методологии остаются рожки-да-ножки. На мой взгляд.

F#Прочитайте про MVVM и как там работают с диалогами.вот по этому я и привёл кейс, где нет никаких диалогов. Есть большой и толстый грид, динамически меняющийся в зависимости от пользовательского ввода, времени суток, фаз луны и ещё кучи всего того, что бизнес считает важным. Как такое тестировать автоматически и дёшево я понять не могу.
...
Рейтинг: 0 / 0
Про TDD
    #39004463
Гхостик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorychЕсть большой и толстый грид, динамически меняющийся в зависимости от пользовательского ввода, времени суток, фаз луны и ещё кучи всего того, что бизнес считает важным. Как такое тестировать автоматически и дёшево я понять не могу.
1. Тестируешь запросы. Проверяешь правильность расчета вычисляемого поля: case when sysdate >= pay_date then 1 else 0 end wrong_pay_date
2. Тестируешь gui на правильность отображения стиля по условию, в общем виде. expression(fields, params) -> style
3. Тестируешь результат, это уже вне рамок модульного тестирования, доп. средствами автоматизации тестирования gui либо вручную. Проверяешь, фактически, правильность настройки правила wrong_pay_pate != 0 -> font.color=red

Первые два пункта дают уверенность что отдельные части (модули) работают правильно, тестирование взаимодействия модулей - тестируется отдельно, в соответствии со спецификацией.
...
Рейтинг: 0 / 0
Про TDD
    #39004489
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гхостик2. Тестируешь gui на правильность отображения стиля по условию, в общем виде. expression(fields, params) -> style
вот это легко написать в общем виде, но очень дорого в смысле создания тестового фреймворка. И я пока не вижу выгоды от его создания. Глазами посмотреть дешевле на порядок. Вот в этом и проблема TDD. Имеет ли смысл в него ввязываться, окупится ли он в обозримом будущем, а не при жизни моих внуков ))
Это как со счётчиками газа. При текущей цене в 10р за месяц время окупаемости его установки приближается к тысячелетию ))
...
Рейтинг: 0 / 0
Про TDD
    #39004601
Фотография Диез
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychГхостик2. Тестируешь gui на правильность отображения стиля по условию, в общем виде. expression(fields, params) -> style
вот это легко написать в общем виде, но очень дорого в смысле создания тестового фреймворка. И я пока не вижу выгоды от его создания. Глазами посмотреть дешевле на порядок. Вот в этом и проблема TDD. Имеет ли смысл в него ввязываться, окупится ли он в обозримом будущем, а не при жизни моих внуков ))
...


А что тут проблемного? В случае вашего "толстого грида", к каждому объекту (строке то бишь) добавляется enum-атрибут, типа WarningLevel (SUCCESS, WARNING, ERROR...).
В тестах проверяете, что при sysdate >= pay_date значение WarningLevel выставляется в ERROR. Вот и вся бизнес-логика.

А как грид (он же View) будет отображать этот атрибут - дело десятое. Сейчас хотим цветом, потом иконкой, потом заказчик захочет, чтоб пищало... )))
...
Рейтинг: 0 / 0
Про TDD
    #39004638
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТДД - фигня
про гуй уже говорили
а как проверить - правильно ли мой метод рассчитал расписание работ на 50 станков на месяц на 10000 работ?
правильный ли я СКЛ генерирую по модели?
(а про эффективность воще молчу - расписание можно считать 10 часов и 2 минуты, СКЛ может быть компактным или 7этажным)
...
Рейтинг: 0 / 0
Про TDD
    #39004643
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хе, взяли тут прогера тира он будет писать автотесты
от он пытается проверить - правильную ли форму сгенерировала прога :)
...
Рейтинг: 0 / 0
Про TDD
    #39004738
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
egorych[Если половина кода опирается на ручное тестирование, то от методологии остаются рожки-да-ножки. На мой взгляд.


Если у вас половина кода во view, вероятно у вас там живет и часть бизнес логики или модели представления. Не говоря о том, что view тоже можно тестировать автоматически.

вот по этому я и привёл кейс, где нет никаких диалогов.

Тогда прочитайте про то как тестируют viewmodel безо всяких диалогов.
...
Рейтинг: 0 / 0
Про TDD
    #39004744
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
ViPRosТДД - фигня
про гуй уже говорили


На это уже ответили.

а как проверить - правильно ли мой метод рассчитал расписание работ на 50 станков на месяц на 10000 работ?


Приведите пример функционального требования к модулю, который нельзя проверить меньшим количеством работ и станков.
правильный ли я СКЛ генерирую по модели?


Что такое СКЛ?

(а про эффективность воще молчу - расписание можно считать 10 часов и 2 минуты, СКЛ может быть компактным или 7этажным)

Прочитайте букварь какой-нибудь про TDD чем функциональные требования отличаются от нефункциональных, какие тесты хорошие, какие плохие test smells и т.д.
...
Рейтинг: 0 / 0
Про TDD
    #39004767
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#,

смысл именно в том, что на больше 5 станков и 10 работ чек не сможет вручную составить "правильное" расписание
СКЛ = SQL запрос
видали мы все эти "технологии"
...
Рейтинг: 0 / 0
Про TDD
    #39004771
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
раньше все проги сдавались на тестовом примере (контрольном), так вот проги кроме этого и не умели ничего
так что проехали это лет 40 назад
...
Рейтинг: 0 / 0
Про TDD
    #39004898
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
ViPRosF#,

смысл именно в том, что на больше 5 станков и 10 работ чек не сможет вручную составить "правильное" расписание


При все уважении, это не является примером функционального требования.

СКЛ = SQL запрос


Стендс фор Структуред Квери Лангведж? Ундерстанд!

Вообще говоря, трансляция вполне является классической удобной для тестирования областью. Не думаю, что ваш транслятор модели в SQL сложнее какого-нибудь компилятора C++.
...
Рейтинг: 0 / 0
Про TDD
    #39004900
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
ViPRosраньше все проги сдавались на тестовом примере (контрольном), так вот проги кроме этого и не умели ничего
так что проехали это лет 40 назад

А если сдавать без тестовых примеров то не работало вообще ничего?

TDD это тоже самое, только с той разницей, что вы сами себе приемщик в масштабе модуля и пишете контрольные примеры пока не сочтете работу завершенной. :)


Вообще, автоматическое тестирование не отменяет ручное. Ручное просто сосредатаяивается на usability, поиске новых неизведанных багов, а автомат берет на себя рутину - поиск регрессий например.

Есть интересная книжка How Google tests software - там можно почитать, как они тестируют хром. Причем именно рендеринг страничек. Так что UI тоже поддается автоматизации.
...
Рейтинг: 0 / 0
Про TDD
    #39004924
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawWhite OwlTDD это забавный зверек пригодный для расчетных задач. Но в большинстве случаев мы пишем что-то работающее с пользовательскими интерфейсами, а для этого чрезвычайно сложно создать автоматический тест. Поэтому и TDD распространения не получил.
Но если у тебя задача типа взять один файл и превратить его в другой - то TDD становится чрезвычайно удобным. Можно даже утверждать что для любых конверторов TDD это наиболее естественный процесс разработки.
Но для любых приложений с GUI это уже практически неприменимо.

Ваш ответ скорее против, чем за TDD, как мне кажется. меня больше интересует, как этот TDD, работает в обычных бизнес-приложениях. там все уже известно - что и как. а бизнес логика - именно то что есть "бизнес-логика" - та часть, которую надо неизбежно говнокодить - как тут это TDD имеет место быть? часто пишут в интернетах: вот контроллер, вот репозиторий. но это как-то мимо всев обычных бизнес-приложениях работает BDD
...
Рейтинг: 0 / 0
Про TDD
    #39004926
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychДохтаРЯ прошу прощения , но последние бестпрактисы
гласят что мухи ( гуй ) отдельно , а котлеты ( бизнеслогика ) отдельно.это не бестпрактикс, это идеи теоретиков.
"если текущая дата превышает ожидаемую дату оплаты, то строку поставки необходимо выделить красным цветом" - как тебе такой кейс? и таких кейсов - миллион, и все они - бизнес-логика в гуе.Перевести на Gherkin и реализовать тест.

http://rsdn.ru/article/testing/WebTest.xml
...
Рейтинг: 0 / 0
Про TDD
    #39004933
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#egorychпропущено...



Раскрашиваение по условию вполне тестируется модульным тесто модели представления.используя Jasmine например
...
Рейтинг: 0 / 0
Про TDD
    #39004937
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#Есть интересная книжка How Google tests software - там можно почитать, как они тестируют хром. Причем именно рендеринг страничек. Так что UI тоже поддается автоматизации.+1 за книжку :)
...
Рейтинг: 0 / 0
Про TDD
    #39005140
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#, skyANA, спасибо за ссылки
...
Рейтинг: 0 / 0
Про TDD
    #39005147
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
End-to-end тестированием через UI лучше не увлекаться.

Вот статья Фаулера о том как должна быть утра тестовая пирамида и почему: http://www.martinfowler.com/bliki/TestPyramid.html

Тесты надо уметь писать иначе это будет очень дорогое и не очень эффективное предприятие. Вот книжка про то, как писать тексты хорошо и что делать, если они написаны плохо: http://xunitpatterns.com/ предварительные версии материалов доступны онлайн.

У James Shore есть набор уроков по tdd, которые многие хвалят. Сам не смотрел http://www.jamesshore.com/Blog/Lets-Play/

Многие считают, что основная ценность тестов не собственно в проверке функциональности, а в проверке дизайна: Если трудно писать модульные тесты, значит модели плохо изолированы друг от друга и надо рефакторить.

Есть книжка на тему того, что делать с плохо структурированными программами http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052 есть такое перевод книжки на русский
...
Рейтинг: 0 / 0
Про TDD
    #39005177
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#Многие считают, что основная ценность тестов не собственно в проверке функциональности, а в проверке дизайна: Если трудно писать модульные тесты, значит модели плохо изолированы друг от друга и надо рефакторить.

Именно! В итоге, в погоне за слабой связанностью возникают тысячи интерфейсов, внедряются IoC/DI-фреймворки, количество кода растёт... Иногда это к лучшему, иногда - наоборот.
...
Рейтинг: 0 / 0
Про TDD
    #39005316
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
Конечно, все надо применять в меру.
...
Рейтинг: 0 / 0
Про TDD
    #39006237
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlTDD это забавный зверек пригодный для расчетных задач. Но в большинстве случаев мы пишем что-то работающее с пользовательскими интерфейсами, а для этого чрезвычайно сложно создать автоматический тест. Поэтому и TDD распространения не получил.
Но если у тебя задача типа взять один файл и превратить его в другой - то TDD становится чрезвычайно удобным. Можно даже утверждать что для любых конверторов TDD это наиболее естественный процесс разработки.
Но для любых приложений с GUI это уже практически неприменимо.
для танкистов расскажите

слово автоматический тест - это важно или нет?
а если я юнит-тесты руками пишу это тдд?
...
Рейтинг: 0 / 0
Про TDD
    #39006240
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv. Если вы делаете продукт -- там нужны тесты, и юнит, и функциональные, и производительности , и вообще всякие. Если вы делаете софт как сервис, там и тесты не всегда и вдруг
будут, и возможно писать их не нужно вообще, из экономических соображений -- легче и быстрее ошибку исправить и выкатить новую версию, чем создавать тесты.
эта. в чем разница между продуктом и сервисом, в котором тесты не надо писать?
...
Рейтинг: 0 / 0
Про TDD
    #39006282
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingizслово автоматический тест - это важно или нет?
а если я юнит-тесты руками пишу это тдд?Да писать их можно хоть наемными студентами. А вот запускать эти тесты ты должен каждый раз как сделал изменение в коде. Желаешь делать это ручками? С риском забыть запустить пару-тройку тестов из всей массы подготовленных тестов? Ну вперед и с песней.
...
Рейтинг: 0 / 0
Про TDD
    #39006368
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ок,
не автоматический тест, а автоматически запускаемый тест после модификации кода.

а без автоматического запускания это тдд или нет?
авторЖелаешь делать это ручками? С риском забыть запустить пару-тройку тестов из всей массы подготовленных тестов?
А кому щас легко?

Ну, тут вообще предлагали не писать юнит-тесты.
...
Рейтинг: 0 / 0
Про TDD
    #39006391
f#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
f#
Гость
tchingiz,

авторэта. в чем разница между продуктом и сервисом, в котором тесты не надо писать?

Я вообще слышал что для сервисов и continuous delivery тесты - самое то. Когда надо часто модифицировать тут уж не до стадии стабилизации и автоматическое тестирование очень важно.
...
Рейтинг: 0 / 0
25 сообщений из 134, страница 2 из 6
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Про TDD
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]