Автоматизация тестирования
План 1. Применение автоматизированного тестирования 2. Выбор инструментария 3. Процесс автоматизации (IBM Rational) GUI тестирование производительности нагрузочное тестирование тестирование Web приложений 4. Обзор основных инструментов 5. Проблемы автоматизации тестирования
Применение автоматизированного тестирования: цели Значительное сокращение времени выполнения повторяющихся тестовых операций (regression testing) Качественное тестирование производительности, Web приложений Единственно возможный способ тестирования нагрузки Оптимизация тестирования: перераспределение ресурсов отдела тестирования
Применение автоматизированного тестирования: критерии Долгосрочный проект Формализованный проект (наличие тест плана, наборов тест кейсов) Необходимость большого числа итераций (повторений кейсов от релиза к релизу)
Выбор инструментария Критерии анализа инструментария: Поддерживаемые процессы тестирования Поддержка различных типов тестов Поддерживаемые технологии Документальная поддержка Техническая поддержка Время на обучение персонала
Процесс автоматизации: GUI Functional + Regression GUI scripts (Graphical User Interface): автоматизация функционального тестирования Скрипт – логически законченная часть кода, сохраненная в отдельном файле и являющаяся программной реализацией конкретного тест-кейса Основной способ создания скрипта – работа «тестового драйвера» - Playback/Record
Процесс автоматизации: тестирование производительности Performance testing – проверка удовлетворения специфических требований, предъявляемых к параметрам производительности Скрипты с таймерами Add-inns
Процесс автоматизации: нагрузочное тестирование Stress testing – тестирование с превышением нагрузки на систему, отслеживание поведения системы на всем протяжении повышения загрузки VU (Virtual User)
Процесс автоматизации: Web приложения Тестирование Web приложений - совмещение функционального, нагрузочного тестирования и тестирования производительности GUI performance virtual users
Обзор инструментов: основные игроки рынка IBM Rational Mercury Interactive Segue LDRA
IBM Rational Rational Test Manager - управление тестированием Rational Robot - функциональное и нагрузочное тестирование Rational XDE Tester (Rational Functional Tester for Java and Web) - «eXtended Development Environment»; функциональное тестирование Java и Web приложений Rational PurifyPlus (Purify, PureCoverage, Quantify) - анализ работы системы в режиме RunTime: контроль над ошибками доступа памяти, определение покрытия кода, измерение перфоманса
Mercury WinRunner - функциональное тестирование QuickTest Pro - инструмент для тестирования Web приложений XRunner - поддержка Java приложений LoadRunner - тестирование перфоманса
Segue SilkCentral Test Manager - управление тестированием SilkCentral Performance Manager + Silk Performer - тестирование производительности и управление им Silk Test - инструмент функционального тестирования
LDRA LDRA Testbed - тестирование «белого ящика» (покрытие кода, анализ источника кода) TBreq - автоматизация управления требованиями TBRun - тестирование юнитов (unit testing)
Проблемы автоматизации тестирования Основные трудности автоматизации тестирования ПО: время Необходимость постоянного обновления тестовых скриптов Интерпретация и анализ результатов тестов Автоматизация применима только в хорошо формализованной среде
Требования к системе тестирования Основные свойства, которыми должна обладать вновь разрабатываемая система автоматизированного тестирования: –Наличие специального хранилища тестов, позволяющего работать в многопользовательском режиме, и проводить версионный контроль сделанных изменений, так как тесты подвержены частым изменениям. –Наличие центрального хранилища тестовых ресурсов. –Наличие системы управления тестовыми ресурсами. –Наличие системы функционального автономного тестирования –Наличие средств построения отчетов и количественной оценки качества текущей версии продукта. –Наличие системы распределения процесса тестирования.
Основные компоненты системы автоматизированного тестирования
Система распределенного тестирования Для того чтобы быстро и полно протестировать текущую версию выпускаемого продукта, необходимы большие вычислительные ресурсы. Известно, что зачастую в организациях по разработке программного обеспечения компьютеры в ночное время никак не используются. Возникла идея использовать эти вычислительные ресурсы, имеющиеся в нашем распоряжении, для проведения автономного тестирования. Для организации подобной системы на каждом компьютере, участвующем в процессе распределенного тестирования, запускается независимый процесс, который выполняет следующие задачи: –сигнализирует о том, что данный компьютер активен и участвует в процессе тестирования; –отслеживает очередь задач для локального компьютера; –запускает систему автономного тестирования.
Система распределенного тестирования
Пример отчета об автоматическом тестировании