Найти тему
8 подписчиков

Можно по-разному относиться к продуктам компании 1С, но как бы вы к ним не относились, это платформа 1С это один из самых крупных софтверных проектов в нашей стране - около 10 миллионов строк исходного кода. Я посмотрел доклад от разработчика платформы 1С и вцелом у них всё так же как и у всех за исключением нескольких вещей.


Полный цикл тестирования занимает 3(!) недели. Если часть тестов падает, то тестирование прекращается и ресурсы освобождаются для тестирования других сборок. Тесты приоритезируются, в первую очередь запускаются тесты, отмеченные разработчиком, недавно упавшие и починенные, быстрые и важные тесты запускаются в порядке возрастания времени выполнения, и потом запускаются давно не падавшие тесты (то есть формальный признак стабильных тестов). Говорят про приоритезацию многие, реализуют единичные проекты. Особенно такого масштаба.

~100% функционального и нагрузочного тестирования автоматизировано.

Для части изменений в непрервывной интеграции используется инкрементальная сборка для экономии времени, для полного тестирования - сборка с нуля.

Для быстрого тестирования (чтобы понять нормальная сборка или нет) не запускают "долгоиграющие" тесты. Приоритезируют тестовые окружения: тесты запускают на PostgreSQL и не запускают на DB2 и Oracle, это даёт экономию времени выполнения около 1500 тестов, а интеграция с Oracle ломается примерно 1 раз в год. Вот о таких вещах очень трудно договариваться с продуктологами и менеджерами продукта. Обычно все переживают за свою пятую точку и рисковать не хотят.

Автоматизация бисекта коммита в случае упавшего теста использует ускоренную сборку в Visual Studio, когда новая версия библиотеки прилинковывается "сверху" к бинарю. Экономия: вместо 50 мин 3 минуты на сборку.

Ну и догфудинг: если функциональные и нагрузочные тесты прошли успешно, то новая версия используется для внутренних багтрекера и тасктрекера, для внутренней системы документооборота и для разработки бизнес-приложений. Для CI они используют Jenkins (тут я удивился, что не своя разработка, ведь могли бы).

Для нагрузочного тестирования используют Apache JMeter и собственное приложение "Тест-центр" на платформе 1С:Предприятие.

Для GUI используется свой инструмент визуального тестирования по принципу записи действий пользователя и картинки на экране, для WebUI - Selenium.

Для трекинга результатов тестирования используют Grafana и докладчик честно признался, что её функциональность можно реализовать на 1С, но они уже активно используют Grafana.

Так как у нас в Tarantool тоже свой рантайм, то некоторые вещи у нас с ними похожи: у нас тоже есть набор приложений, которые участвуют в интеграционном тестировании рантайма.
2 минуты