поиск по сайту
О выборе инструмента автоматизации тестирования для программно-аппаратных СЗИ

Т.М. КАННЕР, А.И. ОБЛОМОВА

РОССИЯ, МОСКВА, ОКБ САПР

О выборе инструмента автоматизации тестирования для программно-аппаратных СЗИ

При разработке современных средств защиты информации (СЗИ) требуется максимально быстрая реакция разработчика на запросы пользователей и изменения ситуации во всех областях деятельности, включая отрасль информационной безопасности (ИБ), существенно повышает конкурентоспособность продукта на рынке. Важнейшим этапом разработки СЗИ является тестирование, позволяющее выявлять недостатки до поступления продукта на рынок. Одним из важных требований к этапу тестирования является соответствие сроков выполнения тестирования запланированным срокам выпуска продукта.

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

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

В тестировании СЗИ, в отличии от других продуктов выполняются проверки не только штатного поведения программы, но и моделируются «атаки». При применении автоматизированного тестирования нет принципиальных отличий тестирования штатного поведения или моделирования атак.

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

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

Для того чтобы начать использовать автоматизированное тестирование для СЗИ, необходимо сначала выбрать средство автоматизированного тестирования, подходящее для данных целей из множества, представленных на рынке.

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

Выбор того или иного средства авт. тестирования зависит от потребностей разработчиков при создании конкретных СЗИ.

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

  • наличие возможности тестирования как настольных (desktop), так и web-приложений;
  • возможность как функционального, так и нефункционального тестирования;
  • поддержка различных версий операционных систем (Microsoft Windows, Linux, МacOs и т.д.);
  • работоспособность в 32х разрядных и 64х разрядных системах;
  • цена установки и эксплуатации;
  • трудоёмкость освоения;
  • наличие технической поддержки и ее качество.

На рынке средств автоматизации тестирования существует очень много различных решений. Рассмотрим наиболее популярные из них: QuickTest Professional и LoadRunner компании HP, Rational компании IBM, Silk компании Borland, TestComplete от AutomatedQA и Sikuli — разработки User Interface Design Group (MIT).

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

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

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

Как и во многих программных продуктах, так и в большинстве СЗИ интерфейс зачастую представлен сложными элементами (такими как иерархические списки, выпадающие меню и т.д.), поэтому необходимо чтобы средство автоматизированного тестирования имело возможность работать с такими элементами интерфейса не как с графическими образами, а как с объектами, имея доступ к их свойствам и методам. Эта возможность отсутствует в Sikuli.

Большая часть существующих СЗИ работает в операционных системах семейства Microsoft Windows, поэтому вопрос необходимости поддержки Linux индивидуально решает разработчик в каждом конкретном случае. Из рассматриваемых средств, QuickTest Professional, LoadRunner и TestComplete поддерживают только платформу Microsoft Windows, Rational и Silk позволяют организовывать тестирование в Linux. Все средства обладают поддержкой как 32х разрядных, так и 64х разрядных систем. Следовательно, если разработчику СЗИ необходима поддержка Linux, то подходят только Rational и Silk.

Рассмотрим цены установки и эксплуатации. Все рассматриваемые продукты, кроме QuickTest Professional и LoadRunner, принадлежат к одному ценовому диапазону. Учитывая единовременный характер трат на установку и примерно равную стоимость дальнейшей поддержки от различных конкурентов, можно прийти к выводу о равнозначности средств Rational, Silk и TestComplete и нецелесообразности использования средств QuickTest Professional и LoadRunner в связи с большей стоимостью при прочих равных условиях.

При освоении конкретных продуктов важно обратить внимание на количество и удобство поддерживаемых языков для написания скриптов, что обеспечит снижение трудоемкости освоения конкретных средств автоматизации тестирования. TestComplete предоставляет на выбор VBScript, JScript, C++Script, C#Script и DelphiScript, а в Rational доступны Java, VB.NET. Набор поддерживаемых языков, предлагаемый средством TestComplete, наиболее полный и разнообразный из всех рассматриваемых средств автоматизированного тестирования. Это является важным преимуществом TestComplete по сравнению с остальными аналогичными средствами. В некоторых случаях при тестировании СЗИ необходимо иметь возможность запуска приложений сторонних производителей и обращений к сторонним библиотекам, например, при работе с прерывателем питания аппаратной части СЗИ, такие возможности предоставляют все рассматриваемые средства автоматизации.

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

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

Опыт работы со службами сопровождения и поддержки позволяет выделить производителя TestComplete, предоставляющего быстро реагирующую квалифицированную службу поддержки, онлайн форумы с обсуждением конкретных решений и онлайн справочную систему. Уровень поддержки компании Borland находится на приемлемом уровне и общение с их специалистами не вызывает каких-либо затруднений. Время реакции сотрудников IBM (производителя Rational) при попытке обращения составляет больше недели, что является неприемлемым.

Обобщая вышеизложенное, можно прийти к выводу, что средства для автоматизации тестирования СЗИ из рассмотренного ряда (TestComplete, QuickTest Professional и LoadRunner, Rational, Silk) применимы для решения поставленной задачи. Такие отличия, как поддержка ОС Linux, диапазон цен и т.д. должны учитываться при выборе средства автоматизации тестирования для конкретной задачи, но не являются критическими.


ФорумФорум
Форум ОКБ САПР
Вопросы специалистовВопросы специалистов
Вопросы, которые нам присылают, и наши ответы на них