Нет, конечно. Но разве об этом речь? unit testing и собственно blackbox тестирование продукта - как бы понятия совершенно разные.stenking wrote:А юнит тест прям мне емаил пошлёт и скажет что ему контент не понравился?:)Интеррапт wrote:dup
Программист. с чего начать?
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Программист. с чего начать?
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Программист. с чего начать?
Ну ладно, ладно. Не заметил, а гадость сказать хотелосьstenking wrote: Точно! Нужно написать тест который проверяет или нет дубликатов. А потом прочитать получше и увидеть что Патрол <> Полис и подумать а нафига я сейчас убил 2 часа

-
- Уже с Приветом
- Posts: 14455
- Joined: 26 May 2006 02:39
Re: Программист. с чего начать?
Угу можно. Создать тестовую дату, потратить 2 дня описывая всё это. А можно просто взять реальную базу данных и посмотреть или то что выскакивает имеет смысл или нетИнтеррапт wrote:Всю логику можно заюнитестить, включая твою "категории с подзагрузкой" и "умный алгоритм кийвордов". Потому как он сегодня умный, а завтра кто-то где-то чего-то подкрутил и он уже стал не таким умным.stenking wrote:Смотря где. Вот тебе классическая задача веб эппа. Форма ввода описания, выбор категорий с подгрузкой, умный алгоритм подбора кийвордов. Что тут можно сделать?Интеррапт wrote:Не писать юнит тесты - это, как правило, из-за программистской лени. Ну не любят программисты писать тесты, скучно это, понимаю. Другое дело - код воротить, намного веселее. А потом с высунутым языком бегать и ломать голову, почему что-то поломалось, после того как несколько человек внесли вроде вполне правильные изменения в код.

Бога нет.
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Программист. с чего начать?
Ну скорее всего, если речь идет о маленьком проектике с умными кийвордами, который обновляется одним человеком, то там можно и без юнит-тестов жить, чего уж, намного быстрее будет просто код написать и отдать заказчику. А вот на проектах побольше, где еще и несколько человек работают - то через какое-то время получается все наоборот - юнит тесты начинают очень заметно экономить время отладки и поиска багов.stenking wrote:Угу можно. Создать тестовую дату, потратить 2 дня описывая всё это. А можно просто взять реальную базу данных и посмотреть или то что выскакивает имеет смысл или нет
-
- Уже с Приветом
- Posts: 14455
- Joined: 26 May 2006 02:39
Re: Программист. с чего начать?
5 программистов ( 20 человек компания ) , 2 года в работе, второй раунд инвестиций на 20М в процессе - тесты не пишем и пока не очень хочется. Притом я можно сказать вырос на TDD.Интеррапт wrote:Ну скорее всего, если речь идет о маленьком проектике с умными кийвордами, который обновляется одним человеком, то там можно и без юнит-тестов жить, чего уж, намного быстрее будет просто код написать и отдать заказчику. А вот на проектах побольше, где еще и несколько человек работают - то через какое-то время получается все наоборот - юнит тесты начинают очень заметно экономить время отладки и поиска багов.stenking wrote:Угу можно. Создать тестовую дату, потратить 2 дня описывая всё это. А можно просто взять реальную базу данных и посмотреть или то что выскакивает имеет смысл или нет
Бога нет.
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Программист. с чего начать?
Ну и не пишите, делов это. Намного проще не писать, чем писатьstenking wrote: 5 программистов ( 20 человек компания ) , 2 года в работе, второй раунд инвестиций на 20М в процессе - тесты не пишем и пока не очень хочется.

-
- Уже с Приветом
- Posts: 14455
- Joined: 26 May 2006 02:39
Re: Программист. с чего начать?
Ну так в этом же и цельИнтеррапт wrote:Ну и не пишите, делов это. Намного проще не писать, чем писатьstenking wrote: 5 программистов ( 20 человек компания ) , 2 года в работе, второй раунд инвестиций на 20М в процессе - тесты не пишем и пока не очень хочется.

