![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Тестирование ПО (Software Testing)
Тестирование ПО – это процесс проверки работы программы в динамике, основанный на выполнении конечного набора тестовых данных и сравнения полученных результатов с запланированными вначале. Область знаний «Тестирование ПО (Software Testing)» включает следующие разделы: – основные концепции и определение тестирования (Testing Basic Concepts and definitions), – уровни тестирования (Test Levels), – техники тестирования (Test Techniques), – метрики тестирования (Test Related Measures), – управление процессом тестирования (Managing the Test Process). Основная концепция тестирования базируется на терминологии, теории и инструментах подготовки и проведения процесса тестирования ПО, а также оценке данных статистического анализа процесса тестирования. При тестировании выявляются недостатки: отказы (faults) и дефекты (defects), как причины нарушения работы системы, сбои (failures), как нежелательные ситуации, ошибки (errors), как последствия сбоев и др. Базовым понятием тестирования является тест, который выполняется в заданных условиях и на наборах данных. Тестирование считается успешным, если найден дефект или ошибка, и они устраняются. Степень тестируемости зависит от задания критериев покрытия системы тестами и вероятности появления сбоев. Данные базовые понятия зависят от уровня, видов и техник тестирования ПО. Уровни тестирования это: – тестирование отдельных элементов, которое заключается в проверке отдельных, изолированных и независимых частей ПО; – интеграционное тестирование, которое ориентировано на проверку связей и способов взаимодействия (интерфейсов) компонентов друг с другом, включая компоненты, расположенные на разных архитектурных платформах распределенной среды; – тестирование системы предназначено для проверки правильности функционирования системы в целом, с обнаружением отказов и дефектов в системе и их устранение. При этом контролируется выполнение сформулированных нефункциональных требований (безопасность, надежность и др.) в системе, правильность задания и выполнения внешних интерфейсов системы со средой окружения и др. К видам тестирования относятся: – функциональное тестирование, которое заключается в проверке соответствия выполнения специфицированных функций; – регрессионное тестирование – тестирование системы или ее компонентов после внесения в них изменений; – тестирование эффективности – проверка производительности, пропускной способности, максимального объема данных и системных ограничений в соответствии со спецификациями требований; – нагрузочное (стресс) тестирование – проверка поведения системы при максимально допустимой нагрузке или при превышении; – альфа и бета-тестирование – внутреннее и внешнее тестирование системы. Альфа – без плана, бета с планом тестирования; – тестирование конфигурации – проверка структуры и идентификации системы на различных наборах, а также проверку работы системы в различных конфигурациях. К видам тестирования относятся также подходы и методы проверки поведения системы на этапе испытания ПО и приемки в соответствии с требованиями и заданными параметрами относительно состава ПО, количества и типа компьютеров, среды и ОС. Техники тестирования бывают таких видов: – «белый (стеклянный) ящик», основанный на задании информации о структуре ПО или системе; – «черный ящик», основанный на задании тестовых наборов данных для проверки правильности работы компонентов и системы в целом без знания их структуры; – основанные на спецификациях, анализе граничных значений, таблицах принятия решений, критериев потоков данных, статистики отказов и др.; – основанные на использовании блок–схем, по которым строятся программы и наборы тестов для покрытия всех условий выполнения частей системы и системы в целом; – на основе обнаруженных дефектов, условий использования, природы и особенностей приложения и др.
Управление тестированием это: – планирование процесса тестирования (составление планов, тестов, наборов данных) и измерение показателей качества ПО; – проведение тестирования reuse-компонентов и паттернов, как основных объектов сборки ПО; – генерация необходимых тестовых сценариев, соответствующих среде выполнения ПО; – верификация правильности реализации системы и валидация реализованных требований к ПО; – сбор данных об отказах, ошибках и др. непредвиденных ситуациях при выполнении программного продукта; – подготовка отчетов по результатам тестирования и оценка характеристик системы. Стандарт ISO/IEC, ГОСТ 12207 не выделяет деятельность по тестированию в качестве самостоятельного процесса, а рассматривает тестирование, как необъемлемую часть ЖЦ. Измерение результатов тестирования. Измерение, как часть планирования и разработки тестов, базируется на размере программ, их структуре и количестве обнаруженных дефектов. Метрики тестирования обеспечивают измерение процесса планирования, проектирования и тестирования; а также результатов тестирования на основе таксономии отказов и дефектов, покрытия границ тестирования, проверки потоков данных и др. Документация на тестирование включает, согласно стандарту IEEE 829-98, описание тестовых документов, их связи между собой и с процессом тестирования. Без документации по процессу тестирования, невозможно провести сертификацию продукта и оценку модели СММ1 [22]. После завершения тестирования рассматриваются вопросы стоимости и рисков, связанных с появлением сбоев и недостаточно надежной работой системы. Стоимость тестирования является одним из ограничений, на основе которого принимается решение о прекращении или продолжении тестирования. Таким образом, данная область знаний SWEBOK представляет разработчику методы проверки правильности ПО: верификация, валидация, тестирование. Определяются типы, уровни и техники тестирования ПО, методы планирования процесса и тестовых наборов данных для прогонки ПО в режиме испытания конкретного модуля или системы в целом, а также методы измерения результатов тестирования.
|