308 Глава 7
документации (on-line, справочной службы, подсистемы обучения).
Этот вид тестирования требует знания современных стандартов по эргономи-
ке, например, ISO 13407:1999 [16], а также согласованных с заказчиком требований
к пользовательскому интерфейсу. Применяется в рамках процесса анализа требова-
ний (тестирование прототипа), тестирования программных компонентов, реали-
зующих интерфейс, тестирования ПО и приемочных испытаний системы.
Тестирование технических характеристик. Это процесс поиска несоот-
ветствий программной системы целям качества (целевым требованиям), зафикси-
рованным во внешних спецификациях наряду с описанием ее функций.
Исходной посылкой для его выполнения является измеримость и принципи-
альная достижимость установленных целевых требований (к надежности, произво-
дительности, совместимости, конфигурации и др.). Эти виды тестирования получи-
ли названия, соответствующие целям тестирования, и обычно проводятся в рамках
тестирования системы в специально моделируемой среде, максимально прибли-
женной к среде эксплуатации, или в среде эксплуатации.
Тестирование на надежность. Этот вид тестирование рассматривают как
основное средство улучшения надежности, поскольку с ростом количества выяв-
ленных и устраненных дефектов надежность ПС растет. Тестирование на надеж-
ность выполняется на наборах данных, выбранных случайным образом из входного
пространства в соответствии с операционным профилем [17, 18]. Все отказы при
выполнении тестов регистрируются применительно к интервалам времени между
отказами (или моментам времени наступления отказов от начала тестирования).
Процесс возникновения отказов рассматривается как случайный (стохастический)
процесс (Марковский или Пуассоновский), а для количественной оценки достигну-
той надежности применяются модели роста надежности.
Тестирование производительности (Performance testing). Выполняется для
проверки достижения установленных требований к производительности или для
оптимизации производительности. Иногда подразделяется на следующие виды:
- нагрузочное тестирование (load testing) - проверка работоспособности ПС
при ожидаемых нормальных загрузках;
- тестирование на устойчивость (stress testing) - проверка работоспособно-
сти в нестандартных условиях (при чрезмерных и отсутствующих загрузках);
- тестирование объема (volume testing) - проверка внутрипрограммных или
системных ограничений, связанных, например, с большими массивами данных,
предельными объемами БД и другими характеристиками объема.
Тестирование конфигурации (Configuration testing). Выполняется для про-
верки работоспособности ПС в разных конфигурациях (операционных системах).
Сравнительное тестирование (Back-to-back testing). Вид тестирования, при
котором один и тот же набор тестов выполняется на двух реализованных версиях, а
результаты сравниваются. Особенно актуален в итерационных моделях разработки.
Тестирование восстановления (Recovery testing). Проводится для проверки
процедур восстановления системы после отказов.
Управляемая тестами разработка (Test-driven development) [19]. Подход к
разработке, согласно которому тесты модулей создаются до начала их кодирования.
Тесты исполняют роль некого прототипа модуля и заменителя спецификации тре-
бований. Подход применяется в экстремальном программировании (ХР) (глава 11).