Научно-исследовательская и испытательная лаборатория терминального оборудования научно-исследовательского и испытательного центра ОАО "Гипросвязь"

НИИЛ ТО НИИЦ
ОАО "Гипросвязь"

Методологии тестирования производительности сетевых устройств

Введение

При оценке и подтверждении различных характеристик испытуемых устройств различают четыре основных типа выполняемых испытаний:

испытание на соответствие, предназначенное для подтверждения поведения устройств в соответствии со стандартами, соглашениями, правилами;

испытание на функциональность, предназначенное для подтверждения того, что устройство выполняет все заявленные функции (например, поддержка протоколов, фильтрации, управления и т.д.);

испытание производительности, предназначенное для оценки поведения устройства под нагрузкой;

пассивное тестирование, предназначенное для анализа работы протоколов интрузивным или неинтрузивным способом.

Испытание на соответствие подразумевает под собой:

подтверждение строгого соответствия стандарту;

проверку всех аспектов рекомендательного документа (RFC);

выполнение сотен индивидуальных тестов;

идентифицирование разделов RFC, для которых была выполнена проверка;

обеспечение корректности обработки ошибочных состояний;

отображение полноты реализации обязательных «SHALL» и опциональных «MAY» элементов;

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

Испытание на соответствие используют на начальных стадиях разработки устройств. Его используют для подтверждения того, что устройство следует правилам той RFC, на соответствие которой выполняется проверка. Испытание на соответствие гарантирует точность реализации протокола внутри данного продукта, а также даёт возможность выполнить повторную проверку продукта в случае его модификации, например, после обновления программного обеспечения, коррекции обнаруженных ошибок или добавлении/удалении функций.

Испытание на функциональность подразумевает под собой:

подтверждение «системных» компонентов;

подтверждение внутренних функций управления;

подтверждение функций плоскости контроля и плоскости данных;

подтверждение проприетарных функций между системами (например, инкапсуляция, транковые протоколы);

проверку корректности реализации и функционирования коммуникационных протоколов;

менее строгие требования, чем при выполнении испытания на соответствие;

проверку взаимодействия между различными функциями;

негативное испытание (например, внесением искажений и варьированием параметров/состояний стабильного устройства или сети).

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

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

выполнение эталонного испытания в условиях низкой нагрузки на устройство;

проверка выполнения эталонного испытания в условиях ожидаемой нагрузки;

диагностирование проблем при выполнении эталонного испытания в условиях высокой нагрузки.

При этом, реалистичность испытаний производительности обеспечивается за счёт использования таких факторов, как:

смесь пакетов различных типов и размеров;

характеристики полосы пропускания реалистичного трафика;

широкое распределение адресов источников и получателей;

различные соотношения одноадресного, группового и широковещательного трафиков;

множество различных потоков и условий, что вынуждает устройство использовать приоритизацию для QoS.

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

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

нагрузочное испытание повышает на один или два уровня испытание производительности для оценки функционирования устройства при нормальных рабочих условиях;

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

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

П.С. Янков