Дипломная работа Выполнил: Чернилевский Денис, 518 гр. Научный руководитель: к.ф.-м.н. Луковников Иван Васильевич Краткое описание тестируемой АСУ АСУ “Parallels Business Automation”: Комплексное решение автоматизации работы сервис-провайдеров Модульная схема работы Возможность предоставлять сервиспровайдеру только необходимый набор функционала Технологии используемые при работе PBA 3 компоненты: функциональное ядро, онлайн-магазин, база данных Поддержка ОС: RedHat, CentOS Linux 32bit, 64 bit; Win 2003 Server 32bit, 64 bit; Win 2008 Server 64 bit. Веб-интерфейс для управления системой через контрольные панели и доступа в интернет-магазин PostgreSQL vs MsSql (lin - win) Apache vs IIS (lin – win) Постановка задачи Необходимо автоматизировать процесс тестирования АСУ “PBA”: Разработать архитектуру и создать платформу автоматизированного тестирования АСУ “PBA” Разработать автоматические тесты Разработать процессы тестирования с использованием разработанной платформы Требования к платформе автоматизации тестирования Работа с несколькими тестовыми серверами Автоматический запуск тестовых наборов Возможность запуска тестов на инсталляциях разработчиков Уведомления о результатах каждого запуска Сбор централизованной истории всех запусков Мониторинг состояния системы во время тестовых запусков Уведомления о критических ошибках и падениях Компоненты разработанной системы Система управления тестовыми запусками Система сбора результатов тестов Система установки и настройки продукта и виртуальных машин Система мониторинга Zabbix Функциональные тесты Система управления запусками Это система с веб-интерфейсом, позволяющая: Управлять набором серверов с различными платформами виртуализации. Управлять виртуальными машинами. Создавать тестовые наборы из отдельных функциональных тестов. Планировать запуски тестовых наборов. Просматривать историю запусков и их статус. Получать уведомления по результатам запуска тестов. Настраивать мониторинговые системы, для наблюдения за состоянием продукта во время выолнения тестов. Система сбора результатов тестов Это система с веб-интерфейсом, позволяющая: Получать подробную информацию о действиях каждого теста во время его работы. Получать информацию о случившихся ошибках во время выполнения тестов. Сопоставлять каждой случившейся ошибке баг из Jira или Bugzilla, с отслеживанием текущего состояния бага и сопоставлением одних и тех же ошибок в различных запусках с уже существующим багом. Получать агрегированные отчеты по большому количеству запусков на различных версиях продуктов, со статистикой количества багов проявившихся во время выполнения тестов. Компонент установки и настройки продукта Это инструмент, выполняющий: Создание и настройку виртуальных машин разных типов Установку одной или нескольких компонент продукта в этих виртуальных машинах Настройку взаимодействия между компонентами продукта в различных виртуальных машинах Система мониторинга Zabbix Эта система позволяет: Настраивать регулярное периодическое наблюдение за любыми компонентами продукта Создавать мониторинговые модули, и вести журнал наблюдений с уведомление пользователей в случае экстренных ситуаций Функциональные тесты продукта В рамках данной работы: Выбраны необходимые технологии для разработки функциональных тестов Разработана архитектура тестов и тестовых библиотек, наиболее подходящим образом удовлетворяющая всем требованиям и особенностям системы. Разработаны функциональные тесты в соответствии с существующими тестовыми сценариями. Используемые технологии Система управления запусками: Perl + Apache + MySql Система сбора результатов: Perl + Apache + Mysql XMLRPC протокол для взаимодействия с тестами и интеграции с Jira Компонент установки и настройки продукта: Python + Perl + VBS VmWare Vix API + Virtuozzo CTL API Функциональные тесты: Java + TestNG + Selenium Zabbix мониторинг: C + Perl Архитектура и взаимодействия тестовой системы Test Report System JVMs Build System PBA Builds Test Builds Selenium Server Browsers VMs Zabbix Launch Management Servers PADT Архитектура функциональных тестов Уровень 4: тесты Уровень 3: бизнес объекты Уровень 2: библиотеки страниц GUI Уровень 1: вспомогательный Selenium RC Log4j SSH/FTP UI Control elements Результаты выполненной работы Уменьшилась стоимость регрессионного тестирования старой функциональности перед каждым релизом с 700 до 150 человеко-дней работы, в силу покрытия тестируемой функциональности автоматическими тестами. Уменьшилось количество багов, попадающих в релиз, примерно в 3-5 раз. Уменьшилось время между внесением бага в продукт и его нахождением в среднем в 5-10 раз, что позволяет разработчикам более эффективно исправлять баги. Появилась возможность легко отлавливать периодические и сложно воспроизводимые баги (баги стабильности, утечки памяти и т.д.), которые требовали больших человеческих затрат при ручном анализе. Суммарно, расходы компании на выпуск каждого следующего релиза продукта и его поддержку сократились примерно на 200-400$ тыс. (длительность релиза – около 10 месяцев).