Методы верификации программного обеспечения
Техники построения тестов
Download 1.06 Mb. Pdf ko'rish
|
КНИГА
3.4.5. Техники построения тестов
Критерии полноты тестирования, описанные выше, позволяют оценить систематичность и полноту (в некотором смысле) набора тестов. Чтобы получить этот набор тестов, нужно использовать специальные техники построения тестов (test selection techniques). Прежде, чем обсуждать эти техники, стоит рассмотреть общую структуру теста. Как уже говорилось, тест представляет собой процедуру, обеспечивающую создание некоторой специфической ситуации с точки зрения поведения тестируемой системы и проверку правильности работы системы в этой ситуации. Соответственно, при построении теста, нужно выбрать нужную ситуацию, определить способ ее создания и определить процедуру проверки правильности работы тестируемой системы. Тестовая ситуация обычно включает в себя следующие элементы. Оказываемое на систему воздействие с некоторыми данными, результаты которого надо проверить в первую очередь. Это может быть вызов операции с определенными аргументами, посылка сообщения определенного содержания, нажатие на кнопку диалога после того, как другие поля этого диалога заполнены некоторыми данными, выполнение команды в командной строке с некоторыми опциями и аргументами и т.п. Внутреннее состояние тестируемой системы. Поскольку состояние чаще всего невозможно установить напрямую, для его достижения нужно использовать другие воздействия на систему. При этом их результаты тоже необходимо проверять, так как само состояние чаще всего недоступно для прямого наблюдения. В результате достижение определенной ситуации чаще всего требует 81 использования тестовой последовательности (test sequence) — последовательности обращений к системе с определенными данными. Иногда на работу систему влияют внешние условия, воспринимаемые системой, помимо оказываемых на нее воздействий. Это могут быть измеряемые автоматически физические показатели окружающей среды или результаты взаимодействий с другими системами. Часто такие условия можно промоделировать программно, задавая определенную конфигурацию системы, имитируя деятельность других систем или заменив датчики физических показателей управляемыми модулями. В тех случаях, когда это сделать нельзя, нужно создавать модель рабочего окружения системы, позволяющую изменять внешние условия при тестировании. Для выбора (или построения) тестовых ситуаций и составления тестового набора используют техники следующих типов. Вероятностное тестирование (random testing) [208]. При использовании этого подхода каждая возможная тестовая ситуация описывается некоторым набором параметров, все значения которых генерируются как псевдослучайные данные с определенными распределениями. Проще всего таким способом получать тестовые наборы для систем без внутреннего состояния, при этом достаточно задать распределения вероятностей значений различных параметров. Для систем с состоянием используются описания распределения вероятностей возможных сценариев работы с ними в виде марковских цепей [209,210]. Исходной информацией для задания распределений значений параметров является частота их использования при реальной работе системы (профиль использования), величина риска, связанного с ошибками в системе в соответствующей ситуации. Чаще всего, однако, используется вероятностное тестирование с равномерными распределениями, просто потому, что оно является наиболее дешевым способом получения большого количества тестов. Стоит помнить, однако, что вероятностные тесты дают оценку качества ПО неизвестной достоверности — иногда они действительно систематически проверяют различные возможности системы, иногда нет, но чтобы узнать это, нужно использовать другой способ оценки качества. Они также практически 82 неспособны находить сложные ошибки, возникающие из-за сочетания различных факторов. Download 1.06 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling