Автоматизированное тестирование программных продуктов

Наша компания уделяет особое внимание качеству разработки и финального программного продукта.

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

В связи с динамичным развитием наших программных продуктов и расширением состава конфигураций остро встала задача тестирования готовой функциональности и вносимых изменений. Так как ручное тестирование достаточно трудоемко и занимает много времени было принято решение внедрить автоматизированное тестирование программных продуктов.


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


Используемые технологии
и инструменты


Vanessa-Automation

Проверка и отладка тестов в среде 1С в нашей компании выполняется с использованием инструмента Vanessa-Automation, которая является продолжением проекта Vanessa-Behavior.


GitLab

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


Visual Studio Code

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


TortoiseGit

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


Jenkins

Сервис непрерывной интеграции. Выполнена публикация веб-интерфейса сервиса. В Jenkins есть возможность прописать ряд настроек для каждой сборки и получить необходимые итоговые сведения.

Результат выполнения тестов можно проанализировать благодаря различным отчетам


Покрытие систем механизмами
автотестирования


  • 1С:EHS Комплексная производственная безопасность КОРП
  • 1С:Экология. Охрана окружающей среды КОРП
  • 1С:Производственная безопасность. Комплексная




Методы и подходы
к разработке тестов

Для ранее разработанной функциональности используется следующий подход:

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


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

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


В результате прогона тестов мы получаем наполненную демо базу.

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

Горизонты развития

В своей работе мы достигли значительных результатов, таких как:

  • Унифицированы и созданы сценарии тестирования наполнения базовой НСИ для трех конфигураций
  • Выполнение тестирования конфигурации переведено из Jenkins в GitLab в рамках подготовительных работ по распараллеливанию тестирования и подготовке проведения тестирования для каждого из запросов на слияние до помещения изменений в продуктивное хранилище
  • Подготовлены специалисты и наработана практика обучения по написанию авто-тестов
  • Активно идет развитие унифицированного ландшафта автоматизированного тестирования конфигураций для проектов 1С-КСУ и ПБЭ.

Но на этом мы не останавливаемся и всегда находим перспективы для развития данного направления:

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

В завершение хочется выделить следующие положительные моменты применения автоматизированного тестирования:

  • Повышение качества и надежности поставляемых коробочный решений
  • Набор стабильно работающих тестов можно презентовать, как самостоятельный продукт на рынке
  • Широкое применение в проектной деятельности

Использование автотестирования в рамках создания и внедрения автоматизированных информационных систем для заказчиков позволяет стабилизировать работу систем в промышленной эксплуатации.

Обновления будут проводится с дополнительным контролем качества, что позволяет обеспечить бесперебойность работы системы и позитивную обратную связь от пользователей с предприятий.

По вопросам сотрудничества вы можете связаться с нами: