Блог A1QA

О тестировании и качестве ПО

Пол Джеррард про IoE: Как же нам с этим всем справиться? Часть 1

paul-gerrard Пол Джеррард – консультант, преподаватель, автор книг, веб-мастер, программист, тестировщик, докладчик, организатор конференций, издатель и даже тренер по спортивной гребле. Он проводит семинары по различным вопросам в сфере тестирования и обеспечения качества, обучающие мероприятия и мастер-классы в Европе, США, Австралии, Южной Африке.

Пол окончил Оксфорд и Имперский колледж Лондона, является директором Gerrard Consulting Limited и руководит UK Test Management Forum.

В 2010 Пол Джеррард был награжден премией EuroSTAR Testing Excellence Award, а в 2013 году получил премию TESTA Lifetime Achievement Award. Он занимается программированием с середины 1970-х годов и отдает предпочтение языку программирования Python.

AIQA: С чего началась Ваша карьера в тестировании программного обеспечения?

Пол Джеррард: Свою первую работу как дипломированный инженер-строитель я получил в 1980 году. В первый же день работы начальник сказал мне: «Сейчас работы для тебя нет. Но нам только что привезли новый компьютер. Вот инструкции, разберись, что с ним делать». Я работал в маленьком офисе и быстро стал главным специалистом по компьютерной технике. Именно так начал свой путь в области программного обеспечения и тестирования.

В начале 80-х я несколько раз менял работу. Затем я устроился в компанию Mercury Communications. В то время рынок телекоммуникаций Великобритании только зарождался и компания Mercury Communications была главным конкурентом British Telecom.

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

В 1992 году я устроился на работу в лондонскую компанию Systeme Evolutif (SE), которая занималась тестированием программного обеспечения. Вся деятельность SE была основана на трех основных услугах в области тестирования ПО – консалтинг, обучение и аутсорсинг. Я принимал участие в организации первой конференции Eurostar в1993. Вместе с Дороти Грэхем и американским инженером по обеспечению качества ПО мы руководили этой конференцией в 1994 и 1995 годах. Мы внесли свой вклад в развитие DSDM Consortium, разработку стандартов тестирования BCS SIGIST, британского стандарта BS 7925, схем ISEB Testing Certificate. С 2004 года мы проводим UK Test Management Forum.

В 2007 году я приобрел компанию SE и переименовал ее в Gerrard Consulting. Мы работаем в Великобритании и принимаем активное участие в международной конференции тестирования. Кроме того, я вхожу в состав консультативного совета по информационным технологиям в компании TestPlant Limited.

A1QA: Что вы можете сказать о таком популярном явлении, как интернет вещей (IoT)?

Пол Джеррард: Появление интернета вещей (Internet of Things), а также Internet of Everything (IoE) вызывало значительные изменения в области информационных технологий.

Я считаю, что отношения клиент-сервер ранее имели большое значение, так как все основывалось именно на них: Интернет, веб-сервисы, мобильные компьютеры и т.п.

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

Если IoE продолжит развиваться и оправдает прогнозы экспертов, каждый из нас почувствует его влияние. Некоторые считают, что к 2020 году в мире будет более 50 млрд подключенных к интернету устройств. Конечно, никто не может сказать, случится ли так на самом деле, но все понимают, что мир IT постоянно развивается. А ведь каждое устройство или программный продукт необходимо тестировать! Как же нам с этим всем справиться?

A1QA: Что будет необходимо тестировать в IoE?

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

Со всеми проблемами тестирования IoE невозможно справиться за пару дней. Они требуют длительной работы и пристального внимания. Я могу предположить лишь некоторые направления и возможности IoE.

Масштаб. Очевидно, что масштаб IoE – это первая трудность, с которой могут столкнуться тестировщики. Скорее всего, будут присутствовать проблемы масштабируемости на различных уровнях архитектуры, и нам будет необходимо проводить нагрузочное и стресс-тестирование, а также тестирование производительности.

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

Функциональность на уровне объекта и сервера. Основная часть функциональности, которую необходимо тестировать, будет находиться на локальных узлах, агрегаторах и инфраструктуре дата-центров. Мобильные и веб-приложения будут доставлять данные, визуализацию и контроль над другими аспектами архитектуры. Архитектуры будут варьироваться от простых веб-приложений до сложных систем, включающих десять, двадцать и более подсистем.

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

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

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

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

Проблемы совместимости. Мобильные устройства будут взаимодействовать с большим количеством статических устройств. Например, в так называемом Smart City, автомобили будут самостоятельно выбирать оптимальный маршрут, взаимодействуя с другими автомобилями. Кажется, что все продумано. Однако автомобили не смогут определить, где им можно припарковаться. В то же время, эти автомобили не должны мешать другому транспорту и пассажирам.

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

Логистика Big Data. Основная часть информации будет храниться в базе данных. За один день на заводе среднего размера может быть собрано около терабайта данных. Требования к производительности и надежности могут предусматривать дублирование этих данных. Сервис хранения данных будет частью тестирования независимо от того, где и как долго хранится информация.

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

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

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

A1QA: Какое влияние IoE может оказать на тестирование?

Пол Джеррард: Для начала давайте вспомним, с чего начиналось тестирование.

  1. Вплоть до середины 1980-х годов у каждого экрана, как правило, была одна точка входа и одна точка выхода. Единственным, что можно было создать и увидеть на экране, был текст. Все работало относительно просто, но у одной системы было несколько экранов.
  2. Когда были созданы приложения с графическим интерфейсом, появилась возможность отображать несколько окон одновременно. Появилось много точек входа и выходы. Теперь можно было увидеть графику, просмотреть видео и услышать звуки.
  3. Одновременно с появлением GUI, архитектура клиент-сервер стала применяться в большинстве приложений. Работа приложения перестала ограничиваться рабочими станциями и начала включать взаимодействие нескольких связанных серверов. Все большее внимание стали уделять производительности и надежности.
  4. Появление интернета стало революцией в сфере IT. Хотя, на самом деле, это всего лишь частный случай взаимодействия клиента и сервера. Реальным прорывом стало появление частных сетей, возможностей и информации, доступной в интернете. Безопасность и конфиденциальность стали важной проблемой.
  5. Сейчас мы живем в эпоху «мобильной революции». Демократизация ПО предполагает, что приложения доступны в любое время и в любом месте на различных устройствах с различными конфигурациями. Появилось настолько много устройств и конфигураций, что их всех просто невозможно протестировать.
  6. На вершине всех вышеупомянутых технологий – IoE. Ожидается, что с развитием этого направления использование интернета вырастет в сто раз. IoE будет объединять все устройства: начиная с чипов стоимостью меньше доллара и заканчивая самолетами.

Несмотря на все преимущества, IoE влечет за собой массу новых испытаний, как для разработчиков и тестировщиков, так и для простых пользователей.

Читайте вторую часть интервью с Полом Джеррардом здесь.

Поделиться статьей: