Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конспект по информационным технологиям+.doc
Скачиваний:
218
Добавлен:
29.02.2016
Размер:
793.09 Кб
Скачать

Тестирование правильности

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

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

Важным элементом тестирования правильности является проверка конфигурации программной системы. Конфигурацией программной системы называется совокупность всех элементов информации вырабатываемых в процессе конструирования программной системы. В минимальную конфигурацию программной системы входят следующие базовые элементы:

  1. Системная спецификация;

  2. План программного проекта;

  3. Спецификация требований к программной системе и работающий или бумажный макет;

  4. Предварительное руководство пользователя;

  5. Спецификация проектирования;

  6. Листинги исходных текстов программ;

  7. Плановая методика тестирования;

  8. Руководство по работе;

  9. Исполняемый код программы;

  10. Описание базы данных;

  11. Руководство пользователя по настройке;

  12. Документы сопровождения;

  13. Отчеты о проблемах программной системы;

  14. Отчеты о конструкторских изменениях;

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

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

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

–тестирование проводится конечным пользователем в организации заказчика. Разработчик в этом процессе участия не принимает.

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

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

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

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

  1. Предусмотреть средства обработки ошибок, которые тестируют все виды информации из других элементов системы;

  2. Провести тесты, моделирующие неудачные данные или другие потенциальные ошибки интерфейса программной системы;

  3. Записать результаты тестов, чтобы использовать их в качестве доказательства невиновности;

  4. Надо принять участие в планировании и проектировании системных тестов, чтобы гарантировать адекватное тестирование программной системы;

В конечном счете, системные тесты должны проверить, что все системные элементы правильно объединены и выполняют назначенные функции.

Основные типы системных тестов:

  1. Тестирование установления.

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

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

  1. Тестирование безопасности.

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

При неограниченном времени и ресурсах хорошее тестирование безопасности взломает любую систему.

Задача проектировщика системы сделать цену проникновения более высокой, чем цена полученной информации.

  1. Стрессовые тесты.

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

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

  1. Тестирование производительности.

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

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

Вопросы для самоконтроля по теме 8:

    1. Перечислите шаги тестирования программных систем

    2. Перечислите шаги методики тестирования восходящей интеграции

    3. Охарактеризуйте назначение тестирования правильности

    4. Перечислите и охарактеризуйте основные типы системных тестов.

1Содержание конспекта соответствует вопросам экзаменационных билетов

78