Re[4]: феерический факап Яндекса
От: B0FEE664  
Дата: 09.09.15 14:34
Оценка:
Здравствуйте, landerhigh, Вы писали:

L>А можно задать вопрос в зал? Скажите, а зачем "отладочная версия" вообще существует, особенно в таком виде, в котором ее можно "взять", тем более, "по ошибке"?


Для отладки. Вот тестируют тестры релиз, пишут действия для воспроизведения ошибки. Программист запускает debug версию, которая при выполнении указанных действий падает на ассерте. Далее — дело техники — проверить кто нарушил контракт вызова/состояния.
И каждый день — без права на ошибку...
Re[5]: феерический факап Яндекса
От: landerhigh Пират  
Дата: 09.09.15 14:41
Оценка:
Здравствуйте, B0FEE664, Вы писали:

L>>А можно задать вопрос в зал? Скажите, а зачем "отладочная версия" вообще существует, особенно в таком виде, в котором ее можно "взять", тем более, "по ошибке"?


BFE>Для отладки. Вот тестируют тестры релиз, пишут действия для воспроизведения ошибки. Программист запускает debug версию, которая при выполнении указанных действий падает на ассерте. Далее — дело техники — проверить кто нарушил контракт вызова/состояния.


Хорошо, допустим программист ленив и не пишет юнит-тесты. Пусть он использует отладочную версию, что уже само по себе странно после передачи в QA. (Как он собирается отлавливать баги, которые в отладочной версии не проявляются, кстати?)
Но каким образом эта отладочная версия попала в pre-production?
www.blinnov.com
Re[3]: феерический факап Яндекса
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 09.09.15 14:42
Оценка:
Здравствуйте, B0FEE664, Вы писали:

C>>>Казалось бы, и при чем здесь сортировка гномиков?

vsb>>Это факап тестировщиков, менеджера проекта, девопсов, кого угодно, но уж точно не программистов.

BFE>А ничего, что у них релиз версия падает?


Тестировщики нашли проблему, значит не зря бюджет едят.

BFE>поэтому, гениальное решение:


BFE>

BFE>Исправить ошибку было относительно легко, но времени на тестирование с новой версией не оставалось совсем, и мы решили откатиться на отладочную и запускаться с ней.


Здесь буквально написано следующее — тестировщики проблему нашли("приложение стало падать"), но их отогнали("мы понадеялись"), девелоперы могли исправить("исправить было легко"), но и их отогнали.
Отредактировано 09.09.2015 15:06 Pauel . Предыдущая версия .
Re[9]: Хорошо, что я не в Яндексе
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 09.09.15 14:49
Оценка:
Здравствуйте, consign, Вы писали:

I>>Скажем, гномики те же очень четко детектят наличие определенных скилов.


C>И эти скиллы называются "старательно зубрить", "не задавать начальнику вопросов" и "делать любую бессмысленную хрень, если прикажут".


Расскажи, пожалуйста, как тебе помогут решить задачу второй и третий скилы из твоего списка.
Re[6]: феерический факап Яндекса
От: B0FEE664  
Дата: 09.09.15 14:52
Оценка:
Здравствуйте, landerhigh, Вы писали:

L>>>А можно задать вопрос в зал? Скажите, а зачем "отладочная версия" вообще существует, особенно в таком виде, в котором ее можно "взять", тем более, "по ошибке"?

BFE>>Для отладки. Вот тестируют тестры релиз, пишут действия для воспроизведения ошибки. Программист запускает debug версию, которая при выполнении указанных действий падает на ассерте. Далее — дело техники — проверить кто нарушил контракт вызова/состояния.

L>Хорошо, допустим программист ленив и не пишет юнит-тесты.

Не всегда и не на всё можно написать юнит-тесты.

L>Пусть он использует отладочную версию, что уже само по себе странно после передачи в QA.

Ничего странного тут нет. Отладочная версия делается именно для отладки — поиска ошибок.

L>(Как он собирается отлавливать баги, которые в отладочной версии не проявляются, кстати?)

Вот если на debug версии ошибка не воспроизвелась, то начинается самое интересное. Если в debug не видно то, что видно в release, то 20 к одному, что это ошибка многопоточности. Иногда такие ошибки месяцами ищут.

