С тех пор как появились инжекторные двигатели так сразу и в автомобили проникло программное обеспечение. В связи с этим появился стандарт ISO-26262-6

ISO26262 это международный текст, который объясняет как создавать безопасный и высоконадежный встраиваемый софт для мотоциклов, автомобилей, грузовиков и автобусов.

Что это за понятие такое safety?

К сожалению в русском языке нет отличия между понятиями safety и security. Поэтому далее придется использовать только слово safety.

Если переводить дословно, то safety в бытовом смысле - это безопасность в смысле не пораниться и не ушибиться. Однако в стандарте на это есть четкое определение.

--Функциональная безопасность (functional safety) это отсутствие необоснованного риска из-за опасности вызванной неправильным поведения системы

На самом деле с safety мы сталкивается каждый день. Safety проявляется на разных уровнях проработки продукта.

--на уровне проработки механики

Это перила по бокам лестниц, лежачий полицейский , каски, наколенники, налокотники. В лифтах рессора на потолке для тормоза при свободном падении, иголки на заборе в зоопарке. Округлые формы корпусов, ремни безопасности, запасной выход на крыло в самолетах, розетки с крышкой, колпачок для ручки с отверстием (чтобы, если проглотить колпак, то можно будет дышать), спасательный жилет в самолете, тормоз в велосипеде, уголковые отражатели и прочее.

--на уровне электротехники и аналоговой электроники

Габаритные огни транспортных средств, подушки безопасности, тикающие светофоры

--на уровне проработки программного обеспечения

Звук при не пристегнутом ремне, не заводится мотор при отстегнутом ремне, запертые двери во время езды. Даже электро-самоката электромотор только включает при наборе пороговой скорости 3 км./ч. Всё это - примеры safety в софте.

Классификацию примеров safety можно посмотреть тут

https://docs.google.com/spreadsheets/d/1Ka_avuSJdILEPpdXmbicfCfzR0LWQla7sqDJBs2ILsw/edit#gid=0

В этом тексте я попробовал разобраться с тем как понять автомобильный стандарт функциональной безопасности ISO26262 в той части, которая относится к требованиям к программному обеспечению (часть 6). Там всего 66 страничек английского текста.

Чтобы понять этот док надо сначала прочитать часть 1 и освоить нужную терминологию.

Терминология ISO-26262

В стандарте ISO-26262 не просто набор определений. Тут как в астрономии система определений, где чтобы определить одно понятие надо дать определение целой куче другим понятиям.

Однако с понятиями всё плохо. Тут прослеживаются циклические определения.

В идеале определения должны выстраиваться в дерево определений. А в ISO-26262-1 какой-то граф определений похожий на клубок с нитками. Вот вам яркий пример. Чтобы дать определение понятию software component надо дать определение понятию software unit. Чтобы дать определение понятию software unit надо дать определение software component. Бред какой-то, ну ни правда ли? Какая-то проблема из серии, что появилось раньше курица или яйцо.

Тем не менее вы только поглядите настолько своеобразные определения IT(шным) понятиям даны в доке ISO-26262-1

--обрабатывающий элемент (processing element) -- аппаратная часть, которая предоставляет набор инструкций для обработки данных. Обычно состоит из набора регистров, исполнительного элемента и управляющего элемента. Например двух ядерный микроконтроллер это два обрабатывающих элемента.

--Архитектура (architecture) - представление структуры элементов или нечто что позволяет опознать строительные блоки их границы и интерфейсы и включает назначения требований для этих строительных блоков.

--данные калибровки (calibration data)- данные которые будут применены как значения параметров программного обеспечения после построения артефактов в процессе разработки. Например код страны, расположение руля. Калибровочные данные не содержать исполняемый или интерпретируемый код.

--данные конфигурации (configuration data) - данные которые назначаются во время построения, которые управляют процессом сборки программных элементов. Это, например, макроопределения препроцессора, которые выбирают код для сборки. Это те же пресловутые XML файлы настройки IDE для выбора ToolChain(a) или инструментов сборки. Эти данные управляют построением ПО. Эти данные используются для выбора нужного кода из общей кодовой базы.

--Встраиваемое ПО (embedded software) - полностью объединенное ПО, которое исполняется на обрабатывающем элементе.

--Покрытие ветвей (branch coverage) - процентное содержание количества ветвей в потоке исполнения компьютерной программы во время прогона тестов.

