61
Петр Грибанов, 1С

Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Петр Грибанов, 1С

Page 2: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Обо мне

• В IT - с 1996 года

• iScala, Epicor, Microsoft, 1C

• Developers’ Tools and Frameworks

• Developer, Architect, Team Lead,

Project Manager, R’n’D Director

• 1C:Technology Evangelist

[email protected]

Page 3: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

О чем речь?

• Тестирование большого тиражного продукта

• Проект во многом уникальный

• Кросс-платформенный

• Высоконагруженный

• Нативные приложения, веб-клиент, мобильный клиент

• Что полезного для вас?

• Подходы к сборке и тестированию

• Сценарии тестирования

Page 4: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

предприятий, бизнесов, учреждений

используют автоматизацию 1С пользователей продуктов 1С

тиражируемых прикладных решений на платформе

1С:Предприятие

1300 специалистов программируют

на языке 1С:Предприятия

1200 сотрудников работают

в фирме 1С

1 500 000 5 000 000

300 000

Page 5: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

• Инструменты для разработки бизнес-приложений

• Бизнес-приложения, созданные с помощью наших

инструментов

• Обслуживание ИП

• Бухгалтерия

• CRM

• ERP

• FRP, ITIL, HRM, PMO, EPM

• …

Что делает 1С?

Page 6: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

• Инструменты для разработки бизнес-приложений

• Среда разработки (IDE)

• Конфигуратор (proprietary tool)

• 1C:Enterprise Development Tools (Eclipse-based)

• Runtime

• Windows, Linux, macOS, Android, iOS, cloud infrastructure, …

• Инструменты и утилиты

• Администрирование

• Оптимизация производительности

• …

Что делает 1С?

Page 7: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Результаты

• На долю ERP-систем 1С пришлось по нашим оценкам ~85%

от общего количества автоматизируемых рабочих мест в России

Доля рынка ERP в деньгах Количество рабочих мест в ERP-системах

Page 8: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Результаты

Доля рынка ERP в деньгах Количество рабочих мест в ERP-системах

• Количество сотрудников

• Microsoft – 131 тыс.

• SAP – 54 тыс.

• 1С – 1,2 тыс.

Page 9: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Почему так получается?

• Задача: автоматизировать бизнес-процесс

• Сотрудник вводит документ о продаже

• Кому продали

• Когда продали

• Что продали

• Товар

• Количество

• Цена

• Сумма

Page 10: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Процесс разработки

Постановка задачи

Программный класс

База данных

Пользовательский интерфейс

Готовая программа

Задача: автоматизировать

процесс продажи

• Сотрудник вводит

документ о продаже

• Кому продали

• Когда продали

• Что продали

• Товар

• Количество

• Цена

• Сумма

class Document

{

int CustomerID;

DateTime Date;

Collection Goods;

}

Классическая

разработка

Page 11: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Процесс разработки

Постановка задачи

Программный класс

База данных

Пользовательский интерфейс

Готовая программа

Задача: автоматизировать

процесс продажи

• Сотрудник вводит

документ о продаже

• Кому продали

• Когда продали

• Что продали

• Товар

• Количество

• Цена

• Сумма

class Document

{

int CustomerID;

DateTime Date;

Collection Goods;

} Разработка в 1С

Что создаем? Справочник Документ Бизнес-процесс План счетов …

Page 12: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Процесс разработки

Постановка задачи

Программный класс

База данных

Пользовательский интерфейс

Готовая программа

Задача: автоматизировать

процесс продажи

• Сотрудник вводит

документ о продаже

• Кому продали

• Когда продали

• Что продали

• Товар

• Количество

• Цена

• Сумма

class Document

{

int CustomerID;

DateTime Date;

Collection Goods;

} Разработка в 1С

Приложение = Метаданные + Код

Page 13: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Процесс разработки

Постановка задачи

Программный класс

База данных

Пользовательский интерфейс

Готовая программа

Задача: автоматизировать

процесс продажи

• Сотрудник вводит

документ о продаже

• Кому продали

• Когда продали

• Что продали

• Товар

• Количество

• Цена

• Сумма

class Document

{

int CustomerID;

DateTime Date;

Collection Goods;

} Разработка в 1С

Мы сознательно ограничили инструментарий разработчика объектами из мира бизнеса – документы, справочники, бизнес процессы и т.п. Разработка бизнес-приложений в 1С: - Domain-Driven Design (DDD,

предметно-ориентированный дизайн)

