Системное тестирование

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

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

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

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

В ходе тестирования безопасности испытатель играет роль взломщика. Ему разрешено все.

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

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

Стрессовое тестирование производится, как правило, при ненормальных запросах на ресурсы системы (по количеству, частоте, размеру-объему). Например,

· генерируется 10 прерываний в секунду (при средней частоте 1,2 прерывания в секунду);

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

· формируются варианты, требующие максимума памяти и других ресурсов;

· генерируются варианты, вызывающие переполнение виртуальной памяти;

· проектируются варианты, вызывающие чрезмерный поиск данных на диске.

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

Тестирование производительности актуально для систем реального времени и встроенных систем в случаях, когда ПО реализует требуемые функции, но не соответствует требованиям производительности.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: