кухонный комбайн
|
Методы анализа - Системное тестирование |
Страница 41 из 42
Системное тестирование
Системное тестирование подразумевает выход за рамки области действия программного проекта и проводится не только программным разработчиком. Классическая проблема системного тестирования — указание причины. Она возникает, когда разработчик одного системного элемента обвиняет разработчика другого элемента в причине возникновения дефекта. Для защиты от подобного обвинения разработчик программного элемента должен: 1) предусмотреть средства обработки ошибки, которые тестируют все вводы информации от других элементов системы; 2) провести тесты, моделирующие неудачные данные или другие потенциальные ошибки интерфейса ПС; 3) записать результаты тестов, чтобы использовать их как доказательство невиновности в случае «указания причины»; 4) принять участие в планировании и проектировании системных тестов, чтобы гарантировать адекватное тестирование ПС. В конечном счете системные тесты должны проверять, что все системные элементы правильно объединены и выполняют назначенные функции. Рассмотрим основные типы системных тестов [13], [52].
Тестирование восстановления
Многие компьютерные системы должны восстанавливаться после отказов и возобновлять обработку в пределах заданного времени. В некоторых случаях система должна быть отказоустойчивой, то есть отказы обработки не должны быть причиной прекращения работы системы. В других случаях системный отказ должен быть устранен в пределах заданного кванта времени, иначе заказчику наносится серьезный экономический ущерб. Тестирование восстановления использует самые разные пути для того, чтобы заставить ПС отказать, и проверяет полноту выполненного восстановления. При автоматическом восстановлении оцениваются правильность повторной инициализации, механизмы копирования контрольных точек, восстановление данных, перезапуск. При ручном восстановлении оценивается, находится ли среднее время восстановления в допустимых пределах.
Тестирование безопасности
Компьютерные системы очень часто являются мишенью незаконного проникновения. Под проникновением понимается широкий диапазон действий: попытки хакеров проникнуть в систему из спортивного интереса, месть рассерженных служащих, взлом мошенниками для незаконной наживы. Тестирование безопасности проверяет фактическую реакцию защитных механизмов, встроенных в систему, на проникновение. В ходе тестирования безопасности испытатель играет роль взломщика. Ему разрешено все: q попытки узнать пароль с помощью внешних средств; q атака системы с помощью специальных утилит, анализирующих защиты; q подавление, ошеломление системы (в надежде, что она откажется обслуживать других клиентов); q целенаправленное введение ошибок в надежде проникнуть в систему в ходе восстановления; q просмотр несекретных данных в надежде найти ключ для входа в систему. Конечно, при неограниченном времени и ресурсах хорошее тестирование безопасности взломает любую систему. Задача проектировщика системы — сделать цену проникновения более высокой, чем цена получаемой в результате информации.
|