L>Но каким образом эта отладочная версия попала в pre-production?

Вы меня спрашиваете?
А каким образом debug версия попала в production?
А у них точно QA отдел есть?
И каждый день — без права на ошибку...
Re[7]: феерический факап Яндекса
От: landerhigh Пират  
Дата: 09.09.15 15:04
Оценка:
Здравствуйте, B0FEE664, Вы писали:

L>>Хорошо, допустим программист ленив и не пишет юнит-тесты.

BFE>Не всегда и не на всё можно написать юнит-тесты.

На то, чем они в итоге и факапнулись, тест написать было можно и нужно.

L>>Пусть он использует отладочную версию, что уже само по себе странно после передачи в QA.

BFE>Ничего странного тут нет. Отладочная версия делается именно для отладки — поиска ошибок.

Да? А я все больше склонен думать что для "у нас все работает"

L>>(Как он собирается отлавливать баги, которые в отладочной версии не проявляются, кстати?)

BFE>Вот если на debug версии ошибка не воспроизвелась, то начинается самое интересное. Если в debug не видно то, что видно в release, то 20 к одному, что это ошибка многопоточности. Иногда такие ошибки месяцами ищут.

Ой, не только. Еще бывают баги в оптимизаторе, которые в отсутствие юнит-тестов искать можно будет десятилетиями. Еще бывает buffer overrun, которые в дебаге не стреляют под одной прикольной причине...

L>>Но каким образом эта отладочная версия попала в pre-production?


BFE>Вы меня спрашиваете?

BFE>А каким образом debug версия попала в production?
BFE>А у них точно QA отдел есть?

Во-во.
www.blinnov.com
Re[7]: феерический факап Яндекса
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 09.09.15 15:08
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>А у них точно QA отдел есть?


Есть, разумеется, и они этот QA отогнали: "мало времени, вдруг пронесёт"
Re[8]: феерический факап Яндекса
От: B0FEE664  
Дата: 09.09.15 15:10
Оценка:
Здравствуйте, landerhigh, Вы писали:

L>>>Хорошо, допустим программист ленив и не пишет юнит-тесты.

BFE>>Не всегда и не на всё можно написать юнит-тесты.
L>На то, чем они в итоге и факапнулись, тест написать было можно и нужно.
Как вы себе представляете юнит-тест проверяющий скорость исчерпания места на диске?

L>>>Пусть он использует отладочную версию, что уже само по себе странно после передачи в QA.

BFE>>Ничего странного тут нет. Отладочная версия делается именно для отладки — поиска ошибок.
L>Да? А я все больше склонен думать что для "у нас все работает"


L>>>(Как он собирается отлавливать баги, которые в отладочной версии не проявляются, кстати?)

BFE>>Вот если на debug версии ошибка не воспроизвелась, то начинается самое интересное. Если в debug не видно то, что видно в release, то 20 к одному, что это ошибка многопоточности. Иногда такие ошибки месяцами ищут.

L>Ой, не только. Еще бывают баги в оптимизаторе, которые в отсутствие юнит-тестов искать можно будет десятилетиями. Еще бывает buffer overrun, которые в дебаге не стреляют под одной прикольной причине...

buffer overrun в debuge, как раз, находится на раз, а вот баги в оптимизаторе относительно других багов очень редки.
И каждый день — без права на ошибку...
Re[8]: феерический факап Яндекса
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 09.09.15 15:11
Оценка:
Здравствуйте, landerhigh, Вы писали:

L>Ой, не только. Еще бывают баги в оптимизаторе, которые в отсутствие юнит-тестов искать можно будет десятилетиями. Еще бывает


Много чего бывает. Но вещи, что валятся только в релизе, никаким юнит-тестами как правило не детектятся. Юнит-тесты очень дискретны и покрывают очень малое количество кейсов. Релизный рантайм, считай, это бесконечное количество кейсов.
Re[8]: феерический факап Яндекса
От: B0FEE664  
Дата: 09.09.15 15:15
Оценка:
Здравствуйте, Ikemefula, Вы писали:

BFE>>А у них точно QA отдел есть?

I>Есть, разумеется, и они этот QA отогнали: "мало времени, вдруг пронесёт"

