Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Тестирование ПО (Software Testing)
Тестирование ПО - это процесс проверки готовой программы в статике (просмотры, инспекции, отладки исходного кода) и в динамике путем прогона конечного набора тестовых данных, проверяющих разные пути выполнения программы и сравнении полученных результатов с заранее запланированными. Существует две формы проверки кода - модульное и интеграционное. При этом используются стандарты (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 не выделяет деятельность по тестированию в качестве самостоятельного процесса, а рассматривает тестирование как неотъемлемую часть всего ЖЦ.
|
Последнее изменение этой страницы: 2019-03-31; Просмотров: 341; Нарушение авторского права страницы