А реальные баги в моём примере это
1. Опечатка
2. Так как кийворды берутся у пользователей то некоторые подсказки были неанглийские
3. Один хитрый юзер ввёл слово фак 1000 раз в обход JS валидации то алгоритм подсказывает его на верхнем месте
и т.д. И не один из этих реальных багов тестами не поймаешь.
Last edited by stenking on 01 Jun 2013 20:42, edited 2 times in total.
Бога нет.
-
- Уже с Приветом
- Posts: 15276
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Программист. с чего начать?
Самое смешное, что юнит-тесты практически наверняка не нашли бы лишнее доветочие. Или там грамматическую ошибку. Ибо автор теста и кода один человек, вооруженный мощнейшим копи-пейстом
А все потому что, как говаривал старик Ульянов, Из всех искусств принципов тестирования для нас важнейшим является кино принцип независимости
Разумеется, нарушение важнейших принципов не проходит бесплатно. Программистик, неправильно понявший задачу, не только сделает ее неправильно, но и напишет тестов пачку - неправильных, но проходящих. А хороший программистик, когда пофиксит косяки негодяя, огребет пачку внезапно сломавшихся тестов. И до конца своей работы в этой команде запомнит - не нужно фиксать не свое, это больно и неприкольно. В результате, зеленые жирные мухи баги сидят на TDD-проекте. Они не ошиблись.
А все потому что, как говаривал старик Ульянов, Из всех искусств принципов тестирования для нас важнейшим является кино принцип независимости
Разумеется, нарушение важнейших принципов не проходит бесплатно. Программистик, неправильно понявший задачу, не только сделает ее неправильно, но и напишет тестов пачку - неправильных, но проходящих. А хороший программистик, когда пофиксит косяки негодяя, огребет пачку внезапно сломавшихся тестов. И до конца своей работы в этой команде запомнит - не нужно фиксать не свое, это больно и неприкольно. В результате, зеленые жирные мухи баги сидят на TDD-проекте. Они не ошиблись.
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Программист. с чего начать?
Юнит тесты слабо эфективны для нахождения хитрых багов, они больше что бы задекларировать ожидаемое поведение вашей системы, и сигнализировать если кто-то что-то поломает когда будет добавлять фичу или рефакторить. Когда у вас будет значительно больше 5-и программистов, большая часть колектива сменится по пару раз, будет куча старого кода, а полное регрессивное тестирование на каждый чих будет занимать 4 недели и стоить много денег, покрытие тестами очень здорово окупиться как в плане продуктивности разработки так и в плане стабильности продукта.stenking wrote:Точно! Нужно написать тест который проверяет или нет дубликатов. А потом прочитать получше и увидеть что Патрол <> Полис и подумать а нафига я сейчас убил 2 часаИнтеррапт wrote:Мухаха. И "Private Patrol Officer" два раза повторяется. Вот тебе, стенкинг, твои филипинские тестерыАццкоМото wrote:Убрать лишнее двоеточие, напримерstenking wrote: Что тут можно сделать?
Нy и в нормальном процессе вам не надо писать 2 часа тест. Инфраструктура тестирования должна развиваться вместе с кодом, и вам достаточно вбить в тесте что-то initDb().addKeyword('hello').addKeyword('ehlo') что бы заинициализировалась база с кучей около продакшн данных + ваши данные необходимые для теста.
In vino Veritas!
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Программист. с чего начать?
Ребята, о чем вы говорите? юнит-тесты никогда и предназначались для поиска ошибок, типа как "лишние двоеточие". Юнит тесты так же никоим образом не могут заменить тестеров/QA, это всего-лишь еще один из инструментов, чтобы понизить кол-во ошибок в коде и понизить вероятность того, что кто-то чего-то сломал в коде, а никто и не заметил.АццкоМото wrote:Самое смешное, что юнит-тесты практически наверняка не нашли бы лишнее доветочие. Или там грамматическую ошибку. Ибо автор теста и кода один человек, вооруженный мощнейшим копи-пейстом
-
- Уже с Приветом
- Posts: 15276
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Программист. с чего начать?
Объясни для убогих и тупых, как тест может понизить количество ошибок, при этом не находя баговИнтеррапт wrote:Ребята, о чем вы говорите? юнит-тесты никогда и предназначались для поиска ошибок, типа как "лишние двоеточие". Юнит тесты так же никоим образом не могут заменить тестеров/QA, это всего-лишь еще один из инструментов, чтобы понизить кол-во ошибок в коде и понизить вероятность того, что кто-то чего-то сломал в коде, а никто и не заметил.АццкоМото wrote:Самое смешное, что юнит-тесты практически наверняка не нашли бы лишнее доветочие. Или там грамматическую ошибку. Ибо автор теста и кода один человек, вооруженный мощнейшим копи-пейстом
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Программист. с чего начать?
Тест находит баги, он не находит баги "типа как лишнее двоеточие"АццкоМото wrote:Объясни для убогих и тупых, как тест может понизить количество ошибок, при этом не находя баговИнтеррапт wrote:Ребята, о чем вы говорите? юнит-тесты никогда и предназначались для поиска ошибок, типа как "лишние двоеточие". Юнит тесты так же никоим образом не могут заменить тестеров/QA, это всего-лишь еще один из инструментов, чтобы понизить кол-во ошибок в коде и понизить вероятность того, что кто-то чего-то сломал в коде, а никто и не заметил.АццкоМото wrote:Самое смешное, что юнит-тесты практически наверняка не нашли бы лишнее доветочие. Или там грамматическую ошибку. Ибо автор теста и кода один человек, вооруженный мощнейшим копи-пейстом
In vino Veritas!
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Программист. с чего начать?
Если после внесения тобой каких-то исправлений в код, юнит тест вдруг падает с ошибкой, то это значит, что ты привнес баг в код. Ты всегда можешь конечно доказать, что это фича а не баг, расширив (или модифицировав) конкретный юнит тест, но в том то и дело, что в этом случае ты делаешь это осознанно, а не как частенько бывает - чего-то поменял, вроде работает, а оказывается, что это изменение повлияло не лучшим образом на другие компоненты системы.АццкоМото wrote:Объясни для убогих и тупых, как тест может понизить количество ошибок, при этом не находя багов
-
- Уже с Приветом
- Posts: 15276
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Программист. с чего начать?
Интересно. Например, у нас раньше была жестко сверстанная форма. Все поля из строковых ресурсов, разумеется, с двоеточиями - ибо нужны они там. А потом мы заредизайнили форму, чтобы поля различные конструировались динамически исходя из каки-то соображений, а двоеточия расставлялись автоматом, ибо тот же ресурс используется отныне в сообщении об ошибке "Вы не ввели данные обязательное поле Мое Фамилиё". И из всех строковых ресурсов двоеточие убрали, а про один - забыли. Это в точности что должен находить юнит-тест: поломанная старая хункциональность в результате редизайна. Капитан Очевидность подсказывает, что если у нас юнит-тесты достаточно хороши, то они найдут такой баг даже если еще никакого редизайна не было, а просто у кого-то тряслись ручки после веселой ночи порока и разврата. А если они недостаточно хороши, то они не выполняют и свою основную задачуcrypto5 wrote: Тест находит баги, он не находит баги "типа как лишнее двоеточие"
ЗЫ. я несколько лет жизни потратил на создание нормального адекватного отдела тестирования, с нуля и до человек эдак 60. вот уж эти все простые плюсы-минусы очевидных подходов разобраны по деталькам больше 10 лет назад. когда я все это читаю, так и хочется сказать "ха! туристы"
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 15276
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Программист. с чего начать?
Т.е. все-таки смысл тестов - искать баги. Любых тестов, в том числе и юнит-тестов.Интеррапт wrote:Если после внесения тобой каких-то исправлений в код, юнит тест вдруг падает с ошибкой, то это значит, что ты привнес баг в код. Ты всегда можешь конечно доказать, что это фича а не баг, расширив (или модифицировав) конкретный юнит тест, но в том то и дело, что в этом случае ты делаешь это осознанно, а не как частенько бывает - чего-то поменял, вроде работает, а оказывается, что это изменение повлияло не лучшим образом на другие компоненты системы.АццкоМото wrote:Объясни для убогих и тупых, как тест может понизить количество ошибок, при этом не находя багов
Выше ответ crypto5 - твоего поста еще не было, когда писал. Там объясняется, что совершенно очевидно, что если тест ловит баг возникший в результате редизайна, то он ловит этот баг если он не возник в результате редизайна. Там же объясняется, почему лишнее двоеточие может быть результатом именно редизайна
Иными словами, утверждение юнит-тесты никогда и предназначались для поиска ошибок, типа как "лишние двоеточие" выглядит оооочень неверным
Мат на форуме запрещен, блдж!