Тестирование ПО - это процесс проверки готовой программы в статике
(просмотры, инспекции, отладки исходного кода) и в динамике путем
прогона конечного набора тестовых данных, проверяющих разные пути
выполнения программы и сравнении полученных результатов с заранее
запланированными.
Существует две формы проверки кода - модульное и интеграционное.
При этом используются стандарты (IEEE 829-1996 и IEEE 1008-1987)
проверки и тестирования модулей ПО. Затем проводится интеграционное
тестирование модулей системы и их интерфейсов в динамике
выполнения. В процессе разных видов проверок собираются данные об
ошибках, дефектах, отказах и т.п. и оформляется соответствующая
документация (таблицы типов ошибок, частота и время появления
отказов и др.). Данные, собранные при отладке, просмотрах,
инспекции и тестировании, используются для оценки характеристик
качества готового ПО, например, атрибутов показателя надежности -
интенсивность отказов, количество ошибок и др.
Область знаний "Тестирование ПО (Software Testing)" включает
следующие разделы:
· основные концепции и определение тестирования (Testing Basic
Concepts and definitions),
· уровни тестирования (Test Levels),
· техники тестирования (Test Techniques),
· метрики тестирования (Test Related Measures),
· управление процессом тестирования (Managing the Test
Process).
Данная область знаний SWEBOK представляет разработчику методы
проверки правильности ПО: верификация, валидация, тестирование.
Определяются типы, уровни и техники тестирования ПО, методы
планирования процесса тестирования и разработки тестовых наборов
данных для прогонки ПО в режиме испытания конкретного модуля или
системы в целом, с последующим измерением результатов
тестирования.
Основная концепция тестированияописывает базовые термины, ключевые
проблемы и их связь с другими областями знаний. Тестирование - это
процесс проверки правильности программы в динамике ее выполнения на
тестовых данных. При тестировании выявляются недостатки: отказы
(faults) и дефекты (defects) как причины нарушения работы
программы, сбои (failures) как нежелательные ситуации, ошибки
(errors), как последствия сбоев и др. Базовым понятием тестирования
является тест, который выполняется в заданных условиях и на
заданных наборах данных. Тестирование считается успешным, если
найден дефект или ошибка, и они сразу устраняются. Степень
тестируемости определяется критерием покрытия системы тестами,
проверки всех возможных путей выполнения алгоритмов программ и
вероятности статического предположения того, что при тестировании
может появиться сбой или ошибочная ситуация в системе.
Уровни тестирования:
· тестирование отдельных элементов,которое заключается в проверке
отдельных, изолированных и независимых частей ПО;
· интеграционное тестирование,которое ориентировано на проверку
связей и способов взаимодействия (интерфейсов) компонентов друг с
другом, включая компоненты, расположенные на разных архитектурных
платформах распределенной среды;
· тестирование системы предназначено для проверки правильности
функционирования системы в целом, с обнаружением отказов и дефектов
в системе и их устранение. При этом контролируется выполнение
сформулированных нефункциональных требований (безопасность,
надежность и др.) в системе, правильность задания и выполнения
внешних интерфейсов системы со средой окружения и др.
На всех уровнях тестирования применяются методы:
· функционального тестирования, обеспечивающие проверку реализации
функций, которые определены в требованиях, а также правильность их
выполнения;
· регрессионного тестирования, ориентированные на повторное
выборочное тестирование системы или ее компонентов после внесения в
них изменений на тех же тестах, что и до модификации;
· тестирования эффективности, проверяющие производительность,
пропускную способность, максимальный объем данных и системные
ограничения в соответствии со спецификациями требований;
· стресс-тестирования, проверяющие поведение системы при
максимально допустимой нагрузке или при ее превышении;
· альфа и бета тестирования, выполняющие внутреннее тестирование
кодов системы и внешнее тестирование интерфейсов. Альфа - это
внутреннее тестирование (функций и алгоритмов), а бета - внешнее
(взаимосвязей с другими системами и средой)
· конфигурационного тестирования, проверяющие структуры и
идентификации системы на различных наборах данных, а также работу
системы на различных конфигурациях аппаратуры и оборудования.
К методам тестирования относятся также методы проведения испытаний
ПО, проверки реализации требований и обеспечения параметров
настройки и размещения компонентов ПО на заданном количестве и
типах компьютеров, среды и ОС.
Техники тестированиябазируются на некоторых теоретических и
практических положениях, например, на природе подхода к
проектированию (компонентного, объектно-ориентированного,
сервисного и т.п.), а также на следующих данных:
· информация о структуре ПО или системы в документации ("белый
ящик" ) ;
· подбор тестовых наборов данных для проверки правильности работы
компонентов и системы в целом без знания их структуры ("черный
ящик");
· анализ граничных значений, таблиц принятия решений, потоков
данных, статистики отказов и др.;
· блок-схемы построения программ и составления наборов тестов для
покрытия системы этими тестами;
· обнаруженные и зафиксированные в таблицах системы дефекты, пред-
и постусловия выполнения, структурные характеристики системы
(количество модулей, объем данных и др.).
Метрики тестирования.Для измерения результатов тестирования ПО, а
также при проведении анализа качества используются метрики.
Измерение как часть планирования и разработки тестов базируется на
размере программ, их структуре и количестве обнаруженных ошибок и
дефектов. Метрики тестирования обеспечивают измерение процесса
планирования, проектирования и тестирования; а также результатов
тестирования на основе таксономии отказов и дефектов, покрытия
границ тестирования, проверки потоков данных и др. Процесс
тестирования документируется и согласно стандарту IEEE 829-98
включает описание тестовых документов, их связи между собой и с
задачами тестирования. Без документации по процессу тестирования
невозможно провести сертификацию продукта по модели СММ [1.20].
После завершения тестирования рассматриваются вопросы стоимости и
оценки рисков, вызванных сбоями или недостаточно надежной работой
системы. Стоимость тестирования является одним из ограничений, на
основе которого принимается решение о прекращении или его
продолжении.
Управление тестированием:
· планирование процесса тестирования (составление планов, тестов,
наборов данных) и оценивание показателей качества ПО;
· проведение тестирования компонентов повторного использования и
паттернов как основных объектов сборки ПО;
· генерация необходимых тестовых сценариев, соответствующих среде
выполнения ПО;
· верификация правильности реализации системы и валидация
правильности реализации требований к ПО;
· сбор данных об отказах, ошибках и др. непредвиденных ситуациях
при выполнении программного продукта;
· подготовка отчетов по результатам тестирования и оценка
характеристик системы.
Заметим, что стандарт ISO/IEC 12207 и гармонизированный ГОСТ 12207
не выделяет деятельность по тестированию в качестве
самостоятельного процесса, а рассматривает тестирование как
неотъемлемую часть всего ЖЦ.
Тестирование ПО (Software Testing)
187
0
4 минуты
Темы:
Понравилась работу? Лайкни ее и оставь свой комментарий!
Для автора это очень важно, это стимулирует его на новое творчество!