- Metadata-driven development - Model-driven development - Low-code / no-code

Приложение = Метаданные + Код

Page 14: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Процесс разработки

Постановка задачи

Программный класс

База данных

Пользовательский интерфейс

Готовая программа

Задача: автоматизировать

процесс продажи

• Сотрудник вводит

документ о продаже

• Кому продали

• Когда продали

• Что продали

• Товар

• Количество

• Цена

• Сумма

class Document

{

int CustomerID;

DateTime Date;

Collection Goods;

} Разработка в 1С

ПЛЮСЫ: • Высокая скорость разработки • Низкая стоимость разработки МИНУСЫ: • Нельзя написать все что угодно • Только +/- бизнес-софт Реальность: • Типичный производитель ERP

• 10-20 своих решений • 20-30 решений от партнеров

• 1С • 20 решений от 1С • 1300 решений от партнеров

Приложение = Метаданные + Код

Page 15: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team
Page 16: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Бизнес-приложение

Объекты бизнес-приложения

Page 17: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team
Page 18: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team
Page 19: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Разное

• Бизнес-приложения поставляются в открытых исходных кодах*

• Бизнес-приложения легко кастомизируются под меняющиеся бизнес-

процессы

• Без изменения исходных кодов приложение работает

• Как исполняемый (executable) клиент

• В браузере (веб-клиент)

• С минимальной адаптацией – как мобильный клиент

• Магазин «внешних обработок» для 1С

• Плагины для специфичных бизнес-задач (спецформа отчетности,

подключение экзотической периферии, мониторинг цен из внешних

сервисов, …)

*Платформа в открытых исходных кодах не поставляется

Page 20: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

1C:Предприятие

СУБД

Сервер приложений

Клиент

ERP

CRM

Бухгалтерия

Платформа 1С:Предприятие: runtime

Page 21: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

СУБД

MS SQL Server

Oracle

IBM DB2

PostgreSQL

Сервер приложений

Клиент

Платформа 1С:Предприятие: runtime

Page 22: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Группа резервирования кластеров

Активный кластер

серверов

Резервный

кластер серверов

СУБД

Клиент

MS SQL Server

Oracle

IBM DB2

PostgreSQL

Windows

Linux

Платформа 1С:Предприятие: runtime

Page 23: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Веб-сервер

Группа резервирования кластеров

~

~

~

~

Активный кластер

серверов

Резервный

кластер серверов

СУБД

Тонкий клиент Веб-клиент

Мобильные

клиенты

Windows

Linux

MS SQL Server

Oracle

IBM DB2

PostgreSQL

Microsoft IIS

Apache

Windows

Linux

macOS

Chrome

Firefox

Safari

Internet Explorer

Microsoft Edge

Мобильные браузеры

iOS

Android

Windows

Page 24: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Веб-сервер

Группа резервирования кластеров

~

~

~

~

Активный кластер

серверов

Резервный

кластер серверов

СУБД

Тонкий клиент Веб-клиент

Мобильные

клиенты

Windows

Linux

MS SQL Server

Oracle

IBM DB2

PostgreSQL

Microsoft IIS

Apache

Windows

Linux

macOS

Chrome

Firefox

Safari

Internet Explorer

Microsoft Edge

Мобильные браузеры

iOS

Android

Windows

• Программный продукт 1cFresh – облачная среда исполнения приложений 1С (aPaaS – application Platform as a Service)

• 1С использует продукт 1cFresh в сервисе http://1cfresh.com

• Продукт 1cFresh может разворачиваться on-premise

Page 25: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Веб-сервер

Группа резервирования кластеров

~

~

~

~

Активный кластер

серверов

Резервный

кластер серверов

СУБД

Тонкий клиент Веб-клиент

Мобильные

клиенты

Windows

Linux

MS SQL Server

Oracle

IBM DB2

PostgreSQL

Microsoft IIS

Apache

Windows

Linux

macOS

Chrome

Firefox

Safari

Internet Explorer

Microsoft Edge

Мобильные браузеры

iOS

Android

Windows

Платформа 1С:Предприятие

• С / С++

• Север приложений

• Тонкий (исполняемый) клиент,

мобильный клиент, IDE (Конфигуратор)

• 14 000 000 строк кода

• JavaScript

• Веб-клиент

• 1 600 000 строк кода

• Java