Ну вот и пронесло, как от немытого винограда.
И каждый день — без права на ошибку...
Re[9]: феерический факап Яндекса
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 09.09.15 15:18
Оценка: +1
Здравствуйте, B0FEE664, Вы писали:

BFE>>>А у них точно QA отдел есть?

I>>Есть, разумеется, и они этот QA отогнали: "мало времени, вдруг пронесёт"

BFE>Ну вот и пронесло, как от немытого винограда.


Вот бы узнать, кого там "поощрили". Будь это гос-контора, я бы не удивился, что там лишат премии девелопера и уволят пол-отдела тестировщиков.
Re[9]: феерический факап Яндекса
От: landerhigh Пират  
Дата: 09.09.15 15:18
Оценка:
Здравствуйте, B0FEE664, Вы писали:

L>>На то, чем они в итоге и факапнулись, тест написать было можно и нужно.

BFE>Как вы себе представляете юнит-тест проверяющий скорость исчерпания места на диске?

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

L>>>>Пусть он использует отладочную версию, что уже само по себе странно после передачи в QA.

BFE>>>Ничего странного тут нет. Отладочная версия делается именно для отладки — поиска ошибок.
L>>Да? А я все больше склонен думать что для "у нас все работает"
BFE>

L>>Ой, не только. Еще бывают баги в оптимизаторе, которые в отсутствие юнит-тестов искать можно будет десятилетиями. Еще бывает buffer overrun, которые в дебаге не стреляют под одной прикольной причине...

BFE>buffer overrun в debuge, как раз, находится на раз, а вот баги в оптимизаторе относительно других багов очень редки.

Да щас... как раз в дебаге случалось, что отладочная версия некоего чего-то выделяла чуть больше памяти на всякий случай. Под отладочную информацию. В результате косяк в дебаге никогда не стрелял. А вот в релизе...
www.blinnov.com
Re[9]: феерический факап Яндекса
От: landerhigh Пират  
Дата: 09.09.15 15:20
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, landerhigh, Вы писали:


L>>Ой, не только. Еще бывают баги в оптимизаторе, которые в отсутствие юнит-тестов искать можно будет десятилетиями. Еще бывает


I>Много чего бывает. Но вещи, что валятся только в релизе, никаким юнит-тестами как правило не детектятся.


На счет "раз". Юнит-тесты вообще фиолетово, дебаг это или релиз. Вот баг в оптимизаторе я поймал простейшим юнит тестом, если бы тестов не писал — плакали бы горькими слезами где-то через полгода.

I>Юнит-тесты, когда их пишут на "отвали, тимлид, нам фигней заниматься некогда, копать нужно", очень дискретны и покрывают очень малое количество кейсов.


fixed.
www.blinnov.com
Re[10]: феерический факап Яндекса
От: B0FEE664  
Дата: 09.09.15 15:24
Оценка:
Здравствуйте, landerhigh, Вы писали:

L>Да щас... как раз в дебаге случалось, что отладочная версия некоего чего-то выделяла чуть больше памяти на всякий случай. Под отладочную информацию. В результате косяк в дебаге никогда не стрелял. А вот в релизе...


Ну что тут скажешь. Умеют
И каждый день — без права на ошибку...
Re[10]: феерический факап Яндекса
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 09.09.15 15:26
Оценка: +1 -1 :))
Здравствуйте, landerhigh, Вы писали:

L>>>Ой, не только. Еще бывают баги в оптимизаторе, которые в отсутствие юнит-тестов искать можно будет десятилетиями. Еще бывает


I>>Много чего бывает. Но вещи, что валятся только в релизе, никаким юнит-тестами как правило не детектятся.


L>На счет "раз". Юнит-тесты вообще фиолетово, дебаг это или релиз. Вот баг в оптимизаторе я поймал простейшим юнит тестом, если бы тестов не писал — плакали бы горькими слезами где-то через полгода.


Конечно фиолетово, потому что они проверяют от силы десяток-сотню кейсов. Тестов с бесконечным количетсвом кейсов пока не придумали

I>>Юнит-тесты, когда их пишут на "отвали, тимлид, нам фигней заниматься некогда, копать нужно", очень дискретны и покрывают очень малое количество кейсов.


