|
TDD (Разработка через тестирование) | ☑ | ||
---|---|---|---|---|
0
wangoff
07.02.16
✎
03:37
|
Камрады, всем доброй ночи!
Поделитесь опытом, знаете ли (быть может, сами практикуете), есть ли в стране герои, которые применяют TDD? Какие выводы, результаты и вообще? P.S. Чет не разобрался с веткой, прошу анафеме не предавать, секции "Разработка" или как-то так не нашел. |
|||
1
Злопчинский
07.02.16
✎
03:55
|
Tdd отстой
Рулит bdd Смотри silver bullet На ИС есть публикации Пока можно сказать так Все жти фишки применяются в основном командами которые пилят чтото с нуля Большей части одинэсников они нафиг не сдались Ибо на тех задачах на которых они сидят использование фишек существенно увеличивает время разработки. А клиенту фишки программеров пофиг Имхо Могу ошибаться |
|||
2
wangoff
07.02.16
✎
03:56
|
(1) Кстати, раз про Пулю заговорили...
Кто-нибудь обучался там? Есть впечатления? |
|||
3
Злопчинский
07.02.16
✎
03:58
|
Вот немного здесь
А ты правильно разрабатываешь на 1С? |
|||
4
wangoff
07.02.16
✎
03:58
|
(3)
Спасибо. Про BDD интересно. |
|||
5
Хранимая Процедура
09.02.16
✎
23:08
|
(0) - есть очень позитивный опыт. Но нужны хорошие инструменты. А они платны (wallaby.js)
(1) ты так говоришь, как будто понимаешь разницу между этими понятиями. |
|||
6
Хранимая Процедура
09.02.16
✎
23:10
|
BDD - это типа стиль написания ассертов, да?
а что там меняется из-за переименования понятия? |
|||
7
Aleksey
09.02.16
✎
23:11
|
(6) Самовнушение
|
|||
8
Хранимая Процедура
09.02.16
✎
23:12
|
Советую ознакомиться с гуру автотестов:
http://de.slideshare.net/orgeirIngvarsson/pptx8-38364112 http://de.slideshare.net/orgeirIngvarsson/tao-and-test-automation?related=1 и далее по ссылкам. Ах да, ты запомни: TDD практикуют только пассивные геи |
|||
9
Хранимая Процедура
09.02.16
✎
23:14
|
если серьезно, то TDD очень хорошо помогает, когда нужно разорвать зависимости (писать код в отрыве от базы данных, файловой системы, внешних сервисов) и при написании кода на какой нибудь динамической фигне типа JS.
|
|||
10
Хранимая Процедура
09.02.16
✎
23:15
|
я не понимаю смысла его использовать в 1С. что там можно писать по TDD?
|
|||
11
Хранимая Процедура
09.02.16
✎
23:18
|
и TDD обычно практикуется в эджайле, когда юнит тесты очень помогают другому человеку верифицировать код, при white box верифицировании.
Конфигурации для 1С разве дорабатываются в скраме? |
|||
12
Хранимая Процедура
09.02.16
✎
23:19
|
(7) - ну да, я тоже пишу в BDD стиле. Но книжки читаю по TDD.
|
|||
13
Хранимая Процедура
09.02.16
✎
23:21
|
||||
14
Хранимая Процедура
09.02.16
✎
23:34
|
||||
15
wangoff
10.02.16
✎
01:36
|
(14) А в 1Ч ты что делаешь? Самоутверждаешься, или готовишься войти в дело к выходу 1С 9.0?
|
|||
16
Хранимая Процедура
10.02.16
✎
09:35
|
(15) - я ничего не делаю. А ты что делаешь в моей ветке по ТДД? А ну быстро иди Месароша изучать.
Чтоб все антипаттерны юнит тестирования к вечеру выучил. А то ишь поразвелось тут умников, которые делают отладку ручную. |
|||
17
Хранимая Процедура
11.02.16
✎
11:37
|
> готовишься войти в дело к выходу 1С 9.0
а ты так говоришь, как будто девятке вся разработка будет вестись в TDD стиле. И большинство 1Сников к этому будут готовы. |
|||
18
Garykom
гуру
11.02.16
✎
11:41
|
(17) не будет 1С 9.0 в ближайшие 5 лет
потому что на java пилят вроде, а там проблема есть форкнут сразу |
|||
19
Хранимая Процедура
11.02.16
✎
12:21
|
(18) - да да да. нужно было пилить на Моне
|
|||
20
Garykom
гуру
11.02.16
✎
13:01
|
(19) хз шо за "Моне", но на Mono пилить тоже самое что и на java - форкнут аналогично
|
|||
21
artbear
11.02.16
✎
13:03
|
Есть герои по ТДД
(1) слишком сильное заявление. БДД и ТДД стоят довольно близко. просто часто ТДД считают именно разработкой мелких фич, мелких тестов, а это не так. |
|||
22
Хранимая Процедура
14.02.16
✎
22:27
|
(21) - а чем на самом деле является ТДД?
|
|||
23
Asmody
14.02.16
✎
22:44
|
(22) религией
|
|||
24
Aleksey
14.02.16
✎
22:45
|
(22) Только Для Девочек
Настоящие мужики таким не балуются |
|||
25
Asmody
14.02.16
✎
22:48
|
(24) Точно! Настоящие мужики используют метод СиБО: Сразу и Без Ошибок.
|
|||
26
Aleksey
14.02.16
✎
22:50
|
Поясните мне малограмотному картинку на вике про ТДД
https://ru.wikipedia.org/wiki/Разработка_через_тестирование https://upload.wikimedia.org/wikipedia/ru/b/b3/Test-driven-development-ru.png Алгоритм ТДД Пишем тест Если тест прошел, тогда ... пишем тест Т.е. если мы пишем тест сразу и без ошибок, то мы никогда не передем к написанию программы а будем вечно писать тест? Или я не прав? |
|||
27
Garykom
гуру
14.02.16
✎
22:51
|
(25) Метод кста превосходный.
Но ни у кого (исключения несколько на штук на несколько тысяч прогов) не получается без опыта десятков тысяч часов кодинга |
|||
28
Garykom
гуру
14.02.16
✎
22:53
|
(26) Не тест пишем сразу и без ошибок, а код сразу без ошибок.
Суть написали тест(ы), добились что код их проходит. Далее написали новый код и с 99% вероятностью тесты падают - потому что в тестах этот код "не тестится" он просто не прдусмотрен. Далее исправляем/пишем новые тесты и правим код пока не пройдут тесты и т.д. |
|||
29
Aleksey
14.02.16
✎
22:55
|
(28) Смотри картинку. Если тест НЕ прошел, тогда переходим к написанию кода
А если тест прошел, тогда переходим к написанию ТЕСТА,, Ты же пишешь наоброт Ну и кому верить, вики или тебе? |
|||
30
Garykom
гуру
14.02.16
✎
22:55
|
(28)+ это примерно как вместо того чтобы прыгать много раз не глядя (и потом возвращаться прыгая по другому),
перед каждым прыжком сначала смотрим туда ли мы попали для следующего прыжка и если попали при прыжке не туда то исправляем нашу позицию на правильную |
|||
31
Garykom
гуру
14.02.16
✎
22:56
|
(29) Нет, просто тест вперед пишут ))
Т.е. мы знаем какой код хотим написать и пишем тест который будет его проверять - а так как кода еще нет то тест то и не проходит )) |
|||
32
Garykom
гуру
14.02.16
✎
22:57
|
(31)+ возвращаясь к прыжкам это перед тем как прыгнуть мы сначала рисуем позицию кружок куда нуна прыгнуть
и если прыгнули не туда (тест не прошел) то назад и заново прыгаем )) |
|||
33
Garykom
гуру
14.02.16
✎
22:59
|
(32)+ т.е. будущий кружок это тест, а мы сча не в этом кружке стоим - тест перед прыжком (написанием кода) не прошел потому что еще не прыгали ))
|
|||
34
Aleksey
14.02.16
✎
23:00
|
Это я все понимаю, я не понимаю алгоритм на картинке , а точнее что такое "код" в данном контексте. Т.е. код чего,. теста или основной программы.?
|
|||
35
Garykom
гуру
14.02.16
✎
23:02
|
(33) "написать код" - основной программы,
"написать тест" - код теста в самом начале |
|||
36
Aleksey
14.02.16
✎
23:03
|
Ну насколько я понимаю в данном случае я просту вставляю в код фейковй заглушки которые возвращают нужный результат без всякого алгоритма, т.е. при написании теста я считаю что если тест прошел, значит все хорошо, и можно приступать к написанию кода, т.е. к замену фейковых заглушик на реальный алгоритм. Потом опять запускаю тест. Тест пройден - значит алгоритм рабочий
|
|||
37
Злопчинский
14.02.16
✎
23:03
|
я вот тоже как-то с трудом это на отвлеченных фразах/примерах понимаю... можно сказать так: пока не увижу как это работает вживую - не поверю...
|
|||
38
Злопчинский
14.02.16
✎
23:05
|
(36) итого: я подгоняю результат работы под правильный результат теста. дает ли это написание правильного кода? - хз... лочень сомневаюсь.. стоит только не так сформулировать тест и все... получится попа..?
|
|||
39
Garykom
гуру
14.02.16
✎
23:07
|
(36) Боюсь не понял главной фишки ))
Никаких фейковых заглушек, точнее сначала пишется тест который должен пройти "на заглушке", пустой код не проходит - пишем заглушку - тест прошел - пишем уже тест для не совсем заглушки - пишем код внутри заглушки |
|||
40
Garykom
гуру
14.02.16
✎
23:08
|
(39)+ в смысле "заглушки" снаружи это нормальный код сразу, просто внутри их тест не проверят пока, поэтому и заглушка
|
|||
41
Aleksey
14.02.16
✎
23:08
|
(38) Ну как бы основная фишка теста именно в последующем сопровождении. Когда Вася внес исправления и всё сломал.
И вот тест позволяет проверить что то что работало и сейчас работает. Не более того |
|||
42
Garykom
гуру
14.02.16
✎
23:09
|
(41) не только что просто сломал, а быстро понять в каком месте оно ломается
это нечто отладчика включенного сразу в код программы и контролирующего выполнение |
|||
43
Aleksey
14.02.16
✎
23:09
|
(39) А теперь смотри внимательно картинку. Тест прошел - > пишем тест, до тех по пока тест не будет проходить
|
|||
44
Aleksey
14.02.16
✎
23:13
|
(42) Проблема в том что оно работает только по маячкам. Если маячок не выставлен, то ты никогда не узнаешь что Вася что-то сломал.
Яркий пример типовые. Да 1С проверяет, но в качестве маячков у них пользователь с полными правами. Поэтому каждое изменения в коде у них проходит тест, но в реальности у пользователя с ограниченными правами программа не работает, в лучшем случае напишет просто ошибка доступа, в худшем программа закрывается с невнятной ошибкой |
|||
45
Garykom
гуру
14.02.16
✎
23:13
|
(43) Правильно! Тест на заглушке прошел, поэтому нужно написать тест для проверки кода внутри заглушки.
Причем такой тест чтобы "заглушка" его точно не прошла )) |
|||
46
Garykom
гуру
14.02.16
✎
23:14
|
(44) Это они пожмотили на покрытии тестами. Нуна же под всеми комбинациями наборов прав тестить - это доп время нехилое
|
|||
47
Aleksey
14.02.16
✎
23:15
|
(45) Что то я совсем запутался
|
|||
48
Garykom
гуру
14.02.16
✎
23:16
|
(47) -А можно утром стулья, а вечером деньги
- Можно, но деньги вперед! |
|||
49
Garykom
гуру
14.02.16
✎
23:17
|
(48)+ пока денег не хватает (тест проходит) - значит мало кода написали (мало денег дали)
|
|||
50
Garykom
гуру
14.02.16
✎
23:18
|
(49)+ *мало кода теста написали
|
|||
51
Aleksey
14.02.16
✎
23:19
|
ты говоришь одно, а на картинке вижу другое. При этом ты говоришь картинка правильная.
Правда я исхожу из видео про БДД из той ветки |
|||
52
Злопчинский
14.02.16
✎
23:19
|
(45) сто якорей вам в ... ;-)
если я буду писать такие тесты, чтобы заглушка не прошла - то заглущка будет целиком состоять из попыток пройти тест - но будет ли при этом рождаться функционально нужный пользователю код.??? |
|||
53
Garykom
гуру
14.02.16
✎
23:22
|
(52) да это есть такое TDD по сравнению с СиБО (25) на порядки медленнее, но он повышает вероятность правильности кода
|
|||
54
Aleksey
14.02.16
✎
23:24
|
И что удивительно, без неделю месяц обсуждаем, постоянно просим разобрать рабочий пример по шагам, но никто из сторонник метода так и не осилил, все только абстракциями разговаривают.
|
|||
55
Garykom
гуру
14.02.16
✎
23:36
|
Простой пошаговый пример:
1. Нужно написать функцию в которую передается в числа и операция между ними, и возвращается результат 2. Пишем тест Если МояФункция(число1, число2, операция) <> Неопределено Тогда ТестПрошел(); КонецЕсли; 3. Функции нету - тест свалится с "нет функции" 4. Пишем код Функция МояФункция(число1, число2, операция) Возврат Неопределено; КонецФункции 5. Тест не пройдет, можно писать дальше код 6. Пишем код Функция МояФункция(число1, число2, операция) Результат = Неопределено; Если операция = "+" Тогда Результат = число1 + число2; КонецЕсли; Возврат Результат; КонецФункции 7. тест прошел, нужно переписывать тест Если МояФункция(число1, число2, операция) = Неопределено Тогда ТестНеПрошел(); КонецЕсли; Если ТипЗнч(МояФункция(число1, число2, операция))<>Тип("Число") Тогда ТестНеПрошел(); КонецЕсли; 8. тест зараза снова прошел, нуна переписывать его Если МояФункция(число1, число2, операция) = Неопределено Тогда ТестНеПрошел(); КонецЕсли; Если ТипЗнч(МояФункция(число1, число2, операция))<>Тип("Число") Тогда ТестНеПрошел(); КонецЕсли; Если (МояФункция(1, 2, "+")<>3 Тогда ТестНеПрошел(); КонецЕсли; 9. и снова тест прошел, снова переписываем тест Если МояФункция(число1, число2, операция) = Неопределено Тогда ТестНеПрошел(); КонецЕсли; Если ТипЗнч(МояФункция(число1, число2, операция))<>Тип("Число") Тогда ТестНеПрошел(); КонецЕсли; Если (МояФункция(1, 1, "+")<>2 Тогда ТестНеПрошел(); КонецЕсли; Если (МояФункция(2, 1, "-")<>1 Тогда ТестНеПрошел(); КонецЕсли; 10. урра! тест не прошел можно дальше пилить код 11. пилим код для "-" |
|||
56
Aleksey
14.02.16
✎
23:37
|
Плюс смущает слово разработка в сабже. Я бы понял доработка программы через тестирования, но когда я пишу с нуля я еще и сам не знаю что в конечном итоги получу, потому что вот не припомню, чтобы с первого раза заказчик знал что хочет.
Обычно это примерно так. - Мы хотим большую круглую кнопку. На вопрос зачем, отвечают. Ну как же ты не понимаешь, это позволит нам увеличить продажи и больше зарабатывать, а ты ничего делать не хочешь и мешаешь нам приносить больше прибыли собственникам. - Ну ок, рисуем большую круглую кнопку. Они смотрят чешут репу и выдают, нет ты знаешь ты был прав, давай не одну большую, а 8 и по кругу. Ок, вот вам 8 и по кругу. Опять смотрят, думают и спрашивают, а ты не знаешь зачем мы тебя это просили сделать? Ну чтобы больше продавать наверное? А как это нам поможет больше продавать? Ну я не знаю. И вот и мы не помним зачем нам это, ладно забей можешь удалять все кнопки. И тут возникает вопрос. Если ты не разработчик тиражного решения, которую будут пилить после тебя непонятно кто и которое в последствие нужно будет поддерживать, то использования данного решения скорее вредно чем полезно |
|||
57
Garykom
гуру
14.02.16
✎
23:43
|
(56) Этот пример, когда заказчик не знает что ему нужно (тестов нет вообще заранее) не TDD и не BDD а просто BDSM
|
|||
58
Хранимая Процедура
14.02.16
✎
23:51
|
(57) - нет, это СКРАМ.
|
|||
59
Хранимая Процедура
14.02.16
✎
23:52
|
а что это 2 темы по ТДД на глагне?
|
|||
60
Garykom
гуру
14.02.16
✎
23:57
|
(59) 2-я не просто по TDD, а по конкретной технологии реализации
|
|||
61
hrmscentr
15.02.16
✎
17:29
|
Срочно требуется WEB-ПРОГРАММИСТ!(115 000-250 000 тыс.руб.)
Уважаемые профессионалы! Крайне буду благодарна за понимание! Данный месседж публикую ни с целью спама! А с целью поиска члена в нашу профессиональную семью! Ни в коем случае не хочу нарушать ваш профессиональный микроклимат! Спасибо за понимание! В связи с расширением штата сотрудников ищем талантливого специалиста! Что мы готовы предложить: Достойную оплату труда (115 000т.р.-250 000т.р.) Комфортное рабочее место, в шаговой доступности от м.Пролетарская Стабильный график работы 5/2 с 10.00-19.00 Ты идеален для нас , если… Имеешь опыт работы с PHP 5, MySQL не менее 3-х лет(примеры работ) Опыт работы хотя бы с одним из фреймворков Phalcon PHP, Symfony, Yii и т.п. Свободное владение ООП Опыт работы с системами контроля версий git Опыт создания приложений с unit-тестированием Понимание принципов построения архитектуры высоконагруженных систем По всем вопросам обращаться по телефону +7(929)516-92-30 HR-manager Андрианова Анастасия или присылать резюме на почту [email protected] mscentr.ru https://rabota.mail.ru/vacancy/15985321 |
|||
62
vicof
15.02.16
✎
17:30
|
(61) А 1сники не нужны от 150 до 300?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |