Как организовать тестирование и разработку Open Source конфигурации 1С:Предприятие?

Программист 1С v8.3 (Управляемые формы) Управленческий учет IT и автоматизация бизнеса
← На главную

Разработка и тестирование Open Source проектов на платформе 1С:Предприятие — это уникальная возможность для сообщества специалистов делиться опытом, улучшать навыки и совместно создавать качественные прикладные решения. Рассмотрим подробно, как такие проекты функционируют, какие принципы лежат в их основе и какие инструменты помогают достигать поставленных целей.

Что такое Open Source в контексте 1С и зачем это нужно?

Open Source, или открытый исходный код, означает, что программное обеспечение распространяется с возможностью свободного доступа к его исходному коду. Для платформы 1С:Предприятие это открывает ряд перспектив и преимуществ:

  1. Свободное распространение и использование: Open Source решения на 1С позволяют бесплатно использовать и распространять прикладные решения. Это особенно ценно для малого бизнеса, стартапов и некоммерческих организаций, которые могут экономить значительные ресурсы на покупке лицензий и начальной разработке.
  2. Управляемые и высоконадежные системы: Использование свободного программного обеспечения, включая компоненты окружения 1С (например, связка Linux + 1C + PostgreSQL), способствует созданию более управляемых, гибких и высоконадежных информационных систем. Мы получаем полный контроль над стеком технологий.
  3. Сообщество и ускорение разработки: Принцип Open Source активно стимулирует совместную работу. Мы можем совместно использовать и улучшать существующий код, что значительно ускоряет разработку. Большое и активное сообщество способно быстрее выявлять и исправлять ошибки, чем это возможно в закрытых системах, где круг участников ограничен.
  4. Мотивация участников: Помимо энтузиазма, участие в Open Source проектах 1С мотивируется желанием улучшить свои профессиональные навыки, получить признание в сообществе, расширить портфолио для собеседований и решить общие проблемы, с которыми сталкиваются многие разработчики и пользователи 1С. Это отличный способ для демонстрации своих компетенций и обучения на практике.

Особенности Open Source проекта "INFOSTART ERP community edition"

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

Модульность как ключевой принцип: Проект строится на идее модульной конфигурации. Это означает, что функциональность разбита на отдельные, относительно независимые блоки — расширения. Каждое расширение представляет собой отдельный контур учета или функциональный блок. Мы понимаем, что это дает гибкость:

Лицензионное соглашение и права пользователя: В данном проекте применяются четкие правила использования и распространения конфигурации, которые соответствуют принципам Open Source:

  1. Пользователь имеет право использовать Конфигурацию для неограниченного числа рабочих мест.
  2. Может бесплатно распространять копии Конфигурации.
  3. Имеет возможность улучшать Конфигурацию и публиковать свои улучшения через Разработчика.
  4. Может создавать любые расширения для Конфигурации и публиковать их в «Магазине расширений» Разработчика.
  5. Есть опция заключить договор с Разработчиком на лицензионное сопровождение Конфигурации на платной основе, что позволяет монетизировать часть усилий.

При этом существуют и ограничения: НЕ разрешается копировать документацию, предоставлять Конфигурацию в аренду/продавать или предоставлять сублицензию, а также удалять информацию об авторских правах. Это стандартные ограничения для большинства открытых лицензий, которые защищают интеллектуальную собственность авторов ядра, при этом обеспечивая свободу использования и модификации.

Философия простоты: Авторы проекта стремятся к тому, чтобы решение было максимально простым и понятным, чтобы "любой мог сходу разобраться" в коде и логике работы. Это напоминает простоту, которой славилась платформа 7.7. Мы принимаем во внимание мудрость: "Делать сложное очень просто, а вот делать простое очень сложно". Простой код, который не требует чрезмерных комментариев, считается хорошим кодом, так как его легко читать и поддерживать.

Принципы тестирования в Open Source проектах 1С