L>fixed.


Любой юнит-тест будет сильно дискретным. Ну вот взять сумму двух чисел. У тебя физически нет возможности проверить скажем, весь набор натуральных чисел Ты проверишь от силы пару десятков, и то, если сильно приспичит.

Если нужны чтото непрерывное, то надо смотреть более другие инструменты — ассерты, контракты, предусловия, постусловия, инварианты, формальные модели и тд
Re[10]: Хорошо, что я не в Яндексе
От: consign  
Дата: 09.09.15 15:38
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Расскажи, пожалуйста, как тебе помогут решить задачу второй и третий скилы из твоего списка.


А при чем здесь я? Я идиотские задачи никому не задаю.
Отредактировано 09.09.2015 15:40 consign . Предыдущая версия .
Re[11]: феерический факап Яндекса
От: landerhigh Пират  
Дата: 09.09.15 15:39
Оценка:
Здравствуйте, Ikemefula, Вы писали:

L>>На счет "раз". Юнит-тесты вообще фиолетово, дебаг это или релиз. Вот баг в оптимизаторе я поймал простейшим юнит тестом, если бы тестов не писал — плакали бы горькими слезами где-то через полгода.

I>Конечно фиолетово, потому что они проверяют от силы десяток-сотню кейсов. Тестов с бесконечным количетсвом кейсов пока не придумали

Ты все поставил с ног на голову.

Я уже писал об этом 100500 раз и еще раз повторюсь. Юнит-тесты хороши тем, что только они позволяют добиться максимального покрытия use cases.
У каждого юнита есть три набора use cases — валидный, невалидный и граничный. Для каждого юнита, таким образом, требуется ровно три набора тестов. Это не три теста, но их число в любом случае конечно и счетно.
Теперь смотрим на систему, состояющую из N юнитов. Легко видеть, что для того, чтобы гарантированно протестировать ее, потребуется 3^N тестовых сценариев.
Для такого же покрытия юнит-тестами достаточно всего лишь написать 3*N наборов юнит-тестов. Даже для системы из 10 тысяч юнитов такое количество — семечки.

I rest my case, как говорится и удачи с 3^10000 вариантами тестирования.

I>Любой юнит-тест будет сильно дискретным. Ну вот взять сумму двух чисел. У тебя физически нет возможности проверить скажем, весь набор натуральных чисел Ты проверишь от силы пару десятков, и то, если сильно приспичит.


Ты сильно удивишься, но и необходимости проверять весь набор натуральных чисел тоже нет. Юнит-тестирование — это white box тест.
www.blinnov.com
Re[11]: феерический факап Яндекса
От: landerhigh Пират  
Дата: 09.09.15 15:50
Оценка: +1
Здравствуйте, B0FEE664, Вы писали:

L>>Да щас... как раз в дебаге случалось, что отладочная версия некоего чего-то выделяла чуть больше памяти на всякий случай. Под отладочную информацию. В результате косяк в дебаге никогда не стрелял. А вот в релизе...


BFE>Ну что тут скажешь. Умеют


А чего тут уметь? Был совсем простой случай — отладочная версия имела иное выравнивание, нежели релизная, из-за какой-то старой сторонней либы. Либу уже давно выкинули, а настройки остались. Вот там искать перезабег буфера на пару байт в отладочной сборке было особенным удовольствием.
www.blinnov.com
Re[12]: феерический факап Яндекса
От: consign  
Дата: 09.09.15 15:52
Оценка:
Здравствуйте, landerhigh, Вы писали:

L>Либу уже давно выкинули, а настройки остались. Вот там искать перезабег буфера на пару байт в отладочной сборке было особенным удовольствием.


А проги типа BoundsChecker настоящие джедаи не используют?
Re[13]: феерический факап Яндекса
От: landerhigh Пират  
Дата: 09.09.15 15:55
Оценка:
Здравствуйте, consign, Вы писали:

L>>Либу уже давно выкинули, а настройки остались. Вот там искать перезабег буфера на пару байт в отладочной сборке было особенным удовольствием.


C>А проги типа BoundsChecker настоящие джедаи не используют?


В отладочном режиме с bounds все было в порядке.
www.blinnov.com
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.