Современное общество все больше зависит от автономных систем, к которым относятся интеллектуальные комплексы обслуживания, самоуправляемые транспортные средства, инструменты дистанционной хирургии [1] и т. п. Нередко мы даже не знаем, когда имеем дело с автономными системами: все они успешно проходят тест Тьюринга. Однако рост популярности таких решений порождает трудности, в частности, связанные с обеспечением прозрачности принципов выбора решений в сложных ситуациях и подтверждением того, что такой выбор был верным. Именно для этого требуется валидация.

Основой обеспечения качества постоянно обновляемых по беспроводным соединениям решений на базе технологий машинного обучения должны стать верификация (предоставление объективных свидетельств соответствия установленным требованиям) и валидация, причем выполняемые непрерывно. Исправления и изменения должны вноситься автоматически по надежному каналу и без помех работе, а также необходимо исключить возможность запуска программно-управляемых систем и целых инфраструктур, не имеющих свежих обновлений. Особенно это касается критичных к безопасности систем, таких как автомобили и производственные процессы. Еще более строгие требования предъявляются к медицинскому оборудованию — для него уже необходима иерархическая система контроля качества.

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

Рис. 1. Пять ступеней от автоматизации к автономии

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

Автомобиль-робот пятого уровня (полностью автономный) управляет своим движением без вмешательства человека даже в самых сложных положениях — такая машина должна уметь не хуже человека справляться с дорожной обстановкой как в обычных, так и в непредвиденных ситуациях. Компании Google и Uber уже получили в США разрешения на эксплуатацию самоуправляемых автомобилей, однако ряд ДТП со смертельным исходом подрывают доверие к таким машинам [2]. Вполне очевидно, что возможностей существующих для них систем валидации еще недостаточно [3] — нужны новые методы тестирования, позволяющие предусмотреть любые смертельно опасные ситуации. Кроме того, мало проводить тестирование только на последних стадиях разработки — оно должно стать частью всех этапов жизненного цикла продукта. В частности, в процессе проектирования робомобилей тестированию и валидации необходимо уделять особое внимание.

В отличие от автоматизированной системы, которая не может «рассуждать» о последствиях своих действий и неспособна изменить заранее запрограммированный алгоритм, автономная должна «понимать» стоящую перед ней задачу и выбирать способ ее решения с учетом целей, имеющихся навыков и опыта обучения. При этом у автономных систем есть определенные преимущества перед людьми в том, что касается скорости обработки, повторяемости действий, способности быстро реагировать в сложных условиях и т. п. В аэрокосмической отрасли автономным системам давно уже доверяют управление полетами, а в автотранспортной, согласно прогнозам, благодаря роботам число смертельных ДТП может сократиться на 90%. Ожидается, к примеру, что при повсеместном применении автомобилей-роботов люди будут ежедневно тратить в два раза меньше времени на передвижение до работы и обратно. В перспективе автономные системы также будут все шире применяться в авиации и промышленном производстве.

Валидация автономных систем

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

За недолгую историю применения автономных систем произошло несколько аварий с фатальным исходом. В одном случае причиной стало то, что самоуправляемый автомобиль принял белый автопоезд за облако, а в другом — робот не заметил пешеходов на дороге. Еще одна авария случилась, когда у водителя робомобиля произошел сердечный приступ и он уже не мог проконтролировать действия машины. В результате робомобиль, пытаясь избежать столкновения с деревом, лишил жизни матери и ребенка. Если бы машина въехала в дерево, мог бы погибнуть водитель, но два человека остались бы живы.

По поводу валидации автономных систем существует немало открытых вопросов — например, как задавать критерии надежности, как проанализировать и оценить процесс принятия решения постфактум, как осуществлять надзор и контроль над такими системами и как определить ответственного в случае отказа.

Рис. 2. Методы валидации автономных систем

На рис. 2 собраны методы валидации автономных систем в зависимости от степени их прозрачности. «Черный ящик» означает отсутствие сведений о принципах действия и области покрытия применяемого метода, а «прозрачный ящик» — наличие этой информации. Кроме того, методы распределены в зависимости от возможности автоматизации и применения регрессионных методик за счет обновления ПО.

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

Валидация автономных систем

Внесение неисправностей

Методы проверки этой группы основаны на внесении при помощи внешних средств неисправностей в оборудование испытуемой системы путем прямого контакта или без него. К методам, требующим прямого контакта, относятся, например, принудительное увеличение силы тока и организация перепадов напряжения. К бесконтактным — радиационное облучение, воздействие электромагнитными полями и т. д. Такие воздействия могут вызывать порчу содержимого памяти, отказы оборудования и другие события, недопустимые для критичных к безопасности систем.

Функциональное тестирование

Такие методы делятся на три типа: сенсорика, принятие решений и действия. Их задача состоит в оценке способности самоуправляемого автомобиля использовать различный функционал для решения конкретной задачи аналогично тому, как это делают люди. Например, при тестировании системы зрения автомобиль должен уметь узнавать другие легковые машины, грузовики, пешеходов и т. д. Наборы опознанных им объектов могут служить входными данными для принятия решений, а серии решений могут обусловливать действия. При проверке функциональности соответствующие сценарии распределяются между различными компонентами, которые тестируются по отдельности.

Оборудование в цикле тестирования

Ни одно моделирование не способно точно воспроизвести реальный мир, поэтому для восполнения пробелов модели применяется метод «оборудование в цикле тестирования» (hardware in the loop, HIL), предусматривающий замену некоторых элементов моделирования на реальные аппаратные компоненты. Например, применяется настоящая камера, которая при валидации автомобиля-робота фиксирует ситуацию дорожного движения, отображаемую на экране монитора. Возможен и более сложный вариант, когда вместо смоделированных компьютером транспортных средств используются другие машины-роботы. В этом режиме, помимо камеры, можно тестировать и другое оборудование — например, радиолокатор и лазерный дальномер.

Автомобиль в цикле тестирования

Взаимодействие с человеком сильно влияет на поведение частично автономных машин, однако перечисленные методы этого не учитывают. Можно проводить безопасные симуляции при участии реальных автомобилей: водителю демонстрируют смоделированную внешнюю среду и регистрируют его взаимодействия с машиной, которая при этом физически передвигается по площадке без препятствий, имитируя инерциальные явления и реагируя на ситуации, заложенные в модели. Безопасность здесь — главное преимущество: поскольку реальных препятствий нет, нанесение вреда водителю исключено независимо от степени опасности виртуальной ситуации.

Симуляторы

Симуляторы — замкнутые пространства, в которых при помощи ПО и специального оборудования имитируется работа физических систем с регистрацией поведения водителя или оператора в виртуальной внешней среде. В симуляторах используются гидравлические приводы и электродвигатели, что приближает инерциальные явления к реальности. Существуют симуляторы, обучающие работе с промышленными автоматизированными системами, с оборудованием для проведения хирургических операций, а также симуляторы железнодорожные, автомобильные и др.

Тестирование перебором

Часто это последняя стадия валидации, когда готовая система выводится на дорогу и испытывается в условиях реального движения с регистрацией показаний датчиков в стандартных и критических ситуациях. Полученные данные затем анализируются для окончательной оптимизации системы. Сложность этого этапа обусловлена гигантским объемом обрабатываемой информации — например, только стереокамера генерирует 100 Гбайт на каждый пройденный километр, поэтому важную роль на этой стадии играют технологии больших данных.

Интеллектуальная валидация

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

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

Интеллектуальное тестирование

Для систем искусственного интеллекта и машинного обучения необходима прозрачность работы алгоритмов — например, знание правил, по которым нейронная сеть принимает решение о предоставлении кредита или выбирает реакцию автомобиля-робота в условиях совпадения нескольких опасных ситуаций. Классические средства отслеживания и регрессионного тестирования тут не подойдут, а со временем автоматические средства верификации и валидации станут все более «умными» благодаря использованию больших данных и способностям динамического анализа и улучшения качества ПО.

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