Эффективное тестирование — залог качества любого программного продукта, особенно в Open Source, где процесс часто распределен между множеством участников. Рассмотрим подходы к тестированию в данном проекте.

Пользовательское (ручное) тестирование: Основной упор делается на пользовательское тестирование. Мы понимаем, что именно в этом заключается смысл такого подхода: тестировщик должен сам "ковыряться во всей конфигурации", "хаотично нажимая различные кнопки", "создавать документы и т.д.". Это не означает полное отсутствие структуры, а скорее имитацию реальной работы пользователя:

  1. Сквозные примеры: Для систематизации тестирования мы рекомендуем использовать сквозные примеры. Например, если проверяется модуль платежного календаря, то необходимо последовательно завести товары, документы реализации/оплаты, сформировать отчеты и т.д. Такой подход позволяет глубоко проработать конкретный бизнес-процесс.
  2. Выявление удобства и недостатков: В процессе такого тестирования мы обращаем внимание на то, что с точки зрения пользователя сделано удобно/неудобно, что можно улучшить, доработать. Это выходит за рамки простого поиска ошибок и включает анализ юзабилити.
  3. Роль реальных клиентов: Лучшими тестировщиками являются реальные пользователи (клиенты). Мы осознаем, что "никто так хорошо не тестирует, как пользователи", поскольку именно они сталкиваются с разнообразными сценариями учета и находят даже самые неочевидные баги.

Отсутствие перечня действий: В начале проекта может отсутствовать детализированный перечень определенных действий для тестирования. Это требует от тестировщика инициативы и глубокого погружения в функционал. Однако, с развитием проекта и накоплением опыта, мы можем приступить к формализации тестовых сценариев.

Документация для тестирования: Наличие документации критически важно для эффективного тестирования, даже если оно ручное. Мы подтверждаем, что документация есть и постоянно обновляется. Это помогает тестировщикам ориентироваться в функционале, понимать его назначение и корректно воспроизводить бизнес-процессы.

Автоматизированное тестирование: На начальном этапе проекта автоматизированное тестирование может не использоваться. Однако, мы видим, что есть предложение начать его внедрение. Для автоматизации тестирования прикладных решений на платформе "1С:Предприятие" активно используются Open Source инструменты, такие как Vanessa ADD (являющаяся результатом объединения фреймворков xUnitFor1C и Vanessa-Behavior). Это мощный инструмент, который позволяет нам:

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

Как организовать разработку в Open Source проекте 1С

Разработка в Open Source проекте на 1С имеет свои особенности, связанные как с платформой, так и с распределенным характером работы. Мы рассмотрим ключевые аспекты.

Присоединение к разработке: Разработчики могут присоединиться к проекту в нескольких формах:

  1. Разработка ядра конфигурации.
  2. Разработка текущих расширений.
  3. Создание своих собственных расширений, которые могут быть полезны другим пользователям и опубликованы в «Магазине расширений».

Постановка задач: Задачи на разработку часто ставятся "клиентами (и/или правительством :) вводя различные маркировки, егаисы и прочие исы)". Это означает, что развитие функционала во многом определяется реальными потребностями бизнеса и законодательными изменениями. Такое взаимодействие с внешними источниками задач гарантирует актуальность и востребованность разрабатываемых модулей.

Среда разработки: Основной средой разработки остается Конфигуратор. Однако для групповой разработки и использования принципов Open Source активно применяется система контроля версий Git. На данный момент проект может использовать хранилище 1С, но рассматривает возможность перехода на Git. Мы осознаем, что Git предоставляет значительные преимущества для Open Source, такие как:

Для интеграции 1С с Git существуют специализированные утилиты. Например, precommit1C позволяет разбирать/собирать внешние обработки и отчеты при коммите, а gitsync обеспечивает синхронизацию хранилища 1С с Git-репозиторием. Использование этих инструментов позволяет нам эффективно управлять кодом в распределенной команде.