--компонент (component) - элемент не системного уровня, который логически или технический отделяемый и состоит из более чем одной программной единицы (software unit)

--Программная единица (software unit) - неделимая часть программного компонента в программной архитектуре которую можно подвергнуть автономному тестированию

--программный компонент (software component) - один или несколько программных единиц

--Элемент (element) - система, компонент, аппаратная часть или программная единица.

--программный инструмент (software tool) - компьютерная программа, которая используется для разработки программной единицы или программного элемента.

--тестирование (testing) - процесс планирования, подготовки и эксплуатации или тренировки программной единицы или программного элемента для проверки того, что он удовлетворяет установленным требованиям, для обнаружения аномалий безопасности, для подтверждения того, что требования подходят в данном контексте и для создания уверенности в его поведении.

Цель дока ISO26262 - это уменьшить риск от ущерба, который может возникнуть из-за ошибки или сбоя в сложной технической системе.

Стандарт говорит, что надо придерживаться V модели разработки. Почему V? Если начертить декартову систему координат XY и если X-время, а Y-уровень абстракции, то получится, что процесс проработки софтвера будет прорисовывать букву V. Сначала дизайн , затем тестирование и интеграция.

То есть разрабатывая надо двигаясь от общего к частному, а проверять от частного к общему. Так и получается буква V. V-model.

Этот стандарт утверждает, что есть четыре уровня ответственности в разработке автомобильных систем: A, B, C и D. Уровень D - самый строгий. ASIL-D обычно применяют для очень важных деталей машин (например электронная рулевая рейка).

Для разработки каждого уровня надо выполнять строго перечисленные требования к действиям при разработке реализации и проверке. Эти требования ранжируются токенами "+" "++" "о"

токен

расшифровка

++

метод настоятельно рекомендуется

+

метод рекомендуется

o

метод не имеет рекомендаций за или против

обычно для автомобильных систем получается такая классификация

Подробнее это же тут https://docs.google.com/spreadsheets/d/1i11ZFEse_zPntcOXRBFQRXnt-fOBlLomDzyqb-PsuKc/edit#gid=0

Требования к разработке различным уровням ASIL перечислены в этом импровизированном реестре

https://docs.google.com/spreadsheets/d/1uO6X80EzW9fGv52g26durAk19ulbCR1fv3DBiyPAyPs/edit#gid=0

Уровни абстракций при проработке программного обеспечения в ISO 26262

Вот поподробнее рис.3. По сути разработка начинается с формирования требований к программному обеспечению. На основе требований составляются тесты. Далее проектируется архитектура ПО, затем пишется код программных компонентов чтобы проходили тесты. По сути ISO26262 это Test Driven Development (TDD).

рис.3
рис.3

Стандарт ISO26262 перечисляет возможные сбои в софте и приемы как их выявить на ранней стадии и дает рекомендации как их решать.

Сбои в исполнении программ

--блокирование исполнения

--тупики

--взаимная блокировка

--неправильное распределение времени выполнения

--неправильная синхронизация между элементами программного обеспечения

Предлагается использовать наблюдение за загрузкой процессора, планировщик с назначением приоритетов, вытесняющую многозадачность.

Сбои в памяти

--искажение данных в памяти

--противоречивые данные

--переполнение стековой RAM памяти

--чтение или запись памяти чужого программного элемента

Предлагается использовать подсчет и проверку контрольных сумм CRC, биты четности, избыточные коды ECC, избыточное хранение данных, ограниченный доступ к памяти (MPU).

Сбои в обмене информацией

--повторение информации

--потеря информации

--запаздывание информации

--неверная адресация

--ложная последовательность пакетов

--поврежденная информация

--информация от отправителя, полученная только частью получателей

--блокировка доступа к каналу связи

Предлагается использовать ретрансляцию, пакеты подтверждения, ID узлов в протоколах, "Hello" пакеты, слежение за непрерывностью передачи данных на основе порядковых номеров в заголовке пакета.

---------------------

При чтении ISO26262 лично у меня возникает ряд вопросов.

1--Допустим компания разрабатывает автомобильный блок телематики для удаленного зажигания в холодном климате и для отслеживания перемещения авто по GNSS. Какой минимальный уровень ASIL (A, B, C, или D) выбрать для разработки модуля телематики? Ведь телематика из-за ошибки в программе может послать команду заглушить двигатель прямо на автостраде на скорости 140км./ч.