• IDE 1C:Enterprise Development Tools

• 1 500 000 строк кода

Page 26: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Дисклеймер!

• Рассказ о тестировании платформы 1С:Предприятие

• Средства разработки бизнес приложений

• Рантайм для исполнения бизнес приложений

• Тестирование самих бизнес-приложений – за рамками

данной презентации

Page 27: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Тестирование платформы 1С:Предприятие • Среда разработки (IDE)

• Runtime

• Кластер серверов приложений (Windows, Linux)

• Клиенты

• Тонкий (исполняемый) клиент (Windows, Linux, macOS)

• Веб-клиент (Chrome, Firefox, Safari, Microsoft Edge, IE)

• Мобильный клиент (Android, iOS, Windows)

• СУБД (MS SQL, PostgreSQL, Oracle, IBM DB2, файловая СУБД 1С)

• 1300* бизнес-приложений на платформе 1С:Предприятие

• Из них 20 наших _____________________________________________________________________________________________________________ * Сертифицированных по программе 1С:Совместимо

Page 28: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Тестирование платформы 1С:Предприятие

• Среда разработки (IDE)

• Runtime

• 1300 бизнес-приложений на платформе 1С

• Из них 20 наших

Функциональное тестирование

(иногда ручное)

• Функциональное тестирование (99,9% автоматическое)

• Нагрузочное тестирование

• Функциональное тестирование • НЕ тестирование бизнес-логики

• Нагрузочное тестирование • Performance / load / stress

• ~100% автоматическое

Page 29: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Тестирование платформы 1С:Предприятие

• Среда разработки (IDE)

• Runtime

• 1300 бизнес-приложений на платформе 1С

• Из них 20 наших

Функциональное тестирование

(иногда ручное)

• Функциональное тестирование (99,9% автоматическое)

• Нагрузочное тестирование

• Функциональное тестирование • НЕ тестирование бизнес-логики

• Нагрузочное тестирование • Performance / load / stress

• ~100% автоматическое

Page 30: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Функциональное тестирование

• Особенность:

• Платформа – средство разработки, «конструктор»

• Нет точных сценариев тестирования

• ~1000 “простых” бизнес-приложений

• Отрисовка UI

• Формы, поля ввода, кнопки, диаграммы, географические схемы, …

• Работа прикладного кода

• Вычисление выражений, строковые операции, …

• Работа прикладных объектов

• Справочники, документы, бизнес-процессы, регистры, …

• Работа прикладных библиотек

• Сетевые коммуникации, работа с архивами и криптографией, решение СЛАУ, …

• Язык тестов – Python

Page 31: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Жизненный цикл версий

8.3.N

8.3.N+1

8.3.N+2

Page 32: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Continuous Integration (CI)

8.3.N

• Слияние рабочих копий кода в основную ветвь несколько раз в день • После слияния - автосборка и автотестирование • Проблем при сборке или тестировании?

• Изменённый код возвращается на доработку.

Page 33: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Разработка платформы 1С:Предприятие

6 версий платформы в работе:

• 8.3.N

• 8.3.N+1

• 8.3.N+2

• 8.3.N+3

• 8.3.N+4

• 8.3.N+5

Последняя выпущенная

Новая функциональность

50 коммитов/день

Page 34: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Разработка платформы 1С:Предприятие

6 версий платформы в работе:

• 8.3.N

• 8.3.N+1

• 8.3.N+2

• 8.3.N+3

• 8.3.N+4

• 8.3.N+5

релиз

Фикс

Фикс

Фикс

Фикс

Фикс

Автоматически

Page 35: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

6 версий платформы в работе:

• 8.3.N

• 8.3.N+1

• 8.3.N+2

• 8.3.N+3

• 8.3.N+4

• 8.3.N+5

Разработка платформы 1С:Предприятие

релиз

Новая функциональность

Новая функциональность Вручную

Page 36: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Тестирование • 30 000 сочетаний «тест + окружение»

• Окружение

• х32, х64

• ОС

• Windows XP … Windows 10

• Linux: Astra, CentOS, Debian, Mint, RedHat, Ubuntu, Альт Линукс

• macOS 10.8+

• Мобильные ОС

• iOS 7.0 – 12.X, Android 4.0 – 9.X, Windows 8.1 – 10

• Веб-клиент

• Chrome, Firefox, Safari, IE

• Мобильные браузеры

• СУБД

• SQL Server 2005 - 2014

• PostgreSQL 8.1.5 – 10.5

• IBM DB2 9.1 – 11.1

• Oracle 10 – 12

• Файловая СУБД

Page 37: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Тестирование

• Полный цикл тестирования релиза – 3 недели

• Параллельный запуск тестов на фермах виртуалок

• Fail fast!

• Если сборка плохая – важно узнать про это как можно раньше

• Приоритизируем тесты

1. Тесты, помеченные разработчиком как приоритетные

2. Недавно упавшие тесты

3. Сочетание важных и быстрых тестов

• В порядке возрастания времени выполнения теста

4. Давно не падавшие тесты

• Правило «10 сбоев»

• 10 сбоев в пределах одной серии – останавливаем тесты

• Освобождаем ресурсы для тестирования других сборок/других версий

Page 38: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Приоритизация тестов

1. Тесты, помеченные разработчиком

как приоритетные

2. Недавно упавшие тесты

3. Сочетание важных и быстрых тестов

• В порядке возрастания

времени выполнения теста

4. Давно не падавшие тесты

Время выполнения

Важ

но

сть

тест

а

Старт

Page 39: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Приоритизация тестов

• Новая функциональность – выбираем приоритетные тесты:

• Затронет UI?

• Веб-клиент?

• Мобильный клиент?

• Клиент-серверное взаимодействие?

• Сборка новой ветки на основе протестированного релиза

• Протестировать изменение в изолированном окружении

• Не повлияло ли на производительность

• Возможно, скорректировать тесты

• Если все ОК – новая функциональность попадает в общую ветку

Page 40: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Сборка и автотестирование

• Инкрементальная компиляция для теста отдельных изменений

• Компилируется только то, что изменилось и прямые зависимости

• Полный тест – полная сборка

• «Интеграционные» сборки

• Проверка «в стороне» существенных изменений

• Если инженер считает изменения существенными, он вливает их в отдельную

ветку, собирает ее и прогоняет все тесты

• При успешном прохождении всех тестов изменения вносятся в основную

ветку

Page 41: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Упал тест? • Покоммитная сборка и тесты

• Дано: коммит N – тесты ОК, коммит N + X – тесты упали

• Какой коммит сломал тест?

• Ускоренная сборка* начиная с последнего хорошего релиза

• Старые бинарники остаются в файлах как мусор

• Новые бинарники ложатся рядом

• Линкер правит таблицы ссылок, переадресуя вызовы на новые бинарники

• В памяти мусор, но: 50 мин -> 3 мин на сборку

• Сборка точечного изменения обходится дешево

• Можно быстро протестировать коммит

• Делаем тест на самом быстром окружении, где тест был сломан

• Нюансы: могло поменяться окружение (например, автоматически обновился Chrome)

• Находим, какой коммит сломал тест

• Автоматический мейл инженеру

*Доступно только в MS Visual Studio, есть ряд ограничений в использовании

Page 42: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Упал тест?

Автоматическое письмо:

Движение по коммитам дихотомией

Page 43: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Нагрузочное тестирование

• Функциональное тестирование – done

• Нагрузочное тестирование

• 400 виртуалок

• Тиражные бизнес решения: ERP, Payroll, HRM, …

• Эмуляция 20 000 одновременных пользователей

Page 44: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Eat your own dogfood

• Функциональное тестирование – done

• Нагрузочное тестирование – done

• Используем сами!

• Внутренний тасктрекер/багтрекер

• Внутренний Документооборот

• Разработка бизнес-приложений

• ERP, Документооборот, Бухгалтерия, …

• Тестируется IDE

• Тестирование бизнес-логики

Page 45: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Инструменты: Jenkins

• Jenkins for CI

• 50+ сборок/день

• Сборка параллельно по архитектурам

• Windows

• Linux

• macOS

• Параллельная сборка независимых проектов

• В сотни потоков

• 8 часов -> 80 минут

• Интеграция с нашим тасктрекером

• Автоматическое заведение ошибок с логами и артефактами тестирования

• Доставка и установка платформы на 1500 серверов до 70 раз в день

Page 46: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Инструменты: Apache JMeter

• Тестирования производительности кластера приложений

• Нагрузочное тестирование кластера приложений на большом

количестве (до 10 000) пользователей

Page 47: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

«Тест-центр» • «Тест-центр» - приложение на платформе 1С:Предприятие (библиотека)

