![Page 1: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/1.jpg)
Петр Грибанов, 1С
![Page 2: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/2.jpg)
Обо мне
• В IT - с 1996 года
• iScala, Epicor, Microsoft, 1C
• Developers’ Tools and Frameworks
• Developer, Architect, Team Lead,
Project Manager, R’n’D Director
• 1C:Technology Evangelist
![Page 3: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/3.jpg)
О чем речь?
• Тестирование большого тиражного продукта
• Проект во многом уникальный
• Кросс-платформенный
• Высоконагруженный
• Нативные приложения, веб-клиент, мобильный клиент
• Что полезного для вас?
• Подходы к сборке и тестированию
• Сценарии тестирования
![Page 4: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/4.jpg)
предприятий, бизнесов, учреждений
используют автоматизацию 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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/5.jpg)
• Инструменты для разработки бизнес-приложений
• Бизнес-приложения, созданные с помощью наших
инструментов
• Обслуживание ИП
• Бухгалтерия
• CRM
• ERP
• FRP, ITIL, HRM, PMO, EPM
• …
Что делает 1С?
![Page 6: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/6.jpg)
• Инструменты для разработки бизнес-приложений
• Среда разработки (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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/7.jpg)
Результаты
• На долю ERP-систем 1С пришлось по нашим оценкам ~85%
от общего количества автоматизируемых рабочих мест в России
Доля рынка ERP в деньгах Количество рабочих мест в ERP-системах
![Page 8: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/8.jpg)
Результаты
Доля рынка 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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/9.jpg)
Почему так получается?
• Задача: автоматизировать бизнес-процесс
• Сотрудник вводит документ о продаже
• Кому продали
• Когда продали
• Что продали
• Товар
• Количество
• Цена
• Сумма
![Page 10: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/10.jpg)
Процесс разработки
Постановка задачи
Программный класс
База данных
Пользовательский интерфейс
Готовая программа
Задача: автоматизировать
процесс продажи
• Сотрудник вводит
документ о продаже
• Кому продали
• Когда продали
• Что продали
• Товар
• Количество
• Цена
• Сумма
class Document
{
int CustomerID;
DateTime Date;
Collection Goods;
}
Классическая
разработка
![Page 11: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/11.jpg)
Процесс разработки
Постановка задачи
Программный класс
База данных
Пользовательский интерфейс
Готовая программа
Задача: автоматизировать
процесс продажи
• Сотрудник вводит
документ о продаже
• Кому продали
• Когда продали
• Что продали
• Товар
• Количество
• Цена
• Сумма
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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/12.jpg)
Процесс разработки
Постановка задачи
Программный класс
База данных
Пользовательский интерфейс
Готовая программа
Задача: автоматизировать
процесс продажи
• Сотрудник вводит
документ о продаже
• Кому продали
• Когда продали
• Что продали
• Товар
• Количество
• Цена
• Сумма
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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/13.jpg)
Процесс разработки
Постановка задачи
Программный класс
База данных
Пользовательский интерфейс
Готовая программа
Задача: автоматизировать
процесс продажи
• Сотрудник вводит
документ о продаже
• Кому продали
• Когда продали
• Что продали
• Товар
• Количество
• Цена
• Сумма
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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/14.jpg)
Процесс разработки
Постановка задачи
Программный класс
База данных
Пользовательский интерфейс
Готовая программа
Задача: автоматизировать
процесс продажи
• Сотрудник вводит
документ о продаже
• Кому продали
• Когда продали
• Что продали
• Товар
• Количество
• Цена
• Сумма
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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/15.jpg)
![Page 16: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/16.jpg)
Бизнес-приложение
Объекты бизнес-приложения
![Page 17: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/17.jpg)
![Page 18: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/18.jpg)
![Page 19: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/19.jpg)
Разное
• Бизнес-приложения поставляются в открытых исходных кодах*
• Бизнес-приложения легко кастомизируются под меняющиеся бизнес-
процессы
• Без изменения исходных кодов приложение работает
• Как исполняемый (executable) клиент
• В браузере (веб-клиент)
• С минимальной адаптацией – как мобильный клиент
• Магазин «внешних обработок» для 1С
• Плагины для специфичных бизнес-задач (спецформа отчетности,
подключение экзотической периферии, мониторинг цен из внешних
сервисов, …)
*Платформа в открытых исходных кодах не поставляется
![Page 20: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/20.jpg)
1C:Предприятие
СУБД
Сервер приложений
Клиент
ERP
CRM
Бухгалтерия
Платформа 1С:Предприятие: runtime
![Page 21: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/21.jpg)
СУБД
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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/22.jpg)
Группа резервирования кластеров
Активный кластер
серверов
Резервный
кластер серверов
СУБД
Клиент
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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/23.jpg)
Веб-сервер
Группа резервирования кластеров
~
~
~
~
Активный кластер
серверов
Резервный
кластер серверов
СУБД
Тонкий клиент Веб-клиент
Мобильные
клиенты
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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/24.jpg)
Веб-сервер
Группа резервирования кластеров
~
~
~
~
Активный кластер
серверов
Резервный
кластер серверов
СУБД
Тонкий клиент Веб-клиент
Мобильные
клиенты
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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/25.jpg)
Веб-сервер
Группа резервирования кластеров
~
~
~
~
Активный кластер
серверов
Резервный
кластер серверов
СУБД
Тонкий клиент Веб-клиент
Мобильные
клиенты
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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/26.jpg)
Дисклеймер!
• Рассказ о тестировании платформы 1С:Предприятие
• Средства разработки бизнес приложений
• Рантайм для исполнения бизнес приложений
• Тестирование самих бизнес-приложений – за рамками
данной презентации
![Page 27: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/27.jpg)
Тестирование платформы 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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/28.jpg)
Тестирование платформы 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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/29.jpg)
Тестирование платформы 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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/30.jpg)
Функциональное тестирование
• Особенность:
• Платформа – средство разработки, «конструктор»
• Нет точных сценариев тестирования
• ~1000 “простых” бизнес-приложений
• Отрисовка UI
• Формы, поля ввода, кнопки, диаграммы, географические схемы, …
• Работа прикладного кода
• Вычисление выражений, строковые операции, …
• Работа прикладных объектов
• Справочники, документы, бизнес-процессы, регистры, …
• Работа прикладных библиотек
• Сетевые коммуникации, работа с архивами и криптографией, решение СЛАУ, …
• Язык тестов – Python
![Page 31: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/31.jpg)
Жизненный цикл версий
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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/32.jpg)
Continuous Integration (CI)
8.3.N
• Слияние рабочих копий кода в основную ветвь несколько раз в день • После слияния - автосборка и автотестирование • Проблем при сборке или тестировании?
• Изменённый код возвращается на доработку.
![Page 33: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/33.jpg)
Разработка платформы 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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/34.jpg)
Разработка платформы 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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/36.jpg)
Тестирование • 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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/37.jpg)
Тестирование
• Полный цикл тестирования релиза – 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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/38.jpg)
Приоритизация тестов
1. Тесты, помеченные разработчиком
как приоритетные
2. Недавно упавшие тесты
3. Сочетание важных и быстрых тестов
• В порядке возрастания
времени выполнения теста
4. Давно не падавшие тесты
Время выполнения
Важ
но
сть
тест
а
Старт
![Page 39: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/39.jpg)
Приоритизация тестов
• Новая функциональность – выбираем приоритетные тесты:
• Затронет UI?
• Веб-клиент?
• Мобильный клиент?
• Клиент-серверное взаимодействие?
• Сборка новой ветки на основе протестированного релиза
• Протестировать изменение в изолированном окружении
• Не повлияло ли на производительность
• Возможно, скорректировать тесты
• Если все ОК – новая функциональность попадает в общую ветку
![Page 40: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/40.jpg)
Сборка и автотестирование
• Инкрементальная компиляция для теста отдельных изменений
• Компилируется только то, что изменилось и прямые зависимости
• Полный тест – полная сборка
• «Интеграционные» сборки
• Проверка «в стороне» существенных изменений
• Если инженер считает изменения существенными, он вливает их в отдельную
ветку, собирает ее и прогоняет все тесты
• При успешном прохождении всех тестов изменения вносятся в основную
ветку
![Page 41: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/41.jpg)
Упал тест? • Покоммитная сборка и тесты
• Дано: коммит 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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/42.jpg)
Упал тест?
Автоматическое письмо:
Движение по коммитам дихотомией
![Page 43: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/43.jpg)
Нагрузочное тестирование
• Функциональное тестирование – done
• Нагрузочное тестирование
• 400 виртуалок
• Тиражные бизнес решения: ERP, Payroll, HRM, …
• Эмуляция 20 000 одновременных пользователей
![Page 44: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/44.jpg)
Eat your own dogfood
• Функциональное тестирование – done
• Нагрузочное тестирование – done
• Используем сами!
• Внутренний тасктрекер/багтрекер
• Внутренний Документооборот
• Разработка бизнес-приложений
• ERP, Документооборот, Бухгалтерия, …
• Тестируется IDE
• Тестирование бизнес-логики
![Page 45: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/45.jpg)
Инструменты: 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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/46.jpg)
Инструменты: Apache JMeter
• Тестирования производительности кластера приложений
• Нагрузочное тестирование кластера приложений на большом
количестве (до 10 000) пользователей
![Page 47: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/47.jpg)
«Тест-центр» • «Тест-центр» - приложение на платформе 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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/48.jpg)
![Page 49: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/49.jpg)
«Тест-центр»
Пример сценария тестирования ERP
![Page 50: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/50.jpg)
«Тест-центр»
Пример сценария тестирования ERP
![Page 51: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/51.jpg)
Тестируем 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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/52.jpg)
![Page 53: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/53.jpg)
Тестируем 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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/54.jpg)
Инструменты: 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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/55.jpg)
Монитор внутренней кухни CI за 12 часов
![Page 56: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/56.jpg)
12-часовой срез тестирования по веткам
![Page 57: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/57.jpg)
• Монитор состояния CI-стендов • Что отлично от тёмно-зеленого - сбои • Красные - за квоту времени упало > 30 тестов
![Page 58: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/58.jpg)
Тестирование платформы 1С:Предприятие
• Платформа = среда разработки (IDE) + среда выполнения (runtime)
• Юнит-тесты
• Функциональное тестирование платформы
• Много простых бизнес-приложений
• Написаны разработчиками платформы
• Нагрузочное тестирование
• Реальные бизнес-приложения (ERP, Бухгалтерия, Payroll, HRM)
• Написаны разработчиками бизнес-приложений
![Page 59: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/59.jpg)
Тестирование платформы 1С:Предприятие
Вычисление выражений
Работа со строками
Работа прикладных объектов
Работа библиотек
Работа с СУБД
ERP Бухгалтерия HRM Функциональное тестирование
Нагрузочное тестирование
…
![Page 60: Петр Грибанов, 1С...Обо мне • В IT - с 1996 года • iScala, Epicor, Microsoft, 1C • Developers’ Tools and Frameworks • Developer, Architect, Team](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/60.jpg)
Тестирование платформы 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](https://reader033.vdocuments.mx/reader033/viewer/2022060409/5f1030607e708231d447e289/html5/thumbnails/61.jpg)
Как мы в 1С тестируем софт, который используют
5 000 000 пользователей в 1 500 000 организаций
на Windows, Linux, macOS, Android, iOS
Петр Грибанов