Сегодня поймали дивный баг.

Нечто, тщательно оттестированное на тестовом сервере и довольно успешно работавшее уже несколько дней на боевом, внезапно перестает работать — по непонятным причинам прекратило работать некое условие.

Вскрытие показало: некая функция func(), возвращающая, в частности, температуру за бортом, заключена в

if (func()) {
и вот это-то и перестало работать.
}

Да, конечно. Перестало работать оно, когда на термометре было 0 градусов.


Комментарии:

: 16 комментариев

      1. ага. там как раз на нуле у них тоже баг и выскочил … а еще помнится у кого-то был баг при пересечении экватора — самолет переворачивался кверх ногами … правда на симуляторе что ли отловили еще …

  1. возникает один вопрос — «тщательно оттестированное на тестовом сервере»? В принципе-то тест-сценарий наистандартнейший: min, <0, ==0, >0, max. Гоните тестеров! :)

      1. Это скорее ко мне надо относить — последнее время шутки на тему кода/тестов/IT понимаю с трудом. Так что слово «лопата» не помешает :).

      1. Наглядностью. За if(getTherm() != 0) глаз зацепится на предмет того, почему это температура у нас не должна быть нулём.

        1. А там, поди, был какой-нибудь getStatus(), с пятью проверками, всё ли хорошо и return 0, если плохо, и return getTherm() в конце. Так что в if ( getStatus() != 0) тоже нифига не видно было бы.

          1. Ну тут уже рецепт один: писать код @ наступать на грабли =) Лет через пять привыкаешь. В смысле: привыкаешь обходить старые грабли.

Комментарии запрещены.