Контроль разработки: Вопреки мнению о хаотичности Open Source, в данном проекте существует контроль над разработкой. Несмотря на то, что "любой разработчик может добавлять свои расширения в магазин расширений", это не означает отсутствие главного, кто контролирует разработку. Мы можем предположить, что контроль осуществляется через ревью кода, стандарты разработки и одобрение публикации новых модулей или изменений в ядре. Это гарантирует поддержание общего качества и согласованности.

Ограничения базовых версий 1С: Мы помним, что базовые версии 1С не позволяют изменять конфигурацию и не имеют функционала расширений. Это ограничивает возможности Open Source проектов, ориентированных на широкое распространение среди малых предприятий, использующих базовые версии. Разработка для таких проектов должна учитывать эти ограничения.

Проблемы с UI: Мы признаем, что глубокая кастомизация пользовательского интерфейса (UI) не всегда является сильной стороной платформы 1С. Это иногда может подталкивать к поиску альтернативных решений или фронтенд-технологий для создания более гибких и современных интерфейсов для некоторых частей системы.

Документация и архитектура

Качество и доступность документации, а также продуманная архитектура являются основополагающими для успеха любого Open Source проекта, особенно на 1С.

Документация: В проекте "INFOSTART ERP community edition" документация существует и постоянно обновляется. Это критически важно, поскольку:

  1. Новые участники могут быстро вникнуть в логику работы системы.
  2. Тестировщики получают основы для понимания функционала (например, по платежному календарю).
  3. Поддерживается единообразие подходов в разработке.

Мы понимаем, что без адекватной документации, особенно по таким сложным блокам, как платежный календарь, разработчикам и тестировщикам пришлось бы работать "по наитию", что значительно снижает эффективность и качество.

Архитектура решения: Вопрос архитектуры — сложный. Каждый разработчик считает, что его решения идеальны на данный момент времени с доступными инструментами и возможностями платформы. Однако "ничего не стоит на месте, все развивается", и то, что казалось идеальным вчера, сегодня может быть "слегка убогим". В данном проекте как такового формального "описания архитектуры" может не быть в виде единого документа. Однако существуют некие основополагающие принципы написания конфигурации, которых необходимо придерживаться. Эти принципы формируются и могут быть описаны со временем, по мере развития проекта. Мы стремимся к тому, чтобы эти принципы были минимальными, но достаточными для поддержания порядка и согласованности в разработке.

Мотивация и вознаграждение участников

Open Source проекты часто опираются на энтузиазм и самоотдачу участников. Мы рассмотрим, как мотивируются добровольцы в данном проекте.

Увлеченность проектом: Основной движущей силой является "увлеченность тем, чем они занимаются". Проект является Open Source, а следовательно, предполагается, что люди участвуют по собственному желанию, из интереса и страсти к разработке или тестированию.

Бесплатное участие: Участие в проекте является бесплатным для разработчиков и тестировщиков. Мы рассматриваем это не как "работу" в общепринятом смысле, а как "участие в проекте". Это означает, что каждый "работает, когда хочет, как хочет и сколько хочет".

Бонусы и нематериальная мотивация: Несмотря на бесплатность, для участников предусмотрены бонусы:

  1. Доступ ко всем расширениям: Тестировщик и разработчик получают доступ ко всем расширениям конфигурации, что является ценным ресурсом для изучения и использования.
  2. "Стартмани" в качестве бонуса: Предусмотрен символический бонус в виде "стартмани" ($m), который является скорее знаком признательности и частью культуры сообщества Инфостарта.
  3. Развитие навыков и портфолио: Участие в таком проекте предоставляет бесценный опыт. Заявление на собеседовании о непосредственном участии в разработке Open Source конфигурации 1С является сильным аргументом и значительно повышает шансы на успех, аналогично хорошим публикациям с плюсами и скачиваниями. Это способ продемонстрировать свои компетенции и профессиональный рост.
  4. Вклад в сообщество: Участники получают удовлетворение от того, что вносят свой вклад в развитие общего дела, создают полезный продукт, который может помочь другим. Это особенно актуально для проектов, которые стремятся решить общие проблемы и создать доступные решения.

