|   |   | 
| 
 | 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 Андрианова Анастасия или присылать резюме на почту hr@mscentr.ru mscentr.ru https://rabota.mail.ru/vacancy/15985321 | |||
| 62
    
        vicof 15.02.16✎ 17:30 | 
        (61) А 1сники не нужны от 150 до 300?     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |