Мобильная версия

Обеспечение качества обновлений типовой конфигурации 1С с помощью регрессионного тестирования

Обеспечение качества обновлений типовой конфигурации 1С с помощью регрессионного тестирования

Большинство проектов внедрения – живые организмы, которые постоянно обновляются, дорабатываются и развиваются. Источником обновлений может быть как доработка или добавление нового функционала, так и очередной выпуск обновления типовой конфигурации от 1С. При каждом таком обновлении необходимо удостовериться, что ранее работавший функционал продолжает работать корректно и правильно. 

Проблема особенно актуальна, когда к качеству обновлений предъявляются повышенные требования и цена ошибок очень высока. Процесс, описанный в статье опробован на внедрении, где с одной конфигурацией работает более 500 пользователей и она тиражируется в распределенной информационной базе более, чем на 20 предприятий-узлов РИБ.


Соответственно, возникает вопрос организации функционального регрессионного тестирования.

Для построения эффективного решения для регрессионного тестирования необходимо ответить на несколько вопросов:

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

Требования к процессу организации регрессионного тестирования

Безусловно, регрессионное тестирование можно выполнять вручную, привлекая каждый раз специалиста, хорошо разбирающегося в тестируемом функционале. При этом, как правило, объем тестируемого функционала будет достаточно большим. В итоге затраты на каждом таком цикле тестирования будут достаточно большими, скорость получения результатов низкой, всегда есть ненулевая вероятность человеческой ошибки, да и после нескольких таких циклов мотивация специалиста, выполняющего такую работу, будет падать.

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

Единственным полноценным инструментом является продукт «Сценарное тестирование», предлагаемый компанией 1С в составе «Корпоративного инструментального пакета». Данный продукт позволяет создавать тесты, каждый из тестов являет собой последовательность шагов, которые пользователь может выполнить в системе – например, создать новый документ и заполнить определенные реквизиты. При выполнении теста происходит имитация действий пользователя так, что 1С определяет эти действия так же, как если бы пользователь выполнял эти действия вручную.

«Сценарное тестирование» позволяет создавать новые и открывать существующие документы/элементы справочников/отчеты, заполнять реквизиты на формах, заполнять табличные формы, нажимать кнопки на формах. Также есть возможность выполнять произвольный 1С-код (например, для удаления объектов), воссоздавать объекты в новой базе. Одним из основных преимуществ является возможность сравнение текущего состояния документа и его движений по регистрам с сохраненными заранее значениями. 

«Сценарное Тестирование» состоит из двух обработок – для записи сценариев и для выполнения записанных сценариев. Пользователь может выполнять сценарии как в ручном режиме (пошагово выполняя каждый шаг), так и в автоматическом (шаги сценария выполняются последовательно).


Выбор тестируемого функционала

Достаточно важным является вопрос выбора функционала для регрессионного тестирования и определения подхода к построению тестовых сценариев. Выбранный набор тестов должен покрывать в полной мере тестируемые модули и в то же время желательно был небольшим как для экономии времени для создания/поддержки самого сценария, так и для сокращения времени выполнения тестов (для получения результатов тестирования в кратчайшие сроки). 

После основательного анализа мы определили следующий подход для выбора набора тестов и построение процесса тестирования:

  • бизнес-аналитик выбирается набор документов, создание  которого покрывает определенные бизнес-кейсы. Он создает эти документы в отдельной базе (или использует существующую), которая становится для нас «эталоном», предоставляет документацию, в которой описывает процедуру последовательного создания необходимых документов;
  • специалист по тестированию создает на предоставленной базе сценарий тестирования.

База, на которой выполняется запуск тестового сценария, должна содержать все данные и метаданные. Для выполнения этого условия все запуски сценариев выполняются на копиях тех «эталонных» баз, на которых соответствующие тестовый сценарии были созданы.

Как правило, большинство сценариев имеют похожую структуру:

  • в самом начале сценария выполняется отмена проведения и удаление всех документов, участвующих в тесте. Документы обрабатываются в логически правильной последовательности;
  • по порядку создаются все документы, входящие в тестовый сценарий. После создания и проведения каждого документа проверяется соответствие всех реквизитов вновь созданного документа с сохраненными данными «эталонного» документа, также проверяются все движения по регистрам
  • при необходимости в конце сценария запускаются проверки печатных форм документов и связанные отчеты.

