Дипломная работа Выполнил: Чернилевский Денис, 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
Launch Management Selenium Server Build System PBA Builds Test Builds Browsers PADT Servers VMs JVMs Test Report System Zabbix Архитектура и взаимодействия тестовой системы
Архитектура функциональных тестов Уровень 1: вспомогательный Selenium RCLog4jSSH/FTPUI Control elements Уровень 2: библиотеки страниц GUI Уровень 3: бизнес объекты Уровень 4: тесты
Результаты выполненной работы Уменьшилась стоимость регрессионного тестирования старой функциональности перед каждым релизом с 700 до 150 человеко-дней работы, в силу покрытия тестируемой функциональности автоматическими тестами. Уменьшилось количество багов, попадающих в релиз, примерно в 3-5 раз. Уменьшилось время между внесением бага в продукт и его нахождением в среднем в 5-10 раз, что позволяет разработчикам более эффективно исправлять баги. Появилась возможность легко отлавливать периодические и сложно воспроизводимые баги (баги стабильности, утечки памяти и т.д.), которые требовали больших человеческих затрат при ручном анализе. Суммарно, расходы компании на выпуск каждого следующего релиза продукта и его поддержку сократились примерно на $ тыс. (длительность релиза – около 10 месяцев).