
Глава 7 315
Обобщением данного метода можно считать тестирование на базе моделей
(model-based testing, model-driven testing), применяемое в рамках соответствующего
подхода к разработке (model-driven development) [34].
Такие известные подходы к тестированию как тестирование, основанное на
риске (risk-driven testing, risk-based testing), представляют не методы разработки
тестов, а скорее стратегии направленного тестирования и минимизации набора тес-
тов. Эти стратегии подобны тестированию по операционному профилю, но прово-
дятся методами систематического тестирования и учитывают не только частоту
использования, но и величину риска отказа ПС.
6. Методы, учитывающие специфику программной системы.
Рассмотренные выше методы универсальны и применимы к любым типам
ПС. Однако они не учитывают характерных особенностей построения систем раз-
ного типа, требующих применения специфических подходов к тестированию.
Руководствуясь рекомендациями SWEBOK 2004 года, мы далее кратко оха-
рактеризуем следующие методы:
• тестирование объектно-ориентированных программ;
• компонентное тестирование;
• тестирование Web-приложений;
• тестирование графического интерфейса пользователя;
• тестирование протоколов на соответствие;
• тестирование систем реального времени;
• тестирование критических систем.
Особенности типов ПС обусловливают не столько применение специальных
методов проектирования тестов, сколько выбор методов и видов тестирования,
наиболее подходящих для определенных объектов тестирования.
Хотя каждый из перечисленных выше типов ПС заслуживает тщательного
рассмотрения, мы ограничимся краткой характеристикой их основных особенно-
стей, а в 7.3.8 подробнее остановимся на тестировании Web-приложений.
Тестирование объектно-ориентированных программ (ООП). Тестирова-
нию ООП посвящено достаточно литературы, например [31, 33, 35, 36].
Специфика тестирования ООП связана, в первую очередь, с:
- итерационным инкрементным подходом к разработке, что приводит к ус-
ложнению интеграционного и регрессионного тестирования;
- событийно-управляемой природой ОПП, что требует тестирования не
только структуры программы, но и ее поведения.
На модульном уровне выполняется автономное тестирование классов: их
структуры и методов (функций-членов) класса традиционными методами, основан-
ными на коде.
На уровне интеграции классов выполняется тестирование иерархии наследо-
вания и тестирование взаимодействий между объектами. Должны быть проверены
все возможные внешние вызовы методов класса - как непосредственные обраще-
ния, так и вызовы, инициированные получением сообщений. В качестве формаль-
ных моделей выступают модель классов ПО и модели каждого класса.
На уровне системы применяется тестирование по сценариям использования
(use-cases) – начиная с анализа требований и проектирования ПС.
Основные методы (подходы) тестирования ООП перечислены в таблице 7.1.