Тестирование исключительно важно и для финансового программного обеспечения, в чем американская фирма «Knight Capital» могла убедиться на своем горьком опыте 1 августа 2012 года, потеряв 440 миллионов долларов за 45 минут после установки непротестированного продажного «софта»{19}. Знаменитый триллиондолларовый обвал 6 мая 2010 года, известный как «Черный вторник» или «Flash Crash», заслуживает особого внимания по другой причине. Хотя в этот день на протяжении получаса шли массовые компьютерные сбои, во время которых цены на акции некоторых крупных компаний, вроде «Procter & Gamble», колебались от пенни до 100 000 долларов США, проблема была вызвана не «глюками» в программах и не ошибками в работе компьютеров, которые можно было бы выявить с помощью тестирования. Причина заключалась в обманутых ожиданиях: автоматизированные продажные программы многих компаний должны были работать в непредвиденной ситуации, когда предпосылки их работы оказались неверны — например, неверной оказалась предпосылка о том, что, если фондовый компьютер сообщает цену акции в один цент, то это означает, что цена акции действительно один цент.
«Черный вторник» наглядно продемонстрировал важность того, что в информатике принято называть
Нет необходимости говорить, что искусственный интеллект открывает большие возможности для улучшения производства, управляя роботами, использование которых повышает эффективность и точность. Неустанные в своем совершенствовании 3D-принтеры могут теперь создавать прототипы всего чего угодно, от офисных зданий до микромеханических устройств размером с крупицу соли{21}. В то время как огромные промышленные роботы строят автомобили и самолеты, компактные и недорогие фрезерные станки с компьютерным управлением и другие подобные им устройства благодаря их доступности попадают не только на крупные заводы, но их могут себе позволить и тысячи частных энтузиастов, «мейкеров», по всему миру, которые в своих маленьких коммунальных мастерских — «фаб-лабах» — материализуют свои идеи{22}. Но чем больше роботов нас окружает, тем важнее, чтобы их программное обеспечение подвергалось всесторонней проверке — тестированию и валидации. Первым человеком, которого, как известно, убил робот, был Роберт Уильямс, рабочий на заводе «Форд» в городе Флэт-Рок штата Мичиган. В 1979 году вышел из строя робот, который должен был доставлять запчасти со склада, и Роберт Уильямс отправился за запчастями сам. Внезапно робот бесшумно заработал и разбил ему голову, и продолжал бить его об стену в течение 30 минут, пока другие рабочие не узнали о происшедшем{23}. Следующая жертва робота — Кэндзи Урада, инженер-эксплуатационник с завода «Кавасаки» в японском городе Акаси. В 1981 году, занимаясь сломанным роботом, он случайно задел выключатель и был насмерть раздавлен гидравлической рукой робота{24}. В 2015 году 22-летний подрядчик на одном из заводов «Фольксваген» в немецком Баунтале собирал робота, способного подбирать автомобильные запчасти и устанавливать их на место. Но что-то случилось, и робот схватил его самого и раздавил насмерть об металлическую плиту{25}.
Хотя каждое подобное событие — трагедия, важно отметить, что они составляют ничтожно малую часть всех несчастных случаев на производстве. Более того, общее их число
Рис. 3.3
Обычные промышленные роботы дороги, а написание программ для них чрезвычайно трудоемко, и нынешний тренд — к отказу от них в пользу роботов с искусственным интеллектом: они могут учиться прямо у рабочих, не умеющих писать программы.