2--Допустим компания разрабатываю автомобильную аудиосистему. Какой минимальный уровень ASIL (A, B, C, или D) выбрать для разработки? Аудиосистема из-за ошибки в программе может громким звуком контузить всех пассажиров.

Можно конечно выбрать ASIL-D и не ошибешься, однако трудоёмкость реализации этого ASIL-D повысится на порядок.

Однако в ISO26262 есть требования которые общие для всех ASIL. Для всех уровней ASIL cтандарт ISO 26262 требует в софтвере придерживаться низкой сложности, программные компоненты выстраивать в иерархию, использовать типизированные языки программирования для написания кода и тестов, не называть одинаково имена локальных и глобальных переменных, в каждой функции делать только один return, использовать naming conventions, инициализировать все переменные при создании, не заниматься пере использованием переменных, не использовать оператор goto, покрывать код модульными тестами, прогонять код через статические анализаторы. Если в прошивке есть калибровочные данные то надо проверять на достоверность калибровочные данные.

Стандарт подразумевает наличие требований для разработки софта и призывает анализировать эти требования. Может показаться очевидным, однако очень часто разрабатывают софт просто согласно обобщенной размытой устной формулировке постановки задачи (типа "подружить айфон и микроконтроллер").

В ISO26262 подразумевается, что софт должен быть простым, конфигурируемым, тесто-пригодным, иерархичным. Что должна быть общая кодовая база из которой как из ствола дерева произрастают разнообразные сборки. ISO 26262 намекает, что надо использовать TDD, MISRA C.

При написании модульных тестов использовать в каждой функции только один return. Тесты надо создавать исходя из требований. При тестировании надо придерживаться схемы Hardware In the Loop (HIL). То есть надо строить HIL стенды, подключать электронные платы к PC прошивать и тестировать. Также надо воспроизводить CAN-сеть автомобиля на макете (lab-cars).

Для всех уровней стандарт призывает анализировать затраты ресурсов, которые поглощает ПО: RAM память, размер стека, flash память, время исполнения кода, пропускную способность интерфейсов и протоколов.

По процессам разработки док подразумевает пере использование общей кодовой базы, проведение модульного тестирования, прогона кода через статические анализаторы, кодогенерацию, проверку правил MISRA, CI, TDD, измерение покрытия кода после прогона тестов, стандарт призывает за инспекцию программ.

То что я перечислил выше это в основном для ASIL-A. Допусти мы захотели делать устройство по самому строгому уровню ASIL-D. Какие придется предпринять экстра усилия?

Вот неполный список того, что настоятельно рекомендуется для ASIL-D. Проверять делитель на ноль перед делением, проверять аргументы функций, всегда определять default ветку в операторе switch, для каждого конечного автомата в прошивке рисовать граф переходов (StateFlow), стараться не использовать прерывания и указатели, делать инспекцию программ, прототипы функций должны генерироваться автоматически, код сопровождать псевдокодом, не использовать динамического выделения памяти, избегать глобальных переменных, не использовать скрытного преобразования типов, не использовать скрытную передачу данных или управления, не использовать рекурсию, анализировать ресурсы, которые поглощает программа. При тестировании писать тесты для граничных значений, снимать покрытие ветвей и вызова функций после прогона тестов, проверять код на реальном автомобиле, делать мажорирование калибровочных данных, оснащать калибровочные данные контрольной суммой.

И вообще возникает впечатление, что ISO-26262 это про

за всё хорошее и против всего плохого в процессах разработки ПО

Однако что-то мне подсказывает, что едва ли кто-то реально следует всем требованиям из ISO-26262. Это слишком долго, дорого и трудно. И доступный программистам микроконтроллеров инструментарий едва ли дотянет до того чтобы делать снятие покрытия исполнения embedded кода на target устройстве после прогона модульных тестов. Та же PVS-Studio для статического анализа стоила 1 000 000 RUR/год.

Вывод.
Надеюсь этот текст внес некоторую ясность в первое понимание стандарта ISO-26262 и сподвигнет больше программистов-микроконтроллеров проявить интерес разбираться в том, что всё таки на самом деле написано в ISO26262 как интерпретировать текст ISO-26262. А самое главное как использовать рекомендации стандарта в реальных разработках.

В целом в стандарте ISO-26262 не всё понятно, но полезные советы обнаружить можно.

Этот док мало прочитать один раз. Это как справочное пособие. С стандартом ISO26262 надо методично работать, ежедневно.

