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

Значительную помощь в повышении технологической безопасности сложных, критических ИС может оказать систематизация видов тестирования и упорядоченное их проведение при испытаниях. Эти виды тестирования ориентированы на дифференцированное выявление определенных классов дефектов. Для каждого вида тестирования целесообразно разрабатывать методику его выполнения с указанием контролируемых параметров и ожидаемых, эталонных результатов. Кроме того, при заключительных испытаниях или сертификации должно проводиться интегральное тестирование при максимально широком варьировании тестов в условиях, соответствующих нормальной эксплуатации [9], [21], [28].

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

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

Тестирование корректности использования ресурсов памяти и производительности вычислительной системы служит для оценки безопасности исполнения программ при перегрузках памяти и производительности. Тестирование производится в основном в стохастическом режиме в реальном времени по подготовленным сценариям, создающим перегрузки одного из ресурсов системы. Обычно наиболее полно тестируются буферные накопители приема и выдачи информации внешним абонентам, а также использование массивов в базе данных. Проверке подлежит изменение качества, надежности и безопасности функционирования ИС вследствие пропусков в обработке сообщений, возрастания длительности ожидания перед их обработкой или растягивания периодов решения задач [30]. Имитация тестов производится в основном автоматически по сценариям, создающим критические условия для определенной проверки. В результате тестирования устанавливаются реальные характеристики ИС на выбранной вычислительной системе по пропускной способности решения всего комплекса задач, а также по допустимой интенсивности решения отдельных типов задач и обработке различных сообщений. При кратковременных перегрузках памяти или производительности должна обеспечиваться защита от отказов и восстановление нормального режима при последующем снижении загрузки.

Тестирование параллельного исполнения программ используется для обнаружения снижений надежности и безопасности, обусловленных несогласованным использованием исходных и промежуточных данных, а также устройств вычислительной системы при параллельном исполнении программ [10], [28]. Тестирование проводится преимущественно стохастически с основной задачей осуществить проверку при различных сочетаниях исполнения частей программы одновременно функционирующими процессорами. Особенно важно обнаружить все тупиковые ситуации. Малая вероятность образования таких ситуаций может приводить к необходимости генерации большого объема стохастических тестов. Тестирование параллельно исполняемых программ обычно требует большого количества исходных данных, содержащих как случайные, так и детерминированные составляющие. Такие данные подготавливаются в основном автоматически по сценариям наиболее критических сочетаний данных.

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

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

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

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

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

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

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

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

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

Трудность адекватного моделирования некоторых объектов внешней среды, особенно если в их функционировании активно участвует оператор-пользователь, не позволяет сосредоточить и полностью автоматизировать всю имитацию тестовых данных на ЭВМ. Поэтому для реализации интегрированных проблемно-ориентированных систем обеспечения испытаний безопасности сложных ИС необходимы аналоги реальных объектов внешней среды для формирования части данных, а также ресурсы вычислительных средств для имитации данных от остальных объектов. Разумное сочетание части реальных объектов внешней среды и имитаторов на ЭВМ позволяет создавать высоко эффективные моделирующие испытательные стенды (МИС) с комплексными моделями совокупностей объектов, необходимых для испытаний безопасности сложных ИС в реальном времени. Такие стенды позволяют автоматическую генерацию тестов с помощью имитаторов на ЭВМ и аналогов реальной аппаратуры дополнять реальными данными от операторов пользователей, контролирующих и корректирующих функционирование системы обработки информации. В схеме типового МИС можно выделить ряд базовых компонент и процессов (рис. 3).

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