Есть некоторые тестовые сценарии, которые включают в себя большое количество документов, пересоздание которых достаточно трудозатратно (да и обработка «Сценарное тестирование» работает достаточно медленно при большом объеме создаваемых документов, т.к. все данные  для сравнения содержимого документов и движений хранятся в самом тестовом сценарии). В таком случае выполняется только последовательная отмена проведения и проведение всех документов, при этом проверяется только соответствие движений по регистрам.


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

В процессе регрессионного тестирования есть несколько ролей:

  • Тестировщик – специалист в тестировании, ответственный за создание и поддержку тестовых сценариев, поддержку «эталонных» баз, запуск и первичный анализ результатов;
  • Бизнес-аналитик – специалист в предметной области, ответственный за разработку набора документов/отчетов для тестирования, выполняет анализ отличий, найденных в процессе тестирования;
  • Разработчик – специалист по платформе, ответственный за обновление конфигураций

Поясним на примере каким образом происходит регрессионное тестирование при адаптации очередного обновления типового решения от 1С. Данный процесс состоит из нескольких этапов:

  1. Разработчик интегрирует свежую типовую конфигурацию и рабочую, выполняет внутренне тестирование. После успешного завершения внутреннего тестирования информирует Тестировщика о том, что все изменения доступны в хранилище конфигурации и можно приступать к тестированию
  2. Тестировщик создает копию «эталонной» базы (это называется «тестовая» база), выполняет ее обновление до последней версии конфигурации из Хранилища конфигураций. После завершения обновления на «тестовой» базе запускаются тестовые сценарии.
  3. Если в ходе выполнение тестового сценария появляются ошибки платформы (например, не проводятся документы из-за ошибок в обработчиках проведения), то Тестировщик информирует Разработчика о найденных проблемах. Разработчик исправляет ошибки, информирует Тестировщика, которой обновляет конфигурацию и начинает процесс тестирования с начала.
  4. Если тестовый сценарий находит отличия в данных (составе документов или движениях), тогда Тестировщик выполняет первичный анализ отличий. Если отличия незначительные (например поменялся порядок движений в регистре, но состав их остался неизменным), то эти отличия игнорируются. Если же отличия значительные, то Тестировщик готовит отчет с результатами отличий и отправляет его Бизнес-аналитику. Бизнес-аналитик на основании двух баз («эталонной» с предыдущей версией конфигурации и «тестовой» с актуальной версией конфирации) выполняет анализ отличий и принимает решение корректное ли это изменение или это ошибка обновления. Если это ошибка обновления, то Разработчик ее исправляет и процесс тестирования начинается заново.
  5. По результатам запуска всех тестовых сценариев Тестировщик готовит отчет и отправляет его Руководителю проекта, Бизнес-Аналитику и Разработчику
  6. После успешного завершения тестирования Тестировщик обновляет «эталонную» базу до последнего актуального релиза и обновляет тестовые сценарии (если в этом есть необходимость).

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


Продукт «Сценарное Тестирование» не лишен недостатков и проблем, не все действия в 1С можно выполнить с помощью данного инструмента, но всегда есть возможность использовать различные обходные пути (выполнение произвольного кода или ручные операции). Как общий вывод можно сказать, что «Сценарное Тестирование» - достаточно мощный и полноценный инструмент для тестирования в 1С и его можно использовать как основу для построения регресионного тестирования. 

Данная модель тестирования является одним из условий обеспечения высокого качества разработки и успешно используется в нашей компании в крупных внедрениях на протяжении 4 лет. Компания «Дусофт» применяет ее на новых крупных проектах, а также готова помочь внедрить для Систем на базе платформы "1С:Предприятие", которые уже находятся в промышленной эксплуатации. 



Автор Груба А.



Все решения

Лучшая компания занимается автоматизацией управления и учета на базе программных продуктов «1С»
Наша компания также занимается разработкой собственных программных продуктов на платформе «1С:Предприятие 8».
В нашей компании работают сертифицированные фирмой «1С» специалисты, которые постоянно совершенствуют свои знания и навыки. Они помогут качественно и оперативно решить задачи по автоматизации управления и учета на вашем предприятии.
Наша компания опирается в своей работе на знание и повседневное применение стандартов качества, проектных методов в управлении, процессного подхода в организации нашей деятельности.
Наша компания успешно прошла сертификационный аудит на соответствие системы менеджмента качества международному стандарту ISO 9001. Наличие сертификата свидетельствует, что компания хорошо организована, в ней четко распределены обязанности, процедуры, соблюдается технология работы, имеются оперативные инструкции, документированные и известные всему персоналу, существуют отработанные процедуры контроля выполняемых работ и, конечно, профессиональный и хорошо обученный персонал, способный качественно выполнять свою работу.