Автотесты

Во всех проектах, использующих e-commerce платформу Ensi применяется автотестирование, избавляющее от рутины при проверке работоспособности как базовых пользовательских маршрутов так и всего проекта.

Общий подход к автотестированию

Автотесты подразделяются на 3 группы:
  1. End-to-end tests
  2. Component tests
  3. Unit and Integration tests
автотесты е-комерс autotests e-commerce Ensi

1. End-to-end tests

Тестируют корректность совместной работы нескольких сервисов. Сама система при этом считается черным ящиком. В качестве входной точки используется GUI или публичное API. Тестовые сценарии максимально близки к реальным пользовательским действиям.

2. Component tests

Компонентные тесты работают с сервисом как с отдельной изолированной структурой. Тесты размещаются в том же репозитории что и код и пишутся бэкэнд-разработчиками. Запуск компонентных тестов встроен в CI/CD сервиса.

3. Unit and Integration tests

Тестирование пограничных случаев через компонентные тесты может становиться затруднительным и многословным или приводит к избыточному дублированию. В этом случае вместо компонентных тестов используются приходят unit and Integration tests, позволяющие протестировать более конкретный участок кода. В этих тестах мы тестируем уже конкретный класс или его публичный метод. Их запуск так же встроен в CI/CD.

Code Coverage

В расчёте code coverage (т.е процента строк кода покрытых хотя бы одним тестом) принимают участие component, integration и unit тесты.
Гнаться за 100% code coverage в большинстве случаев не прагматично. Чем ближе к 100% тем «дороже» в написании становится каждый новый процент и тем меньше от него реальной ценности. В качестве ориентиров используем гайдлайны Google :

  • 60% - приемлемо
  • 75% - похвально
  • 90% - образцово
Проверка на минимальный code coverage встроена в CI.
code coverage автотесты е-комерс autotests e-commerce Ensi

Покрытие сервисов Ensi тестами на данный момент:

Хотите узнать больше?
Оставьте свои контакты и мы с вами свяжемся
Имя
Телефон
Email
Комментарий
Нажимая на кнопку «Отправить», я соглашаюсь с условиями обработки персональных данных