|
Про TDD
|
|||
---|---|---|---|
#18+
F#Это надо обосновать - почему тестирование только отдельных кусков херит всю идею.Потому что TDD - это методология, сначала пишешь тест, потом рабочий код, который подтверждает, что тест прошёл. Если половина кода опирается на ручное тестирование, то от методологии остаются рожки-да-ножки. На мой взгляд. F#Прочитайте про MVVM и как там работают с диалогами.вот по этому я и привёл кейс, где нет никаких диалогов. Есть большой и толстый грид, динамически меняющийся в зависимости от пользовательского ввода, времени суток, фаз луны и ещё кучи всего того, что бизнес считает важным. Как такое тестировать автоматически и дёшево я понять не могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 13:55 |
|
Про TDD
|
|||
---|---|---|---|
#18+
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 Первые два пункта дают уверенность что отдельные части (модули) работают правильно, тестирование взаимодействия модулей - тестируется отдельно, в соответствии со спецификацией. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 14:19 |
|
Про TDD
|
|||
---|---|---|---|
#18+
Гхостик2. Тестируешь gui на правильность отображения стиля по условию, в общем виде. expression(fields, params) -> style вот это легко написать в общем виде, но очень дорого в смысле создания тестового фреймворка. И я пока не вижу выгоды от его создания. Глазами посмотреть дешевле на порядок. Вот в этом и проблема TDD. Имеет ли смысл в него ввязываться, окупится ли он в обозримом будущем, а не при жизни моих внуков )) Это как со счётчиками газа. При текущей цене в 10р за месяц время окупаемости его установки приближается к тысячелетию )) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 14:41 |
|
Про TDD
|
|||
---|---|---|---|
#18+
egorychГхостик2. Тестируешь gui на правильность отображения стиля по условию, в общем виде. expression(fields, params) -> style вот это легко написать в общем виде, но очень дорого в смысле создания тестового фреймворка. И я пока не вижу выгоды от его создания. Глазами посмотреть дешевле на порядок. Вот в этом и проблема TDD. Имеет ли смысл в него ввязываться, окупится ли он в обозримом будущем, а не при жизни моих внуков )) ... А что тут проблемного? В случае вашего "толстого грида", к каждому объекту (строке то бишь) добавляется enum-атрибут, типа WarningLevel (SUCCESS, WARNING, ERROR...). В тестах проверяете, что при sysdate >= pay_date значение WarningLevel выставляется в ERROR. Вот и вся бизнес-логика. А как грид (он же View) будет отображать этот атрибут - дело десятое. Сейчас хотим цветом, потом иконкой, потом заказчик захочет, чтоб пищало... ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 16:18 |
|
Про TDD
|
|||
---|---|---|---|
#18+
ТДД - фигня про гуй уже говорили а как проверить - правильно ли мой метод рассчитал расписание работ на 50 станков на месяц на 10000 работ? правильный ли я СКЛ генерирую по модели? (а про эффективность воще молчу - расписание можно считать 10 часов и 2 минуты, СКЛ может быть компактным или 7этажным) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 16:58 |
|
Про TDD
|
|||
---|---|---|---|
#18+
хе, взяли тут прогера тира он будет писать автотесты от он пытается проверить - правильную ли форму сгенерировала прога :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 17:01 |
|
Про TDD
|
|||
---|---|---|---|
#18+
egorych[Если половина кода опирается на ручное тестирование, то от методологии остаются рожки-да-ножки. На мой взгляд. Если у вас половина кода во view, вероятно у вас там живет и часть бизнес логики или модели представления. Не говоря о том, что view тоже можно тестировать автоматически. вот по этому я и привёл кейс, где нет никаких диалогов. Тогда прочитайте про то как тестируют viewmodel безо всяких диалогов. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 18:51 |
|
Про TDD
|
|||
---|---|---|---|
#18+
ViPRosТДД - фигня про гуй уже говорили На это уже ответили. а как проверить - правильно ли мой метод рассчитал расписание работ на 50 станков на месяц на 10000 работ? Приведите пример функционального требования к модулю, который нельзя проверить меньшим количеством работ и станков. правильный ли я СКЛ генерирую по модели? Что такое СКЛ? (а про эффективность воще молчу - расписание можно считать 10 часов и 2 минуты, СКЛ может быть компактным или 7этажным) Прочитайте букварь какой-нибудь про TDD чем функциональные требования отличаются от нефункциональных, какие тесты хорошие, какие плохие test smells и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 18:58 |
|
Про TDD
|
|||
---|---|---|---|
#18+
F#, смысл именно в том, что на больше 5 станков и 10 работ чек не сможет вручную составить "правильное" расписание СКЛ = SQL запрос видали мы все эти "технологии" ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 19:43 |
|
Про TDD
|
|||
---|---|---|---|
#18+
раньше все проги сдавались на тестовом примере (контрольном), так вот проги кроме этого и не умели ничего так что проехали это лет 40 назад ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2015, 19:46 |
|
Про TDD
|
|||
---|---|---|---|
#18+
ViPRosF#, смысл именно в том, что на больше 5 станков и 10 работ чек не сможет вручную составить "правильное" расписание При все уважении, это не является примером функционального требования. СКЛ = SQL запрос Стендс фор Структуред Квери Лангведж? Ундерстанд! Вообще говоря, трансляция вполне является классической удобной для тестирования областью. Не думаю, что ваш транслятор модели в SQL сложнее какого-нибудь компилятора C++. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2015, 09:01 |
|
Про TDD
|
|||
---|---|---|---|
#18+
ViPRosраньше все проги сдавались на тестовом примере (контрольном), так вот проги кроме этого и не умели ничего так что проехали это лет 40 назад А если сдавать без тестовых примеров то не работало вообще ничего? TDD это тоже самое, только с той разницей, что вы сами себе приемщик в масштабе модуля и пишете контрольные примеры пока не сочтете работу завершенной. :) Вообще, автоматическое тестирование не отменяет ручное. Ручное просто сосредатаяивается на usability, поиске новых неизведанных багов, а автомат берет на себя рутину - поиск регрессий например. Есть интересная книжка How Google tests software - там можно почитать, как они тестируют хром. Причем именно рендеринг страничек. Так что UI тоже поддается автоматизации. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2015, 09:09 |
|
Про TDD
|
|||
---|---|---|---|
#18+
kmawWhite OwlTDD это забавный зверек пригодный для расчетных задач. Но в большинстве случаев мы пишем что-то работающее с пользовательскими интерфейсами, а для этого чрезвычайно сложно создать автоматический тест. Поэтому и TDD распространения не получил. Но если у тебя задача типа взять один файл и превратить его в другой - то TDD становится чрезвычайно удобным. Можно даже утверждать что для любых конверторов TDD это наиболее естественный процесс разработки. Но для любых приложений с GUI это уже практически неприменимо. Ваш ответ скорее против, чем за TDD, как мне кажется. меня больше интересует, как этот TDD, работает в обычных бизнес-приложениях. там все уже известно - что и как. а бизнес логика - именно то что есть "бизнес-логика" - та часть, которую надо неизбежно говнокодить - как тут это TDD имеет место быть? часто пишут в интернетах: вот контроллер, вот репозиторий. но это как-то мимо всев обычных бизнес-приложениях работает BDD ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2015, 10:55 |
|
Про TDD
|
|||
---|---|---|---|
#18+
egorychДохтаРЯ прошу прощения , но последние бестпрактисы гласят что мухи ( гуй ) отдельно , а котлеты ( бизнеслогика ) отдельно.это не бестпрактикс, это идеи теоретиков. "если текущая дата превышает ожидаемую дату оплаты, то строку поставки необходимо выделить красным цветом" - как тебе такой кейс? и таких кейсов - миллион, и все они - бизнес-логика в гуе.Перевести на Gherkin и реализовать тест. http://rsdn.ru/article/testing/WebTest.xml ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2015, 10:59 |
|
Про TDD
|
|||
---|---|---|---|
#18+
F#egorychпропущено... Раскрашиваение по условию вполне тестируется модульным тесто модели представления.используя Jasmine например ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2015, 11:14 |
|
Про TDD
|
|||
---|---|---|---|
#18+
F#Есть интересная книжка How Google tests software - там можно почитать, как они тестируют хром. Причем именно рендеринг страничек. Так что UI тоже поддается автоматизации.+1 за книжку :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2015, 11:15 |
|
Про TDD
|
|||
---|---|---|---|
#18+
F#, skyANA, спасибо за ссылки ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2015, 18:38 |
|
Про TDD
|
|||
---|---|---|---|
#18+
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 есть такое перевод книжки на русский ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2015, 19:06 |
|
Про TDD
|
|||
---|---|---|---|
#18+
F#Многие считают, что основная ценность тестов не собственно в проверке функциональности, а в проверке дизайна: Если трудно писать модульные тесты, значит модели плохо изолированы друг от друга и надо рефакторить. Именно! В итоге, в погоне за слабой связанностью возникают тысячи интерфейсов, внедряются IoC/DI-фреймворки, количество кода растёт... Иногда это к лучшему, иногда - наоборот. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2015, 22:43 |
|
Про TDD
|
|||
---|---|---|---|
#18+
Конечно, все надо применять в меру. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2015, 14:57 |
|
Про TDD
|
|||
---|---|---|---|
#18+
White OwlTDD это забавный зверек пригодный для расчетных задач. Но в большинстве случаев мы пишем что-то работающее с пользовательскими интерфейсами, а для этого чрезвычайно сложно создать автоматический тест. Поэтому и TDD распространения не получил. Но если у тебя задача типа взять один файл и превратить его в другой - то TDD становится чрезвычайно удобным. Можно даже утверждать что для любых конверторов TDD это наиболее естественный процесс разработки. Но для любых приложений с GUI это уже практически неприменимо. для танкистов расскажите слово автоматический тест - это важно или нет? а если я юнит-тесты руками пишу это тдд? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 17:30 |
|
Про TDD
|
|||
---|---|---|---|
#18+
MasterZiv. Если вы делаете продукт -- там нужны тесты, и юнит, и функциональные, и производительности , и вообще всякие. Если вы делаете софт как сервис, там и тесты не всегда и вдруг будут, и возможно писать их не нужно вообще, из экономических соображений -- легче и быстрее ошибку исправить и выкатить новую версию, чем создавать тесты. эта. в чем разница между продуктом и сервисом, в котором тесты не надо писать? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 17:33 |
|
Про TDD
|
|||
---|---|---|---|
#18+
tchingizслово автоматический тест - это важно или нет? а если я юнит-тесты руками пишу это тдд?Да писать их можно хоть наемными студентами. А вот запускать эти тесты ты должен каждый раз как сделал изменение в коде. Желаешь делать это ручками? С риском забыть запустить пару-тройку тестов из всей массы подготовленных тестов? Ну вперед и с песней. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 18:39 |
|
Про TDD
|
|||
---|---|---|---|
#18+
ок, не автоматический тест, а автоматически запускаемый тест после модификации кода. а без автоматического запускания это тдд или нет? авторЖелаешь делать это ручками? С риском забыть запустить пару-тройку тестов из всей массы подготовленных тестов? А кому щас легко? Ну, тут вообще предлагали не писать юнит-тесты. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 22:13 |
|
Про TDD
|
|||
---|---|---|---|
#18+
tchingiz, авторэта. в чем разница между продуктом и сервисом, в котором тесты не надо писать? Я вообще слышал что для сервисов и continuous delivery тесты - самое то. Когда надо часто модифицировать тут уж не до стадии стабилизации и автоматическое тестирование очень важно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 22:57 |
|
|
start [/forum/topic.php?fid=16&msg=39006282&tid=1339801]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
183ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 306ms |
0 / 0 |