Войти
ФлеймФорумПрограммирование

Почему хабр торчит от TDD? (3 стр)

Страницы: 1 2 3 4 540 Следующая »
#30
20:26, 2 фев. 2013

Kartonagnick
хорошо, давай перейдем от теории к практике, как ты предлагаешь автоматически протестировать, что работает рендер, или какие-то фичи SSAO, тени, HDR и т.д.? только не говори что побайтово сравнивать картинки.

#31
20:32, 2 фев. 2013

thevlad
> хорошо, давай перейдем от теории к практике, как ты предлагаешь автоматически
> протестировать, что работает рендер, или какие-то фичи SSAO, тени, HDR и т.д.?
> только не говори что побайтово сравнивать картинки.


Есть два вида тестирования:
- при разработке. Там тесты вперед реализации. Поэтому, априори учитываются все возможности для проверок
- уже существующая механика. Здесь для нужд тестов делаются костыли


Если хочешь совсем практики, тогда провозгласи совсем практическую разработку. Я понятия не имею, что такое SSAO and HDR

#32
20:39, 2 фев. 2013

Kartonagnick
>Есть два вида тестирования:
>- при разработке. Там тесты вперед реализации. Поэтому, априори учитываются все возможности для проверок

Отлично, вот есть к примеру 3д картинка созданная рендером, есть фича - shadowmap тени, как ее предлагается автоматически оттестировать, притом согласно заветам TDD вперед реализации (но я не вредный, меня даже и после устроит)?

#33
20:44, 2 фев. 2013

thevlad
> Отлично, вот есть к примеру 3д картинка созданная рендером, есть фича -
> shadowmap тени, как ее предлагается автоматически оттестировать, притом
> согласно заветам TDD вперед реализации (но я не вредный, меня даже и после
> устроит)?

Предположим, что shadowmap работает некорректно. Как вы это определяете?
Я имею ввиду программно?

Существует способ внутри программы определить, все ли с нею в порядке?

Если да - значит можно сделать тест.

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

#34
20:52, 2 фев. 2013

thevlad
> Отлично, вот есть к примеру 3д картинка созданная рендером, есть фича -
> shadowmap тени, как ее предлагается автоматически оттестировать, притом
> согласно заветам TDD вперед реализации (но я не вредный, меня даже и после
> устроит)?

Для 3D графики проблематично... А вот для какого-нибудь моделирования в 3D можно подобрать тесты...

#35
20:55, 2 фев. 2013

Kartonagnick
>Если да - значит можно сделать тест.
Смотри, ты предлагаешь тестами обкладывать use case, обычно это называется функциональным тестами, и тут есть несколько проблем:
1) какая-то функция может возникать лишь в результате сложного взаимодействия некоторого набора объектов а это может быть десятки тысяч строк кода
2) не все такие сложные взаимодействия разбиваются на простые легко тестируемые "шаги"
3) иногда, даже автоматический функциональный тест, который проверяет результат, не сделаешь, разумным образом, как в примере с рендером и тенями

>Если нет - значит механика ущербна, и программа не контролирует собственные действия и из последствия.
Теоретически можно сделать что угодно, но для этого возможно придется написать 10х кода для такого теста. Гораздо проще сделать кусок сцены с разными фичами, которую посмотрит человек и скажет "вот здесь у вас картинка гавно". это не говоря уже о такой теоретике кайфа как TDD.

#36
20:57, 2 фев. 2013

thevlad
> 1) какая-то функция может возникать лишь в результате сложного взаимодействия
> некоторого набора объектов а это может быть десятки тысяч строк кода

Не понял. Что значит "возникнуть" ?

#37
21:01, 2 фев. 2013

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

#38
21:03, 2 фев. 2013

thevlad
> Просто, "фанаты TDD" живут в каком-то "мире эльфов" и это видно не вооруженным
> взглядом.

TDD придумали для запудривания мозгов ? :)

#39
21:06, 2 фев. 2013

thevlad, ты не понял. Сначала тесты, потом мех. А не наоборот. Ты мыслишь наизнанку

#40
21:06, 2 фев. 2013

Kartonagnick
>Не понял. Что значит "возникнуть" ?
ну вот use case, жмет юзверь к примере, на кнопку, в результате пусть получает какую-то картинку, мы автоматически проверяем функцию - что картинка правильная, это функциональный тест, внутри эта функция "сделать картинку при нажатии на кнопку" может быть реализована взаимодействием десятка классов и десятков тысяч строк кода, при этом валидность промежуточных этапов алгоритма, проверить, может быть крайне не тривиально, потому что процесс сам по себе сложный.

#41
21:08, 2 фев. 2013

thevlad
> Отлично, вот есть к примеру 3д картинка созданная рендером, есть фича -
> shadowmap тени, как ее предлагается автоматически оттестировать, притом
> согласно заветам TDD вперед реализации (но я не вредный, меня даже и после
> устроит)?
Проверяй не содержимое шадоу мапы, а последовательность действий по ее генерации: был ли установлен ли рендер таргет, задана матрица проекции, установлены ли шейдеры шадоумаппинга, был ли вызов scene->Draw и т.п.

#42
21:11, 2 фев. 2013

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

Я нефига тебя не понял.
Теперь представь себе разработку изначально с тестами.
Что именно ты бы стал проверять для данной ситуации? Каков дизайн чего именно должен быть, для возможности проведения подобного теста.

Есть кнопка, есть реакция.

Тест:

кнопка, тебя нажали
кнопка ты в нужном состоянии?

если да - тест успешен
если нет - провалился.

#43
21:16, 2 фев. 2013

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

#44
21:18, 2 фев. 2013

@!!ex
> Ясно. Я понял почему я не понимаю юнит тесты. Они просто в большинстве наших
> задач не применимы, вот и создалось ощущение, что они вообще ни на что не
> годятся.
> Ок, сойдемся на том, что это годное решение но не для рендера.


Ваш рендер нельзя проверить программно?  Только глазками?
Потому что если второе- это плохо.

Страницы: 1 2 3 4 540 Следующая »
ФлеймФорумПрограммирование

Тема в архиве.