Модель Open Core: Проекты Open Source могут монетизироваться с использованием бизнес-модели Open Core. Это подразумевает предоставление платной подписки для доступа к "продвинутым" возможностям, услугам поддержки и адаптации продукта. Таким образом, ядро остается открытым, а расширенная функциональность или сервисы — платными. Это устойчивая модель, позволяющая поддерживать развитие проекта.

API-экосистемы: Некоторые разработчики планируют развивать API-экосистемы, которые позволят интегрировать программные продукты с другими сервисами и платформами. Это также может стать частью стратегии монетизации и расширения влияния проекта.

Продвижение и сообщество: Профильные площадки, такие как Инфостарт и GitHub, играют важную роль в продвижении Open Source проектов 1С. Они позволяют находить единомышленников, получать обратную связь и развивать решения. Существуют также агрегаторы Open Source проектов для 1С, например, OpenYellow, которые собирают информацию о репозиториях на GitHub и предоставляют рейтинги, помогая новым участникам находить интересные проекты.

Инструменты для разработки и тестирования

Для эффективной работы над Open Source проектом на платформе 1С:Предприятие мы используем или рассматриваем к использованию ряд специализированных инструментов.

  1. Среда разработки:
    • Конфигуратор 1С:Предприятие: Это стандартный инструмент для разработки на платформе 1С. Он позволяет создавать и модифицировать объекты метаданных, писать код на встроенном языке.
    • Хранилище конфигурации 1С: Используется для командной разработки, обеспечивая версионирование и совместную работу с кодом внутри экосистемы 1С.
    • Git: Мы рассматриваем переход на Git как систему контроля версий. Git обеспечивает распределенную разработку, мощные возможности по слиянию изменений, историю версий и параллельную работу нескольких разработчиков. Это является золотым стандартом для Open Source проектов.
  2. Инструменты для интеграции 1С с Git:
    • precommit1C: Эта утилита позволяет разбирать/собирать внешние обработки и отчеты при коммите в Git. Это критически важно, так как 1С хранит объекты в бинарном или XML-формате, неудобном для прямого сравнения в Git. precommit1C помогает конвертировать их в текстовый вид, удобный для Git.
    • gitsync: Этот инструмент предназначен для синхронизации хранилища 1С с Git-репозиторием. Он автоматизирует процесс выгрузки изменений из хранилища 1С в Git и загрузки их обратно, упрощая работу разработчиков, привыкших к хранилищу.
  3. Инструменты для автоматизированного тестирования:
    • Vanessa ADD: Мы видим потенциал в использовании Vanessa ADD (Vanessa Automation Driven Development). Это мощный Open Source инструмент для автоматизированного тестирования прикладных решений на платформе 1С. Он объединяет функционал xUnitFor1C и Vanessa-Behavior и предоставляет следующие возможности:
      • Запись действий пользователя: Позволяет получать шаги на языке Gherkin (понятный для бизнес-пользователей язык описания сценариев) из реальных действий пользователя, что значительно упрощает создание тестовых сценариев.
      • Создание видеоинструкций: Помогает документировать и воспроизводить тестовые сценарии.
      • Различные виды тестирования: Поддерживает модульное, юнит, приемочное, сценарное и интеграционное тестирование, позволяя нам покрыть все уровни качества.
  4. Платформы для сообщества:
    • Инфостарт: Крупнейшая русскоязычная площадка для 1С-разработчиков, где можно публиковать статьи, обсуждать проекты и находить единомышленников.
    • GitHub: Глобальная платформа для размещения Open Source проектов, совместной работы над кодом, отслеживания задач и запросов на изменения.
    • OpenYellow: Агрегатор Open Source проектов для 1С, который собирает информацию о репозиториях на GitHub и помогает разработчикам находить интересные проекты и оценивать их активность.

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

← На главную