Динамическое тестирование - Dynamic testing
Динамическое тестирование (или же динамический анализ) - термин, используемый в программная инженерия для описания тестирования динамического поведения кода. То есть динамический анализ относится к изучению физического отклика системы на переменные, которые не являются постоянными и изменяются со временем. При динамическом тестировании программное обеспечение фактически должно быть скомпилировано и запущено. Он включает в себя работу с программным обеспечением, предоставление входных значений и проверку того, соответствует ли результат ожидаемым, путем выполнения определенных контрольные примеры что может быть выполнено вручную или с использованием автоматизированного процесса. Это в отличие от статическое тестирование. Модульные тесты, интеграционные тесты, системные тесты и приемочные испытания использовать динамическое тестирование. Юзабилити-тесты, включающие макетную версию, выполненную на бумаге или картоне, можно классифицировать как статические тесты, если учесть, что никакая программа не выполнялась; или, как динамические, если рассматривать взаимодействие между пользователями, и такая фиктивная версия, по сути, является самой базовой формой прототипа.
Основная процедура
Процесс и функции динамического тестирования при разработке программного обеспечения, динамическое тестирование можно разделить на модульное тестирование, интеграционное тестирование, системное тестирование, приемочное тестирование и, наконец, регрессионное тестирование.
Модульное тестирование - это тест, который фокусируется на правильности основных компонентов программного обеспечения. Модульное тестирование относится к категории тестирования белого ящика. Во всей системе контроля качества необходимо выполнить модульное тестирование группой продуктов, а затем программное обеспечение передается в отдел тестирования.
Интеграционное тестирование используется для определения того, правильно ли соединены интерфейсы между различными устройствами в процессе интеграции всего программного обеспечения.
Тестирование программной системы, которая завершила интеграцию, называется системным тестом, и цель теста - убедиться, что правильность и производительность программной системы соответствуют требованиям, указанным в ее спецификациях. Тестировщики должны следовать установленному плану тестирования. При тестировании надежности и простоты использования программного обеспечения его входные, выходные и другие динамические рабочие характеристики следует сравнивать со спецификациями программного обеспечения. Если спецификация программного обеспечения является неполным, системный тест больше зависит от опыта работы и суждения тестировщика, такого теста недостаточно. Системный тест Тестирование черного ящика.
Это заключительный тест перед запуском программного обеспечения. Это испытательный процесс программного обеспечения покупателем. В реальной работе компании это обычно осуществляется путем обращения к заказчику с просьбой попробовать или выпустить бета-версию программного обеспечения. Приемочное испытание Тестирование черного ящика.
Целью регрессионного тестирования является проверка и изменение результатов приемочных испытаний в обслуживание программного обеспечения фаза. В практических приложениях обработка жалоб клиентов является воплощением регрессионного тестирования.
Оценка
Преимущества
- Динамическое тестирование может выявить слабые места в среда выполнения.
- Динамическое тестирование поддерживает анализ приложений, даже если у тестировщика нет реального кода.
- Динамическое тестирование может выявить некоторые уязвимости, которые трудно найти статическое тестирование.
- Динамическое тестирование также может проверить правильность статическое тестирование полученные результаты.
- Динамическое тестирование можно применить к любому приложению.
Недостатки
- Автоматические инструменты могут дать неправильную защиту, например, проверить все.
- Автоматизированные инструменты могут генерировать ложные срабатывания и ложные отрицания.
- Найти подготовленных специалистов по динамическому тестированию непросто.
- С помощью динамического тестирования сложно отследить уязвимости в коде, и для устранения проблемы требуется больше времени. Поэтому исправление ошибок становится дорогостоящим.
Смотрите также
- Динамическое нагрузочное тестирование
- Динамический анализ программы
- Тестирование временных разделов, методология тестирования на основе моделей для реактивного тестирования динамических систем или систем управления.
- Дайкон, динамический инвариантный генератор.
Рекомендации
- G.J. Майерс, Искусство тестирования программного обеспечения, John Wiley and Sons, Нью-Йорк, Нью-Йорк, 1979.