Словарь

Акроним

Расшифровка

ASIL

Automotive Safety Integrity Level

ISO

International Organization for Standardization

IEC

International Electrotechnical Commission

ПО

Программное обеспечение

CI

Continuous integration

MISRA

Motor Industry Software Reliability Association

TDD

Test Driven Development

HIL

Hardware-in-the-loop

E/E

electrical and/or electronic

Links
https://docs.google.com/spreadsheets/d/1uO6X80EzW9fGv52g26durAk19ulbCR1fv3DBiyPAyPs/edit#gid=0

https://ru.wikipedia.org/wiki/V-Model

https://en.wikipedia.org/wiki/Automotive_Safety_Integrity_Level

https://habr.com/ru/companies/3rdman/articles/729862/
https://habr.com/ru/companies/swd_es/articles/508240/
https://habr.com/ru/articles/735584/
https://habr.com/ru/articles/525396/
https://habr.com/ru/companies/itelma/articles/519572/
https://habr.com/ru/companies/swd_es/articles/508678/

https://www.youtube.com/watch?v=bGarXE_EaLk&list=PLO2k6yikLVTlrkQJN8pbznro3G-EhkViG&index=2

Вопросы

--Какие ресурсы поглощает ПО?

--Какие сбои могут быть в ПО?

Комментарии (18)


  1. peacemakerv
    03.09.2023 05:45
    +1

    Мдаа, теперь ясно, что на ESP32 не сляпать общенациональные "импортозамещенные" блоки управления двигателями :)


    1. Indemsys
      03.09.2023 05:45
      +1

      Стандарт не указывает на чем можно делать, а на чем нельзя. Там даже есть указание на допустимость использования железа разработанного без соблюдения ИСО 26262.
      Препятствием будет только если сами производители ESP32 не включаться в цепочку документации по сертификации.

      Вот тут эксперт толково разъяснеет границы действия этого стандарта относительно железа - https://www.youtube.com/watch?v=y_wYROXLLUk

      Фактически стандарт ни в чем разработчика не ограничивает, а только регламентирует отчётность. Проблемка только в том что некоторый тип отчётности нельзя создать не обладая технологиями и ресурсами. Пример


      1. spidersarecute
        03.09.2023 05:45
        +1

        ESP32, насколько я знаю, содержит закрытый код от производителя. Как его проверять?


  1. degroeg
    03.09.2023 05:45
    +1

    2--Допустим компания разрабатываю автомобильную аудиосистему. Какой минимальный уровень ASIL (A, B, C, или D) им выбрать для разработки?

    • Если под аудиосистемой о которй идет речь понимать только динамики, то тут никакой ASIL не нужен. Если же имеется в виду управление вот этим всем, то сам плеер или радио это обычно только часть консоли (или того что называется HeadUnit), соотв. разрабатывается с учетом ASIL-Класса для HeadUnit. А вот для кнопок (которые на руле или на той же консоле) надо как минимум предусмотреть вероятность того, что они самопоризвольно НЕ изменят громкость воспроизведения. Например не увеличат громкость до максимума, когда HeadUnit только стартует. Так что тут скорей всего ASIL-А максимум.


    1. latonita
      03.09.2023 05:45
      +1

      Во многих автомобилях головное устройство висит на интерьерной Can шине, к которой бывает подключено много всего более важного типа управления светом на рулевой колонке и иногда приборная панель. И если головное устройство начнёт сбоить и повесит или заспамит can шину, то ничего хорошего не получится. По-хорошему надо ещё и шины более чётко разделять по степеням ответственности, но это тоже дорого выходит для производителя.


      1. degroeg
        03.09.2023 05:45
        +1

        Шина как система из 2 проводов здесь абсолютно не причем. CAN/FlexRay/Ethernet - физически достаточно устойчивые их особенно и не надо защищать, ну разве, что можно в оплетку упаковать, но это реально лишнее.
        А вот какие сигналы/пакеты вы по ним предаете, во это имеет отношение к ASIL. Т.е. для примера, для управления светом сигнал от ручки передается на блок управления светом и на приборную панель, причем с CRC и статусом валидности. И может даже по двум шинам. А те уже (блок управления светом и приборная панель) верифицируют сигнал и договариваются между собой.

        Во многих автомобилях головное устройство висит на интерьерной Can шине - вот вот, а потом статьи на хабре о том, как взломать машину через плеер или через дигностику.
        По нормальному, системы подключаются к Gateway по разным шинам, да еще и через firewall (это и есть наверное "шины более чётко разделять по степеням ответственности") Более того, некоторые системы подключаются к Gateway по двум независимым шинам (привет ASIL-Д)

        Т.е. в конечном счете, все это вопрос архитектуры: хотите ASIL-Д, подключаетесь по двум независимым шинам, посылаете два независимых сигнала, проверяете состояние кнопок (не просто (ВКЛ или ВЫКЛ) а (ВКЛ и не ВЫКЛ) или (НЕ ВКЛ и ВЫКЛ) и т.д. и т.д.


    1. aabzel Автор
      03.09.2023 05:45
      +1

      Да, но ведь аудиосистема из-за ошибки в прошивке может контузить пассажиров.


    1. Indemsys
      03.09.2023 05:45
      +1

      Если посмотреть на такую картинку

      То на ней нет такого модуля как "HeadUnit"

      На моей Hyundai можно получить удар визжащим импульсом по ушам при переключении звука со спикерфона на радиостанцию по окончании звонка во время езды. Это такой баг скорее всего. Редко, но бывает.
      Очевидно он не представляет опасности и под SIL не подпадает.
      Вообще при обсуждении SIL все сводится к оценке ущерба общественно терпимому или не терпимому. А это ещё и от культурного кода зависит.

      Поэтому согласно ИСО 26262 решение об уровне SIL не может приниматься единолично кем-то. Оно принимается согласно протоколу выработки решений. Этому протоколу весь стандарт и посвящён.


      1. degroeg
        03.09.2023 05:45
        +1

        На этой картинке много чего нет, что к ASIL относится : нет ,например, подогрева сидений, а это между прочим то же ASIL-Relevant. Потому что, если во время движения откажет температурный сенсор или передаст неправильное значение и система решит что слишком холодно, то может так оказаться, что волдыри на заднице это не только больно, но и опасно. (Если что, случай из жизни, не мой :-) )
        Нет системы электрических сидений: а ведь это совсем не здорОво, если во время движения, сидение начинает ехать вперед, только потому, что вместо валидного положения, пришло значение, скажем инит.

        "Очевидно он не представляет опасности и под SIL не подпадает." - тут я не соглашусь, потому, что немотивированное повышение громкости, может испугать и можно дернуть руль... А если громкость еще и не уменшается, то можно получить от пассажира или от детей сзади, что не способствует безопасности..

        С остальным, "Вообще при обсуждении SIL все сводится к оценке ущерба общественно терпимому или не терпимому. ....Поэтому согласно ИСО 26262 решение об уровне SIL не может приниматься единолично кем-то. ...." - полностью согласен.


        1. Indemsys
          03.09.2023 05:45
          +1

          Да, что интересно, сертификаторы абсолютно индифферентны к придуманным рискам.
          Можно защищаться от чего угодно дополнительно, никаких претензий.

          Правда в электронике при этом приходится расширять анализ и на эти новые элементы защиты. Никакая новая защита не должна интерферировать со старой.

          Но там сплошные противоречия. Взять тот же круиз-контроль.

          В ранних моделях был так реализован, что имел режим принудительного ограничения скорости. Это давало расслабленно ехать по городу и точно знать, что не нарушаешь скоростной режим. Но можно было на трассе легко попасть в опаснейшую ситуацию при обгоне, когда скорость вдруг не набиралась.

          В последних моделях такого жёсткого режима нет, есть режим следования за впереди идущей машиной, но дорожники стали ставить камеры с нулевой толерантностью. И теперь нервничаешь когда не можешь прецизионно задать максимальную скорость. А такие нервы приводят к резким торможениям перед камерами и повышенному риску аварий.


  1. RV3EFE
    03.09.2023 05:45
    +1

    ISO 26262 обязательный для применения в разработке автомобильной техники или рекомендованный?


    1. degroeg
      03.09.2023 05:45
      +1

      "Auch Hersteller von sicherheitsrelevanten technischen Systemen im automobilen 
      Industriezweig sind verpflichtet, ihre Systeme entsprechend dem Stand der 
      Wissenschaft und Technik in allen Aspekten der Sicherheit zu entwickeln. 
      Die ISO 26262 definiert Anforderungen an die Funktionale Sicherheit elektrischer 
      und elektronischer Systeme."
      "Производители safety-relevant technical systems в автомобильной 
      промышленности, также обязаны разрабатывать свои системы в соответствии с 
      современным уровнем техники во всех аспектах безопасности. 
      ISO 26262 определяет требования к функциональной безопасности электрических и 
      электронных систем.

      Если найдете другой стандарт, который поддерживает/описывает все требования, что и ISO 26262, то можно пользоватся и им. Но по факту все работают с ISO 26262 ( по краийне мере в Германии)


      1. RV3EFE
        03.09.2023 05:45
        +1

        А откуда это? Это на все страны или просто внутри какой-то фирмы написано?

        Если это обязательное, то есть какой-то орган, который контролирует правильность выбора asil для разрабатываемого блока?


        1. degroeg
          03.09.2023 05:45
          +1

          А откуда это? - Сама цитата взята с сайта Automotive | TÜV NORD (tuev-nord.de)

          то есть какой-то орган - тот же TÜV, они например проводят сертификации (проверки выхлопов, потребления, безопасности и т.д.) и обзоры использованных технологий с обьяснениями почему именно они были выбранны.
          Сюда же входят и пакеты документов с доказательствами проделанной работы: например обзор тестов и их результатов. А то китайцы сделали кресла и прислали в Германию. Местные их на краш-тестах проверять, а у кресел подголовники вперед улетают и головы сносят. Они смотрят китайские тесты, а те наполовину fail. Они к китайцам, "мол как так, что это за тесты?", А китайцы такие: "да вот так, написанно было протестировать, мы и протестировали. Никто не сказал что тест должен быть pass."

          Если это обязательное Нет, не обязательно, Но без ISO 26262 не получишь и пол звездочки NKAP.
          Есть и другой момент (цитирую немецкую вики): В настоящее время (по состоянию на 12.2021) юридического обязательства по применению ISO 26262 не существует. Поскольку стандарт также требует учитывать и поставляемые компоненты, на практике практически все автопроизводители требуют от своих поставщиков его применения в новых проектах, так что стандарт проходит через всю цепочку поставок...
          Помимо снижения рисков, другой целью стандарта является создание основы для доказательства тщательности разработки в случае судебного разбирательства ... производитель или дистрибьютор ... должен доказать тщательность разработки и показать, что "...дефект не мог быть обнаружен в соответствии с уровнем развития науки и техники в то время, когда производитель выпустил продукцию на рынок"...
          Обязательства производителя по отношению к уровню развития науки и техники были установлены Федеральным судом при рассмотрении дела о подушках безопасности .


          1. RV3EFE
            03.09.2023 05:45
            +1

            То есть можно сделать что-то, сказать, что делаешь это по iso26262 и мало кто проверит?

            А если будут проверять, то при нормально разработанном приборе может ещё и прокатить?


            1. degroeg
              03.09.2023 05:45
              +1

              То есть можно сделать что-то, сказать, что делаешь это по iso26262 ну что вы такое говорите. Разве автопороизводители ил поставщики кого-то когда-то обманывали? ( гхм... VW гхм :-)
              А так конечно можно все. Если конечно не боитесь присесть на пару лет за то, что вы сэкономили и не провели HiL-Тесты, а у кого-то подгорело в заду.
              Т.е. не использовать конвенции в названиях функций скорей всего прокатит, а вот если сэкономить на юнит тестах, то это скорей всего вылезет или на SiL-Тестах (но их обычно поставщики сами и проводят, так что там возможны варианаты) или сразу на HiL-Тестах.


              1. RV3EFE
                03.09.2023 05:45
                +1

                Как говорил классик: А судьи кто? – За древностию лет..."

                Я именно хочу понять, посадят за то, что по стандарту типа сделано, но подгорело, а если по стандарту не правильно определили класс асил?


              1. aabzel Автор
                03.09.2023 05:45
                +1

                что вы сэкономили и не провели HiL-Тесты, а у кого-то подгорело в заду.Т.е. не использовать конвенции в названиях функций скорей всего прокатит, а вот если сэкономить на юнит тестах, то это скорей всего вылезет или на SiL-Тестах (но их обычно поставщики сами и проводят, так что там возможны варианаты) или сразу на HiL-Тестах.

                Судя по
                https://habr.com/ru/news/712888/

                яндекс.драйв спокойно пилит прошивку телематики, а таких слов как ISO26262 стены их офиса никогда не слышали

                при этом на рем-базе каршеринговые автомобили в гармошку штабелями уложены