Тестирование программного обеспечения для IoT-устройств: ключевые вызовы и решения
«Сьюзен Харрисон одна в доме, когда вдруг двери запираются, окна захлопываются и телефон перестает работать. Сьюзен в ловушке у Eindringling — но это не обычный бандит. Вместо этого Eindringling — компьютер по имени Proteus, искусственный мозг, который научился рассуждать. И терроризировать…»
Фильм 1977 года «Семя демона», история об ИИ, вышедшем из-под контроля, возможно, был немного мелодраматичен в опасности, которую искусственный интеллект представляет для человека, но у него было несколько умных инсайтов в домашнюю автоматизацию и ее потенциальные сбои.
От здравоохранения и домашней автоматизации до транспорта и нефтегазовой отрасли, Интернет вещей (IoT) быстро растет. Исследователи Garner Inc предсказали, что к 2020 году будет 20,4 млрд IoT-устройств, подключенных к интернету.
Так что пока вы смотрите фильмы на своих умных часах, просите свой дом разогреться до предпочтительной температуры и, возможно, переговариваетесь с вашим тостером о том, что считается подгоревшим, пожалейте тестировщиков. Мужчин и женщин, трудящихся за закрытыми дверями, чтобы гарантировать, что эти устройства действительно работают как задумано.
Итак, какие вызовы сталкиваются тестировщики программного обеспечения при тестировании IoT-устройств?
Во-первых, есть очевидное — безопасно ли это?
Безопасность
Быстрый поиск IoT принесет множество статей, обсуждающих проблемы безопасности с IoT. Однако, вместо беспокойства, что ваш чайник может шпионить за вами, есть очень реальная озабоченность добавлением новых или уязвимых устройств к вашим доверенным сетям. С ноутбуком или компьютером ПО можно установить для защиты устройств, но для IoT-устройств поддержка скудна. Многие устройства также имеют имена пользователя и пароли по умолчанию, которые средний пользователь никогда не меняет, делая их уязвимыми.
Тестировщики также должны учитывать более широкое влияние IoT-устройств на интернет-безопасность. Нужно только посмотреть назад на атаку ботнета Mirai, которая использовала такие предметы как цифровые камеры и видеорекордеры для причинения огромного сбоя большим частям американского интернета, сбивая сайты вроде Netflix, Twitter, CNN и Reddit.
Для тестировщика тогда вопросы такие как поток данных между устройствами, шифрование данных и целостность тестируемого ПО (если автоматизируете) — все ключевые проблемы.
Иногда тестировщики должны просто полагаться на то, что пользователи защитят свои сети. Однако с более дешевыми роутерами, часто содержащими меньше мер безопасности, лежит другая проблема для IoT-тестировщиков, это репликация среды, в которой предмет будет работать.
Репликация сред
При тестировании веб-сайта легко для тестировщиков прогонять страницы через мельницу. Открыть страницу на популярных браузерах, запустить на ноутбуках, планшетах и смартфонах и вы практически протестировали, как оно будет использоваться 90% пользователей.
Однако с IoT-устройствами репликация среды пользователя гораздо сложнее. Будет ли устройство использоваться дома или на работе? Будет ли скорость интернета быстрой или медленной? Сколько неизвестных устройств также подключены к этой сети? Будет ли устройству нужно покидать и повторно присоединяться к сети?
Забывая технические аспекты, на какой типах мебели будет стоять устройство? Apple HomePods документированно оставляли белые кольца на деревянных столах, которые были обработаны или лакированы. Пока не строго проблема для скромного тестировщика ПО, это показывает, как широкая вариативность сред означает, что работа репликации условий для тестировщиков сложна.
По этой причине тестировщики должны обеспечить, что у них сильное понимание продукта и стараться охватить как можно больше разных сценариев в своем тестировании, включая то, как устройство будет работать с другими.
Как оно работает с другими устройствами
Тестирование совместимости всегда раздражает тестировщиков, но в мире IoT это становится бесчисленным вызовами. Возьмите кажущиеся бесконечные взаимодействия, которые могут быть созданы на устройствах, поддерживающих IFTTT — там просто слишком много ходов на шахматной доске, чтобы анализировать и тестировать каждое устройство для каждого релиза в каждой среде.
Единственный способ, которым тестировщики могут начать решать эту задачу — фокусироваться на самых популярных операционных системах и методах коммуникации (например, bluetooth), на самых популярных устройствах, так чтобы усилия имели самый широкий охват, прежде чем переходить к более нишевым предметам.
Затраты
Другой вызов — возможно, один из самых очевидных — стоимость. Тестирование чего-то более простого, как веб-сайт, разумно быстро и дешево. Но тестирование IoT-устройств в разных средах с разными интеграциями может быть очень дорого. Время — большой фактор, из-за того, что тестировщикам приходится покрывать так много баз, но другая проблема — возможная необходимость специализированного тестирующего ПО. Несколько исследований намекнули, что комбинация отсутствия разработчиков, не проверяющих свой код на уязвимости безопасности, и отсутствия тщательного тестирования IoT-приложений означает, что тестирование становится очень сложным. И со сложностью приходит стоимость.
Питание и резервное копирование
В отличие от самого распространенного IT-решения выключить и включить снова, некоторые IoT-устройства могут страдать, если есть внезапная потеря питания. Тестировщики должны обеспечить, что они тестируют, как устройство меняется после потери питания — особенно для предметов в секторах здравоохранения или промышленности.
Это станет меньше проблемой, пока беспроводное питание продолжает расти, но до тех пор переменные нужно учитывать. Рассмотрите умную сигнализацию проникновения или камеру безопасности, если система падает из-за бага или падения питания или связи, они по сути бесполезны.
Как или даже если устройство делает резервную копию — еще одна проблема, особенно когда вы учитываете, как новое или обновленное ПО отреагирует на старые данные.
Обновления
Прошивка — неотъемлемая часть многих IoT-устройств, и нет ничего, что разработчики любили бы больше, чем выкатывать новые обновления. Но для тестировщика обновления могут нести с собой монстральную головную боль от багов. Если пропущенный баг проходит в стандартный компьютер, то проблему обычно можно просто протестировать и исправить до того, как будет слишком много ущерба. Но если баг проходит в IoT-устройство, это может иметь гораздо более физиологические последствия.
Возьмите проблему с термостатом Nest обратно в январе 2016. Обновление ПО в предыдущем декабре привело к багу, разряжающему батарею некоторых термостатов, вызывая деактивацию системы. В конечном счете, компания выкатила девятишаговый фикс для пользователей, но правильное и тщательное тестирование могло сберечь дрожь пользователей и лицо компании.
Так что пока мы не в опасности, что наши дома станут демоном ИИ Proteus; если тестировщики ПО не примут должные меры предосторожности, они рискуют остаться в холоде.
Интернет вещей
- Почему IoT-устройства с Wi‑Fi создают растущую угрозу безопасности
- Застой внедрения IoT: почему ожидания не оправдались
- Как узкополосные технологии питают IoT-революцию
- Заложение фундамента для успеха Enterprise IoT
- Обновления IoT-устройств: преодоление проблем распространения в современных офисах
- Топ-3 вызова подготовки IoT-данных для промышленного успеха
- 5 ключевых вызовов, стоящих перед Интернетом вещей сегодня
- Пять основных вызовов IoT: глубокий погружение в 5C — Часть 1
- Как IoT революционизировал здравоохранение во время пандемии Covid-19
- Устранение слепой зоны IoT в постпандемийном мире