Рис. 3. Интеллектуальное тестирование автономных систем. PS — датчик, WP — комплекс работ

Потенциал интеллектуального тестирования достаточно высок. На системном уровне, к примеру, могут возникать сомнения относительно выбора и покрытия тестовых случаев, а интеллектуальная система могла бы помочь с их подготовкой. На начальном этапе можно было бы обеспечить содействие в ранжировании уже готового набора тестовых случаев, что позволило бы тестировщикам провести испытания быстрее и с более полным ситуационным покрытием. Тестирование на уровне компонентов или блоков поможет улучшить сценарии, и возможности интеллектуальной системы при этом могут варьироваться от помощи в отборе входных данных и проверке выходных до сложного автоматического синтеза тестовых случаев на базе исходного кода или пользовательского интерфейса. На рис. 3 приведен обзор средств интеллектуального тестирования. В отличие от методов тестирования перебором, интеллектуальные методы учитывают очевидные и скрытые зависимости, обеспечивая баланс между действенностью и экономической эффективностью. Конкретный пример приведен во врезке «Когнитивное тестирование автономных систем».

 

Когнитивное тестирование автономных систем

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

При замене какого-либо компонента распределенной системы могут возникнуть функциональные ошибки в других частях. Как защитить такую систему при изменении ее компонентов в период эксплуатации? Как сохранить соответствие стандартам безопасности и защищенности после изменения ПО отдельного модуля?

Отраслевой опыт свидетельствует об эффективности трехэтапного процесса оценки последствий обновления ПО (рис. 3). Сначала нужно идентифицировать изменившийся модуль и его местонахождение в сети. Затем составляется распределенная логическая модель всей системы для анализа влияния изменения на другие модули. Ее необходимо обработать в автоматическом режиме с учетом моделей распределенных компонентов.

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

 

Перспективы

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

В связи с ростом влияния автономных систем на всю нашу жизнь, инженерам предстоит добиться того, чтобы машины начали решать возникающие перед ними дилеммы существенно лучше, чем люди. Для завоевания доверия им нужно иметь качество как минимум на порядок выше, чем у систем, управляемых людьми. В конечном счете задача валидации и состоит в том, чтобы обеспечить доверие. Алан Тьюринг в свое время заметил: «Мы можем заглянуть в будущее лишь на немного, но при этом мы можем увидеть очень многое из того, что предстоит сделать». Для современного состояния автономных систем трудно подобрать более справедливое высказывание: переходный период займет еще много времени, причем интеллектуальное тестирование станет одним из главных средств формирования доверия к автономным системам.

Литература

1. M. Weyrich, C. Ebert. Reference architectures for the Internet of Things // IEEE Software. — Jan. — Feb. 2016. — Vol. 33, N. 1. — P. 112–116.

2. M. Santori, D. A. Hall. Tackling the test challenge of next generation ADAS vehicle architecture. National Instruments. Austin, TX [Online], 2016. URL: http://download.ni.com/evaluation/automotive/Next_Generation_ADAS_Vehicle_Architectures.pdf (дата обращения: 05.12.2019).

3. M. Rodriguez, M. Piattini, C. Ebert. Software verification and validation technologies and tools // IEEE Software. — Mar. 2019. — Vol. 36, N. 2. — P. 13–24.

Кристоф Эберт (christof.ebert@vector.com) — преподаватель; Михаэль Вейрих (michael.weyrich@ias.uni-stuttgart.de) — директор, Институт промышленной автоматизации и программной инженерии, Штутгартский университет.

Christof Ebert, Michael Weyrich, Validation of Autonomous Systems. IEEE Software, September/October 2019, IEEE Computer Society. All rights reserved. Reprinted with permission.