Тестирование – залог предсказуемости
и качества (часть 1)

Почему тестирование так важно


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

Даже если в разработанном решении все точно соответствует заявленным характеристикам, все равно лучше провести нагрузочное тестирование. Здесь как с покупкой машины – при тест-драйве, например, может выяснится, что заявленные цифры расхода топлива носят чисто маркетинговый характер, а в реальности все не так.
При проектировании системы автоматизированного приземления Airbus А310 в алгоритм был заложен автоматический выпуск закрылков в положение «торможение» при касании колесами шасси земли: если закрутилось колесо – автоматически выпускаются закрылки. При тестовых посадках на сухой бетон этот алгоритм отлично срабатывал. И вот однажды, на испытаниях при посадке на мокрой после дождя полосе, самолет начал просто скользить выпущенными колесами шасси по мокрому бетону как по льду. И когда он вылетел за пределы посадочной полосы, начали крутиться колеса шасси, и только тогда закрылки выпустились на торможение. Если бы не тщательное и всестороннее тестирование, обязательное для пассажирских самолетов, такой скрытый «баг» мог бы привести к печальным последствиям в реальной эксплуатации, не говоря уже о потерях денег и времени на устранение просчета разработки в большом парке авиалайнеров1.

Усложнение повышает важность тестирования

Любой бизнес не стоит на месте, предприятия расширяются, как и требования пользователей. Соответственно, любые программы, сети, ИТ-системы постоянно изменяются – вносятся новые сетевые элементы, новые сервисы и новые системные функции.

Меняется и сама природа ИТ-систем – на смену физическим устройствам приходят их виртуализированные сущности: контейнеры и микросервисные архитектуры, все чаще используются гибридные и комбинированные подходы. Причем, этот процесс не происходит одномоментно, и в течение довольно продолжительного времени физическая инфраструктура должна работать вместе с виртуальной, а конечный пользователь сервисов и приложений этого замечать не должен.
Растут и объемы обрабатываемого трафика, как и его профиль и структура. Например, в Интернет-трафике растет доля видео и облачных сервисов, появляются новые и совершенствуются протоколы и методы шифрования (TLS 1.3, HTTP/2, HTTP/3, QUIC, WebSocket). Рост Интернета вещей вызывает необходимость в обработке растущих объемов трафика от огромного количества датчиков и сенсоров.

Рост киберпреступности вызывает необходимость в системах обнаружения и предотвращения вторжений IDS/IPS, NGFW, WAF, SIEM, Zero Trust, SASE, которые должны эффективно работать параллельно с основной ИТ-системой.

Решение IXIA

Тестирование сетевой фабрики AI
(RoCEv2)

IXIA Network Emulator 3

Тестирование приложений и решений ИБ в масштабах предприятия
И вот, на каком-то этапе мы замечаем, что система с новыми устройствами, функционалом или с новым профилем трафика работает не так, как раньше. Например, однажды было обнаружено, что внедрение функций IDS/IPS может снижать пропускную способность сети на 80%2. К аналогичному негативному эффекту могут приводить ошибки и неоптимальные настройки, и даже банальный рост абонентской базы/бизнеса – узкие места пропускаются, а бюджета на расширение мощностей не запланировано на этот год.

Отсюда становится ясной необходимость и важность тестирования. Тщательное проведенное тестирование в лаборатории обеспечит:
  • принятие стратегических решений и выбор поставщиков/технологий на основе реальных фактов и измерений
  • оптимизацию закупленных решений и снижение расходов на устранение ошибок в производственных системах в разы
  • своевременное планирование бюджетов и его обоснование на расширение мощностей/емкости инфраструктуры и сервисов
  • контроль качества выпускаемой продукции, защиту репутации и получения конкурентных преимуществ за счет ускорения процессов QA/R&D
  • подкрепление презентаций проектов для внешних и внутренних заказчиков реальными фактами и наглядными демонстрациями
Последнее особенно важно. Наверное, многие сталкивались с тем, что в презентациях и маркетинговых материалах часто указаны, например, цифры производительности для максимальной конфигурации решения или продукта. Но в жизни редко когда такие огромные конфигурации используются (практически никогда). Производительность реальной конфигурации можно примерно вычислить, но точную цифру производительности того или иного продукта/решения можно увидеть только при нагрузочном тесте.

Почему тестирование становится критически важным

Около 30 лет назад существовал всего один стандарт беспроводной корпоративной сети — 802.11. Сейчас только в семействе беспроводных технологий 802.11 около 20 стандартов, не считая новых технологий беспроводных локальных сетей. То же касается сетей Ethernet, систем хранения данных, виртуализации, SDN и многих других технологий. По мере усложнения инфраструктуры необходимо не только экспертное знание, но и понимание влияния изменений среды на работу приложений. Здесь и приходит на помощь тестирование. Чем пытаться смоделировать и предположить зависимости/нюансы реализованной архитектуры (а еще хуже – идти на поводу маркетологов производителя системы), кратно быстрее сделать измерение, получить факты, принять решения.

Исследования института Ponemon показывают, что исправление ошибок, найденных при тестировании в процессе разработки, обходится в 90 раз дешевле, чем исправление их на этапе эксплуатации.

Заключение

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

Часть 2 см. здесь

Решение IXIA UHD100T32

Тестирование приложений и решений ИБ в масштабах предприятия

Решение IXIA UHD400T
Ultra-high Density

Тестирование приложений и решений ИБ в масштабах предприятия

Решение IXIA AresONE-M 800GE

Тестирование приложений и решений ИБ в масштабах предприятия

РУТЕСТ

Почему стоит выбрать РУТЕСТ для тестирования
  • Комплексный подход

    Мы охватываем все аспекты тестирования, включая методологии, аренду решений и автоматизацию
  • Опыт и профессионализм

    Мы работаем с передовыми технологиями и знаем, как внедрить их в ваш бизнес
  • Экономия времени и ресурсов

    Наши услуги позволяют снизить затраты на тестирование, сохраняя высокое качество