Диплом: Автоматизация регрессионного тестирования с использованием языка программирования Python

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
42
может принимать 0 значение, например, если в данной функциональной
области не планируется никаких последующих изменений.
В случае, когда для автоматизации тестирования привлекаются
отдельный специалисты имеет смысл отдельно рассчитать стоимость
тестирование, но без учета автоматизации [41]:
Рисунок 6Формула расчета необходимых инвестиций для
тестирования, без учета автоматизации
G0 стоимость написания тестовой библиотеки для ручного
тестирования.
k – общее количество планируемых тестовых циклов.
Geстоимость одного тестового цикла, которое рассчитывается как
среднее время подготовки к выполнению и непосредственно время
выполнения одного теста одним тестировщиком (в часах), помноженное на
стоимость его рабочего часа и на общее количество тестов. Ce может иметь
значение 0, когда возможно полностью автономное выполнение тестов, не
требующее вмешательства человека ни на стадии подготовки к выполнению
теста, ни во время исполнения теста. [41]
Gaцена анализа результатов одного тестового цикла, которая
рассчитывается как ожидаемый процент неудачных тестов, помноженный на
общее количество тестов, среднее время, требуемое на анализ причин
43
неудачного выполнения одного теста одним тестировщиком (в часах), и на
стоимость его рабочего часа.
Gmцена поддержания авто-тестов в актуальном состоянии,
высчитывается как произведение ожидаемого коэффициента изменений
тестов для каждого цикла выполнения, времени, потраченного одним
тестировщиком на изменение одного скрипта (в часах), общего количества
скриптов и стоимости рабочего часа тестировщика. Данная переменная
может принимать 0 значение, например, если в данной функциональной
области не планируется никаких последующих изменений.[41]
Применяя данные формулы, менеджмент компании может рассчитать
будет ли экономически оправдано внедрение автоматизированного
тестирования. В следующей главе, на примере компании ООО
«ЭКЗАКТПРО», будет рассчитана экономическая целесообразность
внедрения автоматизированного тестирования.
В данном параграфе исследованы критерии целесообразности
внедрения автоматизации. Предположено, что основным критерием для
начала автоматизации является финансовая целесообразность, для расчета
которой были приведены формулы с подробной расшифровкой.
2.3 Описание компании «ЭКЗАКТПРО»
Компания «ЭКЗАКТПРО» (далее Exactpro) была основана в 2009 году
бывшими руководителями отдела консалтинга одной из ведущих компаний,
специализирующейся на обеспечении качества и разработок для финансовой
индустрии.
Компания «Exactpro» представляет собой быстро развивающуюся
компанию, которая специализируется на разработке и тестировании
44
программного обеспечения для финансовых организаций по всему миру, к
числу которых относятся фондовые биржи, брокеры, инвестиционные банки
и разнообразные поставщики высокотехнологичных решений.
Проекты компании - это анализ и верификация высоконагруженных и
распределенных технологических платформ, систем клиринга и
взаиморасчетов и систем риск-менеджмента, основанных на современных
технологиях, с целью достижения их бесперебойной функциональности в
условиях промышленной эксплуатации.
Текущие проекты компании Exactpro ведутся в США,
Великобритании, Канаде, Италии, Франции, Голландии, Австрии, Испании,
Греции, Гонконге, Норвегии, Австралии, Сингапуре, ЮАР, ОАЭ, Шри-Ланке
и России. Клиентами компании Exactpro являются «Лондонская фондовая
биржа» (London Stock Exchange, сокращенно LSE), «Итальянская фондовая
биржа» (Italia Stock Exchange, сокращенно ISE), «Норвежская фондовая
биржа» (Oslo Stock Exchange, OSE) и многие другие фондовые биржи по
всему миру.
В России компания Exactpro имеет четыре центра разработки и
тестирования программного обеспечения: в Москве, Костроме, Саратове и
Обнинске, в которых работает, в общей сложности, более 400 человек.
В главном офисе в Москве находиться менеджмент компании. Офис в
Обнинске специализируется на нефункциональном тестировании. Офисы в
Саратов и Костроме акцентируются в большей степени, собственно, на
разработке программных продуктов и функциональном тестировании.
В связи со спецификой тестирования фондовых бирж и прочих рынков
ценных бумаг, в процессе тестирования, компания использует собственное
программное обеспечение (ПО). К такому ПО можно отнести:
45
- фреймворк Sailfish представляет собой продукт, написанный с
использованием языка программирования java. Программный продукт
является веб-приложением, графическая оболочка которого является html
сайтом. Доступ к ПО осуществляется с помощью любого браузера. При
использовании Sailfish тесты пишутся в виде csv или xls файлов, с
использование специфичного языка команд, основанного на протоколах
передачи данных FIX, ITCH, FAST и т.п.
- инструмент Shsha изначально представлял собой консольную
программу написанную на языке java, основной целью которого было
обработка и предоставление возможностей для анализа разнообразных лог
файлов. Позднее в Shsha появился графический десктоп интерфейс, а ещё
позднее было создано веб-приложения на основе фреймворка Sailfish. При
использовании Shsha тесты пишутся в виде sql запросов.
- генератор нагрузки Load Injector создавался специально для стресс-
тестирования масштабируемых высокопроизводительных систем. Load
Injector это генератор с открытым циклом, что позволяет поддерживать как
модель, так и измерительные подходы к тестированию производительности.
Фактически Load Injector имитирует несколько клиентских соединений или
группу подключений, с указанной формой нагрузки для каждого
соединения/группы.
Все эти программные продукты поддерживают все основные
протоколы данных используемые в торговых системах - FIX, ITCH, Native,
HTTP, SOAP, и т.п.
Фактически, три этих приложения, Sailfish, Shsha и Load Injector, с
минимальными доработками, позволяют провести полноценное тестирование
любой торговой системы. Но несмотря на наличие трех этих приложения,
многие области тестирования ПО фондовых бирж до сих пор
46
автоматизированы не полностью. К тому, же если рассмотреть работу этих
приложений более подробно, то тестирование с использованием Sailfish и
Shsha скорее можно назвать полу-автоматизированным.
Компания Exactpro работает по гибкой методологии разработки.
«Гибкая методология разработки (англ. Agile software development,
agile-методы) серия подходов к разработке программного обеспечения,
ориентированных на использование итеративной разработки, динамическое
формирование требований и обеспечение их реализации в результате
постоянного взаимодействия внутри самоорганизующихся рабочих групп,
состоящих из специалистов различного профиля»[45].
А если конкретнее, то компания работает по одному из подходов
гибкой методологии разработки Scrum. Scrum подразумевает разработку
спринтами, когда обновленная версия программного обеспечения в отдел
тестирования поступает раз в 2 до 4 недели.
Рисунок 7Наглядный пример спринта по методологии Scrum
47
Также на практике это означает, что команде тестировщиков
приходиться проводить регрессионное тестирование каждый спринт, т.е. раз
в 2-4 недели.
Также стоит учитывать, что программное обеспечение фондовой
биржи является продуктом большим по количеству строк кода, относительно
старым, но при этом требующим без перебойной работы, а любые ошибки в
ПО могут принести много миллионные убытки. Регрессионная библиотека
отдельных бирж насчитывает десятки тысяч тест-кейсов и лишь малая часть
из них каким либо образом автоматизирована.
Информация в данном параграфе знакомит нас с компанией Exactpro, с
используемыми в компании технологиями. Полученная информация дает
возможность оценить специфику работы компании, которую следует
учитывать при внедрении процесса автоматизации.
2.4 Анализ экономической целесообразности внедрения
автоматизации тестирования
Для анализа экономической целесообразности внедрения
автоматизации тестирования в компании были опрошены сотрудники,
начиная от простых тестировщиков и заканчивая заказчиками проектов,
проанализирована тестовая библиотека регрессионного тестирования, также
собрана статистика прогонов регрессионного тестирования. Опрос
сотрудников показывает, что данный вид тестирования должен стоять на
первом месте в плане полной его автоматизации. Также собраны данные
показывают, что:
Продолжительность проекта составляет ориентировочно 2 года
48
Полное регрессионное тестирование производиться раз в 2
недели. Также возможно промежуточное, повторное
тестирование. Количество тестов в библиотеке составляет
примерно 3000
Подготовка к прогону всего тест-плана составляет
ориентировочно 2 часа. Основную часть времени занимает
проверка готовности системы к тестам и запуск системы
фондовой биржи. Подготовка к выполнению одного теста
составляет 6 минут.
Плановый средний отрицательный результат - 7%. Среднее
время которое тратит ручной тестировщик на анализ ошибки
составляет 15 минут, автоматизатор – 30 минут.
Вероятность появления необходимости изменения теста - 4%
Актуализация теста ручного теста 6 минут, авто-теста 15
минут
Процент автоматизации библиотеки составляет 67%
Время, которое требуется на автоматизации одного теста 30
минут
Оплата ручного тестировщика - 300 рублей в час, оплата
автоматизатора – 500 рублей в час.
Исходя из вышеизложенных данных, можно рассчитать затраты на
ручное и автоматизированное тестирование:
1. Начальные вложения на данном этапе приравниваются к нулю,
так как стек технологий который будет использовать для
автоматизации распространяется как OpenSource.
2. Стоимость разработки авто-тестов - 502500 (2010*0,5*500рублей)
49
3. Количество циклов тестирования - 52 (2лет*52недели*0,5)
4. Цена однократного выполнения цикла автоматизированного
тестирования приравнивается к нулю, так как подготовка и его
сопровождение не требуется.
5. Стоимость анализа результатов автоматизированного
тестирования 35175 (2010*500*0,07*0,5)
6. Стоимость поддержания авто-тестов в актуальном состоянии
10050 (2010*500*0,04*0,25)
Таким образом, итоговая стоимость внедрения и эксплуатации системы
автоматизированных тестов равна:
0+502500+52*(0+35175+10050)=2854200
Аналогичным способом рассчитаем затраты на ручное тестирование:
1. Начальные вложение приравняем к нулю, так как компания уже
имеет готовую базу тестов.
2. Стоимость выполнения цикла ручного тестирования 60900
(2час + 0,1*2010)*300
3. Стоимость анализа результатов ручного тестирования 10552
(2010*0,25*300*0,07)
4. Стоимость поддержки ручных тестов в актуальном состоянии
2412 (2010*300*0,04*0,1)
Таким образом, итоговая стоимость затрат на ручное тестирование
равна:
0+52*(60900+10552+2412)=3840928
Исходя из полученных выше данных, можно сделать выводы, что
автоматизация данного проекта будет выгодна компании.
ВЫВОДЫ к главе 2. В данной главе были рассмотрены основные
черты автоматизации тестирования программного обеспечения, приведены
критерии эффективности процесса автоматизации, и произведен анализ
50
экономической целесообразности внедрения автоматизации на примере
компании Exactpro.
Вышеуказанное позволяет нам сделать вывод, что при тестировании
большого и долгосрочного проекта, внедрение процесса автоматизации
тестирования является целесообразным, что и было доказано в последнем
параграфе данной главы.
Основываясь на сделанном выводе, в следующей главе будет
реализован процесс перехода от частичной автоматизации тестирования
рыночных данных к полной.
51
ГЛАВА 3. АВТОМАТИЗАЦИЯ ПРОЦЕССА
ТЕСТИРОВАНИЯ
3.1 Протоколы передачи данных FIX, ITCH. Специфика
тестирования рыночных данных
Фондовый рынок является высокотехнологичной областью - помимо
технологичных роботов и развития инфраструктуры большое внимание
игроков этого рынка привлечено к развитию технических стандартов
протоколов передачи данных. На данный момент существует несколько
протоколов, которые, де-факто, стали почти стандартом передачи рыночных
данных. К таким протоколам можно отнести FIX и ITCH. [28]
FIX - Financial Information eXchange protocol - протокол обмена
финансовой информацией. В начале 90-х годов значительная часть операций
на фондовых рынках совершалась с использованием телефона, и чтобы
перевести взаимодействие с рынком в электронный вид, ряд инвестиционных
фондов и брокеров инициировали создание протокола передачи рыночных
данных, который получил название Financial Information eXchange protocol -
FIX. В результате, FIX стал глобальным стандартом передачи рыночных
данных, который не контролирует ни одна из крупных финансовых
организаций. FIX протокол, та или иная его реализация, поддерживается
большинством крупнейших банков и электронных трейдинговых систем, а
также крупнейшими фондовыми биржами мира.
FIX сообщения обычно состоят из заголовка и тела сообщения.
Сообщение состоит из набора полей «тэг=значение». В спецификации FIX
разделение данных происходит с использованием ASCII кода Start of Header
(#001, 0x01) - SOH. Тег отвечает за номер поля, как пример тег с номером 48

Смотрите также:

«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран
Work-life balance подход в управлении рабочим временем молодых сотрудников (на примере ООО «МГТ-сервис»)
Автоматизация управления проектами студии ООО «Альт айти солюшенс»
Автоматизация учета рабочего времени сотрудников компании ООО "Эпам Системз"
Автоматизация учёта ремонта компьютерного оборудования в компании «ГАРАНТ-СЕРВИС»
Автоматизация учета товара на складе для фирмы Эльдорадо