Pull to refresh
1

Пользователь

2
Rating
Send message

Мы проверяли, что устройство работает. Оказалось — мы проверяли не то

Level of difficultyHard
Reading time12 min
Reach and readers7.6K

Исправное устройство успешно обновилось, доказало своё здоровье, а через два перезапуска откатилось на старую прошивку. Причина оказалась вообще не в обновлении: в тот раз наш бэкенд отвечал три минуты вместо одной.

У нас парк ARM‑устройств: удалённое обновление ядра, A/B‑слоты, автоматический откат. Казалось бы, схема известная, готовые движки есть, документация написана. Сам движок действительно поехал за неделю. Потом полтора месяца мы выковыривали дефекты, которые не падали, ничего не писали в лог и не ловились обычными тестами.

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

Устройство говорило «обновился», проверив доставку обновления, а не его применение. Или: «я здоров, братан, проверяй», глядя на факт запуска, а не на работу прошивки. Или: «версия 0.0.17», потому что это было написано в манифесте бэкенда, а не потому, что именно эта версия реально крутилась на железе.

В итоге — как с нашим правительством: свою работу оценили на отлично, а эксперимент, очевидно, неудачный.

И чё?

Information

Rating
1,699-th
Location
Краснодар, Краснодарский край, Россия
Date of birth
Registered
Activity

Specialization

Архитектор программного обеспечения
Ведущий
Функциональное программирование
DDD
Проектирование архитектуры приложений