• Мержится с тестируемым бизнес-приложением (ERP, HRM, Payroll, …)

• Процедура мержа автоматизирована

• Многопользовательские сценарии тестирования

• Группы пользователей

• Количество пользователей в группе

• Сценарии работы групп

• Запуск сценариев, контроль хода выполнения

• «Конвейер выполнения»

• 2 мощных физических сервера с виртуалками

• 1 сервер приложений 1С

• 1 сервер БД

• 1 сервер лицензирования

• 40 серверов с клиентскими сеансами

• Из конвейеров собираются 15 вариантов тестовых площадок

• 1, 2, 4, 10 конвейеров

• 100, 200, 400, 3000, 10000 пользователей

• От 1 до 6 серверов в кластере

Page 48: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team
Page 49: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

«Тест-центр»

Пример сценария тестирования ERP

Page 50: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

«Тест-центр»

Пример сценария тестирования ERP

Page 51: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Тестируем UI

• 3rd party tool vs. own-developed

• Ranorex, Rapise, Abbot, eggPlant, FitNesse, …

• Cвой инструмент для визуального тестирования

• Тестирует практически любое приложение

• Запись сценария

• Запись действий пользователя (мышь, клавиатура)

• Скриншоты рабочей области экрана

• Проигрывание сценария

• Ждет такой же картинки экрана (с точностью до пикселя), как в сценарии

• Эмулирует нажатие клавиш/кнопок мыши

• Замеряет производительность

• Отслеживаем performance degradation

Page 52: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team
Page 53: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Тестируем UI: веб-клиент

• Cвой инструмент для визуального тестирования

• Тот же, что для нативного клиента

• Тестирует практически любое приложение

• Selenium

• Если элемент поменял положение на экране – Selenium может не заметить

• Производительность!

• Отладчик Chrome, Dynatrace AJAX Edition

• Время выполнения единичной операции – не показатель

• Может наложиться уборка мусора, …

• Считаем

• Количество выполненных инструкций JavaScript

• Количество атомарных операций над DOM

Page 54: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Инструменты: Grafana

• Платформа с открытым исходным кодом для визуализации,

мониторинга и анализа данных

• Читает из InfluxDB, Prometheus, MySQL, Postgres

• Мы используем InfluxDB

• Широкие возможности визуализации

• Функциональность Grafana можно реализовать на 1С

• Но мы уже вложили ресурсы в Grafana

Page 55: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Монитор внутренней кухни CI за 12 часов

Page 56: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

12-часовой срез тестирования по веткам

Page 57: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

• Монитор состояния CI-стендов • Что отлично от тёмно-зеленого - сбои • Красные - за квоту времени упало > 30 тестов

Page 58: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Тестирование платформы 1С:Предприятие

• Платформа = среда разработки (IDE) + среда выполнения (runtime)

• Юнит-тесты

• Функциональное тестирование платформы

• Много простых бизнес-приложений

• Написаны разработчиками платформы

• Нагрузочное тестирование

• Реальные бизнес-приложения (ERP, Бухгалтерия, Payroll, HRM)

• Написаны разработчиками бизнес-приложений

Page 59: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Тестирование платформы 1С:Предприятие

Вычисление выражений

Работа со строками

Работа прикладных объектов

Работа библиотек

Работа с СУБД

ERP Бухгалтерия HRM Функциональное тестирование

Нагрузочное тестирование

Page 60: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Тестирование платформы 1С:Предприятие • Платформа = IDE + Runtime

• Fail fast!

• Сначала тестируем то, что недавно сломалось

• Потом – важное и быстрое

• Потом – все остальное

• Функциональное тестирование

• Сотни тестовых бизнес-приложений

• Нагрузочное тестирование

• Реальные бизнес-приложения – ERP, HRM, Payroll, …

• Эмуляция 10 000+ одновременных пользователей

• Тестирование UI

• Собственный инструмент

• Selenium для веб-клиента

• Eat your own dogfood

• Внутренние тасктрекер, документооборот, …

• Разработка тиражных приложений (ERP, HRM, Payroll, …)

• Инструменты

• Jenkins, JMeter, Grafana

• Собственной разработки

Page 61: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team

Как мы в 1С тестируем софт, который используют

5 000 000 пользователей в 1 500 000 организаций

на Windows, Linux, macOS, Android, iOS

Петр Грибанов

[email protected]