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