0

Товар успешно добавлен в корзину

Оформить заказ

Внедряем Continuous Integration в тех. процесс разработки ReadyScript

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

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

Именно тестирование выявляет проблемы, возникшие в различных частях продукта, до попадания ошибок в релиз. Над улучшением этого участка нашего тех. процесса мы решили поработать и начали с внедрения автоматизированного front-end тестирования.

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

В процессе выполнения теста проверяется, чтобы страницы открывались с необходимым статусом ответа, на них отсутствовали PHP notice и warning, ну и конечно имелись все необходимые теги с ожидаемым содержимым.

Каждый наш разработчик нажатием одной кнопки в любой момент времени может запустить тестирование свой локальной копии ReadyScript, на которой он ведет разработку. В результате, мы стали отправлять в репозиторий более стабильный код в котором на самом начальном этапе разработки новой фичи устраняются баги.

В среде профессиональных разработчиков такой подход, частого выполнения тестов и слияния его с основной веткой продукта называется Continious Integration. Об этой методике довольно много есть информации в интернете, например на хабре (https://habrahabr.ru/post/219891/).

Безусловно мы интегрировали скрипты запуска тестов со скриптами выпуска обновлений. Теперь мы не можем выпустить обновление, если тесты не пройдены на 100%.

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


22 февраля 2018 19:47, Артем Полторанин
Рассказать друзьям: